Sequencer - determine system text editor and ask before seq configuration creation
This commit is contained in:
@@ -25,6 +25,8 @@ MAX_STEP=512
|
||||
ALIAS=
|
||||
CONTEXT_HELP=0
|
||||
CONTEXT_EXE=0
|
||||
SEQ_NAME="$_SQN_ALIAS"
|
||||
[ -z "$SEQ_NAME" ] && SEQ_NAME="${0##*/}"
|
||||
SEQ_CONFIG_EDIT=0
|
||||
SEQ_CONFIG_NAME=".seqs"
|
||||
SEQ_CONFIG_FILE=
|
||||
@@ -35,6 +37,7 @@ SEQ_PROFILE_LIST=0
|
||||
TEMPLATE_NAME=seqTemplateExample.sh
|
||||
MISSING_CONF=missingConf.log
|
||||
VERSION_STRING="${VERSION_REV}.${VERSION_MAJOR}.${VERSION_MINOR}"
|
||||
DEFAULT_EDITOR_SYSTEM=
|
||||
|
||||
BBLACK= ; [ -t 1 ] && BBLACK='\033[40m'
|
||||
BLACK= ; [ -t 1 ] && BLACK='\033[0;30m'
|
||||
@@ -59,11 +62,10 @@ SAVE_POS_EXE= ;[ -t 1 ] && SAVE_POS_EXE='\033[s'
|
||||
SAVE_POS= ;[ -t 1 ] && SAVE_POS='\033[3D\033[s\033[3C'
|
||||
RESTORE_POS= ;[ -t 1 ] && RESTORE_POS='\033[u'
|
||||
|
||||
|
||||
helpSequencer() {
|
||||
local scriptName=${0##*/}
|
||||
[ ! -z "$_SQN_ALIAS" ] && scriptName="$_SQN_ALIAS"
|
||||
cat <<USAGE_EOF
|
||||
Usage: $scriptName [OPTIONS] [STEP NUMBER(s) or ALIAS] [STEP ARGUMENTS]
|
||||
Usage: $SEQ_NAME [OPTIONS] [STEP NUMBER(s) or ALIAS] [STEP ARGUMENTS]
|
||||
|
||||
[OPTIONS]
|
||||
--all, -a : Run all steps regardless of continuity
|
||||
@@ -503,6 +505,7 @@ listProfiles() {
|
||||
# 3 : No configuration created
|
||||
initSeqConfig() {
|
||||
local arg
|
||||
local answer
|
||||
local sourceAlways=0
|
||||
local createEmpty=0
|
||||
local seqProfiles=0
|
||||
@@ -541,12 +544,25 @@ initSeqConfig() {
|
||||
SEQ_CONFIG_HOME="$configDir"
|
||||
|
||||
if [ -s "$configLoc" ] ; then
|
||||
[ $QUIET -ne 2 ] && echo " [I] Using configuration file: $configLoc"
|
||||
echoseq " [I] Using configuration file: $configLoc"
|
||||
SEQ_CONFIG_FILE="$configLoc"
|
||||
. "$configLoc"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Ask for config creation if not existent
|
||||
if [ $QUIET -eq 0 ] && [ $DRY -eq 0 ]; then
|
||||
echo " [I] Configuration $configLoc missing"
|
||||
read -p "Create it now? y/[n]? " answer
|
||||
case $answer in
|
||||
[yY])
|
||||
;;
|
||||
*)
|
||||
return 3
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Config does not exist, check for template
|
||||
if [ -s "$configTemplate" ] ; then
|
||||
|
||||
@@ -558,6 +574,7 @@ initSeqConfig() {
|
||||
|
||||
echoerr " [I] Using existing configuration: $configExists"
|
||||
echoerr " (Moved to $configDir)"
|
||||
SEQ_CONFIG_FILE="$configLoc"
|
||||
. "$configLoc"
|
||||
return 0
|
||||
fi
|
||||
@@ -1159,6 +1176,12 @@ exep() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Used as editor if no system editor could be found
|
||||
no_editor_found() {
|
||||
echoerr " [E] No editor found (\$EDITOR,\"/etc/alternatives\",nano,vi)"
|
||||
echoerr " Cannot open: $*"
|
||||
}
|
||||
|
||||
main() {
|
||||
local arg
|
||||
local START=0
|
||||
@@ -1259,17 +1282,32 @@ main() {
|
||||
read -p "Press enter to continue or Ctrl + C to abort"
|
||||
fi
|
||||
|
||||
# Determine system default editor
|
||||
DEFAULT_EDITOR_SYSTEM="$(realpath -eq "/etc/alternatives/editor")"
|
||||
## Various fallbacks
|
||||
[ -z "$DEFAULT_EDITOR_SYSTEM" ] && DEFAULT_EDITOR_SYSTEM="$EDITOR"
|
||||
[ -z "$DEFAULT_EDITOR_SYSTEM" ] && DEFAULT_EDITOR_SYSTEM="$(command -v nano)"
|
||||
[ -z "$DEFAULT_EDITOR_SYSTEM" ] && DEFAULT_EDITOR_SYSTEM="$(command -v vi)"
|
||||
## Fall back to error message
|
||||
[ -z "$DEFAULT_EDITOR_SYSTEM" ] && DEFAULT_EDITOR_SYSTEM="no_editor_found"
|
||||
|
||||
parseAlias
|
||||
|
||||
# run configuration for sequence only if available and if first step is valid
|
||||
existsFunction step_config
|
||||
if [ $? -eq 0 ] ; then
|
||||
|
||||
# Create/edit configuration file
|
||||
if [ $SEQ_CONFIG_EDIT -ne 0 ] ; then
|
||||
step_config "${STEP_ARGS[@]}"
|
||||
[ -w "$SEQ_CONFIG_FILE" ] && vi "$SEQ_CONFIG_FILE" \
|
||||
|| echoerr " [E] No configuration file available"
|
||||
if [ -w "$SEQ_CONFIG_FILE" ]; then
|
||||
"$DEFAULT_EDITOR_SYSTEM" "$SEQ_CONFIG_FILE"
|
||||
else
|
||||
echoerr " [E] No configuration file available"
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
checkStep "${START[0]}"
|
||||
if [ $? -ne 0 ] ; then
|
||||
step_config "${STEP_ARGS[@]}"
|
||||
|
Reference in New Issue
Block a user