diff --git a/CODING_STYLE.TXT b/CODING_STYLE.TXT index c675a44..39ece78 100644 --- a/CODING_STYLE.TXT +++ b/CODING_STYLE.TXT @@ -1,17 +1,45 @@ Coding style used for my bash projects (v2 Sep 2015) -1. Indentation +++++ Header + +Always use the following header +----BEGIN HEADER +#!/usr/bin/env bash + +PROGRAM="program-name" # Long description +AUTHOR="(L) 20XX-20YY by Orsiris \"Ozy\" de Jong" +CONTACT="http://www.example.com me@example.com" +PROGRAM_BUILD=YYYYMMDDVV + +## Optional instructions +----END HEADER + +Using bind style versionning: +YYYYMMDDVV (Year, Month, Day, Revision): Example: 2015012402 = 2nd revision of 24 Jan 2015 + + +++++ Indentation Using tabs Transform old shell scripts using unexpand command -2. Comments +++++ Comments # Some comment ## Some important comment for the next function ################################################# Some separation -3. Functions +++++ Todo comments + +Whenever there is some idea to postpone, use #TODO: (exact match for searches) + +++++ Variables + +All local variables are lowercase, separated by _ (ex: low_wait) +All global variables full upercase, separated by _ (ex: EXEC_TIME) +All instance variables (verbose, silent, etc) have prefix _ and are full upercase, separated by _ (ex: _VERBOSE) + +++++ Functions Every word in a function begins with an uppercase (ex: SomeFunctionDoesThings) @@ -34,11 +62,11 @@ function thirdthing { return $? } -3.1 Sub functions +++++ Sub functions When a function is a subroutine of another function, it is called _SomethingAsSubFunction -4. If statements +++++ If statements If statements will be fully written (word "if" must be used). then is written on the same line. (Use sed ':a;N;$!ba;s/]\n\t*then/]; then/g' to convert files to this format... Replace "],new line, zero or more tabs, then" by "; then") @@ -48,7 +76,7 @@ else other stuff fi -5. Logging +++++ Logging A logging function is available with the following levels of logging: @@ -58,17 +86,9 @@ A logging function is available with the following levels of logging: - ERROR: Program produced an error but continues execution - CRITICAL: Program execution is halted -6. Eval +++++ Eval The eval command should always contain 2>1&. There's a special case where this is needed: eval "some;commands" 2>> "$LOG_FILE" in order to get error messages into the log. -7. Version numbering - -Using bind style versionning: - -YYYYMMDDVV (Year, Month, Day, Revision) -Ex: - -2015012402 = 2nd revision of 24 Jan 2015 diff --git a/osync.sh b/osync.sh index 458f8ca..7f98117 100755 --- a/osync.sh +++ b/osync.sh @@ -4,7 +4,7 @@ PROGRAM="Osync" # Rsync based two way sync engine with fault tolerance AUTHOR="(L) 2013-2015 by Orsiris \"Ozy\" de Jong" CONTACT="http://www.netpower.fr/osync - ozy@netpower.fr" PROGRAM_VERSION=1.1-dev -PROGRAM_BUILD=2015090804 +PROGRAM_BUILD=2015090901 ## type doesn't work on platforms other than linux (bash). If if doesn't work, always assume output is not a zero exitcode if ! type -p "$BASH" > /dev/null; then @@ -378,7 +378,7 @@ function WaitForTaskCompletion { local seconds_begin=$SECONDS # Seconds since the beginning of the script local exec_time=0 # Seconds since the beginning of this function - while eval "$PROCESS_TEST_CMD" > /dev/null #TODO: Replace $1 with $pid in $PROCESS_TEST_CMD + while eval "$PROCESS_TEST_CMD" > /dev/null do Spinner exec_time=$(($SECONDS - $seconds_begin)) @@ -433,7 +433,7 @@ function WaitForCompletion { local seconds_begin=$SECONDS # Seconds since the beginning of the script local exec_time=0 # Seconds since the beginning of this function - while eval "$PROCESS_TEST_CMD" > /dev/null #TODO: Replace $1 with $pid in $PROCESS_TEST_CMD + while eval "$PROCESS_TEST_CMD" > /dev/null do Spinner if [ $((($SECONDS + 1) % $KEEP_LOGGING)) -eq 0 ]; then @@ -1875,12 +1875,14 @@ function InitLocalOSSettings { ## Ping command isn't the same if [ "$LOCAL_OS" == "msys" ]; then FIND_CMD=$(dirname $BASH)/find - ## TODO: The following command needs to be checked on msys. Does the $1 variable substitution work ? - PROCESS_TEST_CMD='ps -a | awk "{\$1=\$1}\$1" | awk "{print \$1}" | grep $1' + #TODO: The following command needs to be checked on msys. Does the $1 variable substitution work ? + # PROCESS_TEST_CMD assumes there is a variable $pid + PROCESS_TEST_CMD='ps -a | awk "{\$1=\$1}\$1" | awk "{print \$1}" | grep $pid' PING_CMD="ping -n 2" else FIND_CMD=find - PROCESS_TEST_CMD='ps -p$1' + # PROCESS_TEST_CMD assumes there is a variable $pid + PROCESS_TEST_CMD='ps -p$pid' PING_CMD="ping -c 2 -i .2" fi