Files
dougal-software/bin/runner.sh
D. Berge 19ce158329 Import SmartSource header data.
Provided that the SmartSource headers are being
saved to file, and that the path to those files
is present in the survey configuration, we now
import SmartSource information as metadata in
raw_shots.meta->'smsrc'.

Closes #19.
2020-09-06 13:45:56 +02:00

114 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
DOUGAL_ROOT=${DOUGAL_ROOT:-$(dirname "$0")/..}
BINDIR="$DOUGAL_ROOT/bin"
VARDIR=${VARDIR:-$DOUGAL_ROOT/var}
LOCKFILE=${LOCKFILE:-$VARDIR/runner.lock}
[ -f ~/.profile ] && . ~/.profile
function tstamp () {
date -u +%Y-%m-%dT%H:%M:%SZ
}
function prefix () {
printf "\033[30;1m$(tstamp)\t"
}
function print_log () {
printf "$(prefix)\033[36m%s\033[0m\n" "$*"
}
function print_info () {
printf "$(prefix)\033[0m%s\n" "$*"
}
function print_warning () {
printf "$(prefix)\033[33;1m%s\033[0m\n" "$*"
}
function print_error () {
printf "$(prefix)\033[31m%s\033[0m\n" "$*"
}
function run () {
PROGNAME=$(basename "$1")
STDOUTLOG="$VARDIR/$PROGNAME.out"
STDERRLOG="$VARDIR/$PROGNAME.err"
"$1" >"$STDOUTLOG" 2>"$STDERRLOG" || {
print_error "Failed: $PROGNAME"
cat $STDOUTLOG
cat $STDERRLOG
print_warning "Sending alert (if configured)"
TITLE="$PROGNAME failed"
# DESCRIPTION=""
SERVICE="deferred_imports"
$BINDIR/send_alert.py -t "$TITLE" -s "$SERVICE" -l "critical" \
-O "$(cat $STDOUTLOG)" -E "$(cat $STDERRLOG)"
exit 2
}
# cat $STDOUTLOG
rm $STDOUTLOG $STDERRLOG
}
if [[ -f $LOCKFILE ]]; then
PID=$(cat "$LOCKFILE")
if pgrep -F "$LOCKFILE"; then
print_warning $(printf "The previous process is still running (%d)" $PID)
exit 1
else
rm "$LOCKFILE"
print_warning $(printf "Previous process (%d) not found. Must have died unexpectedly" $PID)
fi
fi
echo "$$" > "$LOCKFILE" || {
print_error "Error creating lock file"
exit 255
}
print_info "Start run"
print_log "Purge deleted files"
run $BINDIR/purge_deleted_files.py
print_log "Import survey configurations"
run $BINDIR/import_survey_config.py
print_log "Import preplots"
run $BINDIR/import_preplots.py
print_log "Import raw P1/11"
run $BINDIR/import_raw_p111.py
print_log "Import raw P1/90"
run $BINDIR/import_raw_p190.py
print_log "Import final P1/11"
run $BINDIR/import_final_p111.py
print_log "Import final P1/90"
run $BINDIR/import_final_p190.py
print_log "Import SmartSource data"
run $BINDIR/import_smsrc.py
if [[ -z "$RUNNER_NOEXPORT" ]]; then
print_log "Export system data"
run $BINDIR/system_exports.py
fi
if [[ -n "$RUNNER_IMPORT" ]]; then
print_log "Import system data"
run $BINDIR/system_imports.py
fi
rm "$LOCKFILE"
print_info "End run"