summaryrefslogtreecommitdiff
path: root/bin/build_hmm.sh
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2016-07-20 15:42:41 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2016-07-20 15:42:41 -0400
commitde413e7ae293f2b919e2e75369c1ecb8a0c83975 (patch)
tree143ea097ea9e740c48b62335d468e9b0543be7b3 /bin/build_hmm.sh
downloadastroconda-control-de413e7ae293f2b919e2e75369c1ecb8a0c83975.tar.gz
Initial commit
Diffstat (limited to 'bin/build_hmm.sh')
-rwxr-xr-xbin/build_hmm.sh81
1 files changed, 81 insertions, 0 deletions
diff --git a/bin/build_hmm.sh b/bin/build_hmm.sh
new file mode 100755
index 0000000..a73b9ee
--- /dev/null
+++ b/bin/build_hmm.sh
@@ -0,0 +1,81 @@
+#!/bin/bash
+#
+# A steuermann compatible conda build script.
+#
+# This differs from the original build script in that it does not iterate over
+# many Python or Numpy versions in an attempt to be fully comprehensive.
+# Instead, since we're being "controlled", so we TELL steuermann what we want
+# the script to perform at a high level (not this script), rather than making
+# assumptions about what is needed/wanted at build-time.
+#
+# The build script uses "porcelain", and is not to be confused with "fragile".
+#
+# Conda uses lock files to determine whether its build (or installation)
+# system is currently in use. Traditionally this means only ONE build may be
+# active at a time. Porcelain installs its own miniconda into a completely
+# unique temporary directory so that eliminates the problem entirely. The
+# "conda build" subsystems never talk to one another while executing.
+
+# You may run multiple builds at the same time so long as you activate
+# porcelain [correctly] per-run.
+#
+# Porcelain is a write-once-remove-immediately, "WORI", enviroment. Yes,
+# the name does imply "worry". Be sure to either copy or move important data
+# out of $PORCELAIN_PREFIX or $TMPDIR prior to calling "porcelain_deinit".
+#
+# DO NOT FORGET TO RUN "porcelain_deinit".
+#
+# If you do, you will quickly fill up the partition. Builds can be as large
+# as 4GB, and potentially larger as time goes on. Don't be a doofus; always
+# run "porcelain_deinit". You have been warned.
+#
+# Never run a build outside of the "midnight_special" environment. The IRAF
+# account is a total mess. "midnight_special" performs a magical ritutal
+# that reassigns $HOME and effectively carpet bombs the original environment.
+# Please do not modify "midnight_special" for any reason.
+#
+
+echo "BEFORE..."
+printenv | sort
+echo
+
+source /eng/ssb/auto/astroconda/include/midnight_special.sh
+source /eng/ssb/auto/astroconda/include/sysinfo.sh
+source /eng/ssb/auto/astroconda/include/logger.sh
+source /eng/ssb/auto/astroconda/include/conda_porcelain.sh
+
+echo "AFTER..."
+printenv | sort
+echo
+
+porcelain_init
+
+# Setup logging
+if [[ -n $sm_base ]]; then
+ sm_logs="$sm_base/$sm_run/$sm_node"
+fi
+
+if [[ -n $sm_logs ]]; then
+ if [[ ! -d $sm_logs ]]; then
+ echo "Initializing steuermann log directory: $sm_logs"
+ mkdir -p $sm_logs
+ fi
+fi
+
+# Take note that we are testing $sm_base, not $sm_logs.
+if [[ -n $sm_base ]]; then
+ LOGDIR="$sm_logs"
+else
+ LOGDIR="$PORCELAIN_PREFIX/logs"
+ mkdir -p "$LOGDIR"
+fi
+# Begin build processs
+pushd "$PORCELAIN_PREFIX"
+ porcelain_get_installer
+ porcelain_run_installer
+
+ logger $LOGDIR/a_test_file.log echo this output should be logged
+popd
+
+porcelain_deinit
+