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.
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
fi
if ! $exists; then
- ret=0
+ ret=1
if $verbose; then
echo "New file $file:"
cat "$file"
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 "$@"