nonzero result on modification
[cedit] / cedit
diff --git a/cedit b/cedit
index 7fbf7439338b159685d527cbb32ea5c191bbab76..e6d128d291ad58af7c630dd5f52e151586937859 100755 (executable)
--- a/cedit
+++ b/cedit
@@ -17,6 +17,9 @@ cedit() {
     local help="Usage: [-h|--help ] [-v] [SECTION_NAME] FILE
 Create/modify a section in a config file
 
+Returns 1 if the file is modified by this command, 2 or higher
+for other problems.
+
 The section is #comment delimited. Reads STDIN for the contents of the
 section. Without SECTION_NAME, it acts on a global unnamed
 section. cedit is short for config edit.
@@ -29,13 +32,10 @@ section. cedit is short for config edit.
     local verbose=false
 
     case $1 in
+        -v) verbose=true; shift ;;
         -h|--help) echo "$help"; return ;;
     esac
 
-    if [[ $1 == -v ]]; then
-        verbose=true
-        shift
-    fi
     if (( $# == 2 )); then
         name=": $1"
         shift
@@ -50,14 +50,14 @@ section. cedit is short for config edit.
     if [[ ! -e $file_dir ]]; then
         if ! mkdir -p $file_dir; then
             s=sudo
-            $s mkdir -p $file_dir || return 1
+            $s mkdir -p $file_dir || return 2
         fi
     fi
     if [[ ! -e $file ]]; then
         exists=false
         if ! $s touch $file; then
             s=sudo
-            $s touch $file || return 1
+            $s touch $file || return 2
         fi
     fi
 
@@ -91,7 +91,7 @@ section. cedit is short for config edit.
     fi
 
     if ! $exists; then
-        ret=0
+        ret=1
         if $verbose; then
             echo "New file $file:"
             cat "$file"
@@ -104,12 +104,12 @@ section. cedit is short for config edit.
                 echo "No changes made to $file"
             fi
         else
-
             echo "backup of original at $temp"
             echo diff -u "$temp" "$file":
             echo "$diff"
         fi
     else
+        # for systems like openwrt which don't have diff
         diff=$(cmp "$temp" "$file")
         ret=$?
         if $verbose; then