Files
shell_sequencer/sequpgrade.sh

95 lines
4.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Upgrade existing seqs (<16) to be compatible with sequencer 16
# Please review the changes especially for informational output
# Holds all files which should be upgraded
sq_files=()
step_1_info() { echoinfoArgs "[--execute] [FILE ...]"; echo "Check files"; }
step_1_alias() { echo "upgrade"; }
step_1() {
local file=
local execute=
shift
if [[ "${1:-}" == --execute ]] ; then
execute="${1}"
shift
fi
for file in "$@" ; do
if [ ! -w "${file}" ] ; then
error "No permission to write ${file}"
return 1
elif [ ! -d "${file}" ] ; then
sq_files+=("${file}")
fi
done
exe makechanges ${execute}
}
makechanges() {
local file=
local inplace="-n"
local sedprint="gp"
if [[ "${1:-}" == --execute ]] ; then
info "Executing..."
inplace="-i"
sedprint="g"
fi
for file in "${sq_files[@]}" ; do
echo "Update: ${file}"
exe sed ${inplace} 's/\[* ${*DRY}* \(-eq\|==\) 0 \]* &&/dry ||/'${sedprint} "${file}"
exe sed ${inplace} 's/\[* ${*DRY}* \(-eq\|==\) 0 \]*/! dry/'${sedprint} "${file}"
exe sed ${inplace} 's/\[* ${*DRY}* \(-ne\|!=\) 0 \]*/dry/'${sedprint} "${file}"
exe sed ${inplace} 's/\[* ${*QUIET}* \(-ne\|!=\) 0 \]*/quiet/'${sedprint} "${file}"
exe sed ${inplace} 's/\[* ${*QUIET}* \(-eq\|==\) 0 \]*/interactive/'${sedprint} "${file}"
exe sed ${inplace} 's/\[* ${*QUIET}* \(-ne\|!=\) 2 \]* &&/silent ||/'${sedprint} "${file}"
exe sed ${inplace} 's/\[* ${*QUIET}* \(-ne\|!=\) 2 \]*/! silent/'${sedprint} "${file}"
exe sed ${inplace} 's/\[* ${*VERBOSE}* \(-eq\|==\) 0 \]*/! verbose/'${sedprint} "${file}"
exe sed ${inplace} 's/\[* ${*CONTEXT_HELP}* \(-eq\|==\) 0 \]* &&/contextHelp ||/'${sedprint} "${file}"
exe sed ${inplace} 's/\[* ${*CONTEXT_HELP}* \(-eq\|==\) 0 \]*/! contextHelp/'${sedprint} "${file}"
exe sed ${inplace} 's/\[* ${*CONTEXT_HELP}* \(-ne\|!=\) 0 \]*/contextHelp/'${sedprint} "${file}"
exe sed ${inplace} 's/\[* ${*CONTEXT_EXE}* \(-eq\|==\) 0 \]* &&/contextExe ||/'${sedprint} "${file}"
exe sed ${inplace} 's/\[* ${*CONTEXT_EXE}* \(-eq\|==\) 0 \]*/! contextExe/'${sedprint} "${file}"
exe sed ${inplace} 's/\[* ${*CONTEXT_EXE}* \(-ne\|!=\) 0 \]*/contextExe/'${sedprint} "${file}"
exe sed ${inplace} 's/echoseq " \[I\] /info "/'${sedprint} "${file}"
exe sed ${inplace} 's/echoseq " \[W\] /warning "/'${sedprint} "${file}"
exe sed ${inplace} 's/echoseq " \[E\] /error "/'${sedprint} "${file}"
exe sed ${inplace} 's/echoseq/info/'${sedprint} "${file}"
exe sed ${inplace} 's/echoerr " \[I\] /info -e "/'${sedprint} "${file}"
exe sed ${inplace} 's/echoerr " \[W\] /warning -e "/'${sedprint} "${file}"
exe sed ${inplace} 's/echoerr " \[E\] /error -e "/'${sedprint} "${file}"
exe sed ${inplace} 's/echoerr/error -e/'${sedprint} "${file}"
exe sed ${inplace} 's/outColor/color/'${sedprint} "${file}"
exe sed ${inplace} 's/"*${*DEFAULT_EDITOR_SYSTEM}*"*/editor/'${sedprint} "${file}"
exe sed ${inplace} 's/^[[:space:]]*step_config/seq_config/'${sedprint} "${file}"
exe sed ${inplace} 's/^\(step_.*_alias\)()[[:space:]]*{[[:space:]]*ALIAS=/\1() { echo /'${sedprint} "${file}"
exe sed ${inplace} 's/SEQUENCER_ARGS/sqr_args/'${sedprint} "${file}"
exe sed ${inplace} 's/STEP_ARGS/seq_args/'${sedprint} "${file}"
exe sed ${inplace} 's/SEQ_CONFIG_HOME/seq_configRoot/'${sedprint} "${file}"
exe sed ${inplace} 's/SEQ_CONFIG_FILE/seq_configFile/'${sedprint} "${file}"
exe sed ${inplace} 's/SEQ_PROFILE_NAME/seq_profileName/'${sedprint} "${file}"
exe sed ${inplace} 's/^VERSION_SEQREV.*/readonly sqr_minVersion=16/'${sedprint} "${file}"
exe sed ${inplace} 's/echoinfoArgs[[:space:]]\+"\([^"]\+\)"\([^;]\|$\)/# todo: manual intervention\nstep_xx_options() { echo "\1"; }/'${sedprint} "${file}"
exe sed ${inplace} \
's/^\(step_\([0-9]\+\)_info().*\)echoinfoArgs[[:space:]]\+"\([^"]\+\)"\;[[:space:]]*\(.*\)/\1\4\nstep_\2_options() { echo "\3"; }/'${sedprint}\
"${file}"
done
}
readonly sqr_minVersion=16
. /usr/local/bin/sequencer.sh