diff --git a/dev/merge.sh b/dev/merge.sh index 8ec13c6..fcdde47 100755 --- a/dev/merge.sh +++ b/dev/merge.sh @@ -1,10 +1,13 @@ #!/usr/bin/env bash -## MERGE 2018062501 +## MERGE 2018100204 ## Merges ofunctions.sh and n_program.sh into program.sh ## Adds installer +PROGRAM=merge +INSTANCE_ID=dev + function Usage { echo "Merges ofunctions.sh and n_program.sh into debug_program.sh and ../program.sh" echo "Usage" @@ -12,30 +15,24 @@ function Usage { } function __PREPROCESSOR_Merge { - local PROGRAM="$1" + local nPROGRAM="$1" - VERSION=$(grep "PROGRAM_VERSION=" n_$PROGRAM.sh) + if [ -f "$nPROGRAM" ]; then + Logger "$nPROGRAM is not found in local path." "CRITICAL" + exit 1 + fi + + VERSION=$(grep "PROGRAM_VERSION=" n_$nPROGRAM.sh) VERSION=${VERSION#*=} __PREPROCESSOR_Constants - source "ofunctions.sh" - if [ $? != 0 ]; then - echo "Please run $0 in dev directory with ofunctions.sh" - exit 1 - fi - - __PREPROCESSOR_Unexpand "n_$PROGRAM.sh" "debug_$PROGRAM.sh" + __PREPROCESSOR_Unexpand "n_$nPROGRAM.sh" "debug_$nPROGRAM.sh" for subset in "${__PREPROCESSOR_SUBSETS[@]}"; do - __PREPROCESSOR_MergeSubset "$subset" "${subset//SUBSET/SUBSET END}" "ofunctions.sh" "debug_$PROGRAM.sh" + __PREPROCESSOR_MergeSubset "$subset" "${subset//SUBSET/SUBSET END}" "ofunctions.sh" "debug_$nPROGRAM.sh" done - __PREPROCESSOR_CleanDebug "$PROGRAM" - rm -f tmp_$PROGRAM.sh - if [ $? != 0 ]; then - Logger "Cannot remove tmp_$PROGRAM.sh" "SIMPLE" - exit 1 - fi + __PREPROCESSOR_CleanDebug "debug_$nPROGRAM.sh" "../$nPROGRAM.sh" } function __PREPROCESSOR_Constants { @@ -46,6 +43,8 @@ function __PREPROCESSOR_Constants { __PREPROCESSOR_SUBSETS=( '#### OFUNCTIONS FULL SUBSET ####' '#### OFUNCTIONS MINI SUBSET ####' + '#### OFUNCTIONS MICRO SUBSET ####' + '#### PoorMansRandomGenerator SUBSET ####' '#### _OFUNCTIONS_BOOTSTRAP SUBSET ####' '#### DEBUG SUBSET ####' '#### TrapError SUBSET ####' @@ -60,6 +59,7 @@ function __PREPROCESSOR_Constants { '#### GetConfFileValue SUBSET ####' '#### SetConfFileValue SUBSET ####' '#### CheckRFC822 SUBSET ####' + '#### CleanUp SUBSET ####' ) } @@ -110,34 +110,45 @@ function __PREPROCESSOR_MergeSubset { } function __PREPROCESSOR_CleanDebug { - local PROGRAM="$1" + local source="${1}" + local destination="${2:-$source}" - sed '/'$PARANOIA_DEBUG_BEGIN'/,/'$PARANOIA_DEBUG_END'/d' debug_$PROGRAM.sh | grep -v "$PARANOIA_DEBUG_LINE" > ../$PROGRAM.sh + sed '/'$PARANOIA_DEBUG_BEGIN'/,/'$PARANOIA_DEBUG_END'/d' "$source" | grep -v "$PARANOIA_DEBUG_LINE" > "$destination.tmp" if [ $? != 0 ]; then Logger "Cannot remove PARANOIA_DEBUG code from standard build." "SIMPLE" exit 1 + else + mv -f "$destination.tmp" "$destination" + if [ $? -ne 0 ]; then + Logger "Cannot move [$destination.tmp] to [$destination]." "SIMPLE" + exit 1 + fi fi - chmod +x "debug_$PROGRAM.sh" + chmod +x "$source" if [ $? != 0 ]; then - Logger "Cannot chmod debug_$PROGRAM.sh" "SIMPLE" + Logger "Cannot chmod [$source]." "SIMPLE" exit 1 else - Logger "Prepared ./debug_$PROGRAM.sh" "SIMPLE" + Logger "Prepared [$source]." "SIMPLE" fi - chmod +x "../$PROGRAM.sh" - if [ $? != 0 ]; then - Logger "Cannot chmod $PROGRAM.sh" "SIMPLE" - exit 1 - else - Logger "Prepared ../$PROGRAM.sh" "SIMPLE" + + if [ "$source" != "$destination" ]; then + + chmod +x "$destination" + if [ $? != 0 ]; then + Logger "Cannot chmod [$destination]." "SIMPLE" + exit 1 + else + Logger "Prepared [$destination]." "SIMPLE" + fi fi } function __PREPROCESSOR_CopyCommons { - local PROGRAM="$1" + local nPROGRAM="$1" - sed "s/\[prgname\]/$PROGRAM/g" common_install.sh > ../install.sh + sed "s/\[prgname\]/$nPROGRAM/g" common_install.sh > ../install.sh if [ $? != 0 ]; then Logger "Cannot assemble install." "SIMPLE" exit 1 @@ -147,45 +158,34 @@ function __PREPROCESSOR_CopyCommons { __PREPROCESSOR_MergeSubset "$subset" "${subset//SUBSET/SUBSET END}" "ofunctions.sh" "../install.sh" done - #sed "s/\[version\]/$VERSION/g" ../tmp_install.sh > ../install.sh - #if [ $? != 0 ]; then - # Logger "Cannot change install version." "SIMPLE" - # exit 1 - #fi + __PREPROCESSOR_CleanDebug "../install.sh" + if [ -f "common_batch.sh" ]; then - sed "s/\[prgname\]/$PROGRAM/g" common_batch.sh > ../$PROGRAM-batch.sh + sed "s/\[prgname\]/$nPROGRAM/g" common_batch.sh > ../$nPROGRAM-batch.sh if [ $? != 0 ]; then Logger "Cannot assemble batch runner." "SIMPLE" exit 1 fi - chmod +x ../$PROGRAM-batch.sh - if [ $? != 0 ]; then - Logger "Cannot chmod $PROGRAM-batch.sh" "SIMPLE" - exit 1 - else - Logger "Prepared ../$PROGRAM-batch.sh" "SIMPLE" - fi - fi - chmod +x ../install.sh - if [ $? != 0 ]; then - Logger "Cannot chmod install.sh" "SIMPLE" - exit 1 - else - Logger "Prepared ../install.sh" "SIMPLE" - fi - rm -f ../tmp_install.sh - if [ $? != 0 ]; then - Logger "Cannot chmod $PROGRAM.sh" "SIMPLE" - exit 1 + + for subset in "${__PREPROCESSOR_SUBSETS[@]}"; do + __PREPROCESSOR_MergeSubset "$subset" "${subset//SUBSET/SUBSET END}" "ofunctions.sh" "../$nPROGRAM-batch.sh" + done + + __PREPROCESSOR_CleanDebug "../$nPROGRAM-batch.sh" fi } # If sourced don't do anything if [ "$(basename $0)" == "merge.sh" ]; then - if [ "$1" == "osync" ]; then + source "./ofunctions.sh" + if [ $? != 0 ]; then + echo "Please run $0 in dev directory with ofunctions.sh" + exit 1 + fi + trap GenericTrapQuit TERM EXIT HUP QUIT + if [ "$1" == "osync" ]; then __PREPROCESSOR_Merge osync - __PREPROCESSOR_Merge osync_target_helper __PREPROCESSOR_CopyCommons osync elif [ "$1" == "obackup" ]; then __PREPROCESSOR_Merge obackup