diff --git a/sequpgrade.sh b/sequpgrade.sh new file mode 100755 index 0000000..686ba78 --- /dev/null +++ b/sequpgrade.sh @@ -0,0 +1,89 @@ +#!/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 "[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}" + done +} + +readonly sqr_minVersion=16 +. /usr/local/bin/sequencer.sh