From 9ee05f569ce5da96047000722dbde36f689d826d Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Wed, 26 Oct 2016 23:13:38 -0700 Subject: [PATCH] nonzero result on modification --- cedit | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/cedit b/cedit index 629fe01..e6d128d 100755 --- 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. @@ -47,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 @@ -88,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" @@ -101,17 +104,18 @@ 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 echo "$diff" fi fi - return 0 + return $ret } cedit "$@" -- 2.30.2