#!/bin/bash
-# Copyright (C) 2016 Ian Kelling
+# I, Ian Kelling, follow the GNU license recommendations at
+# https://www.gnu.org/licenses/license-recommendations.en.html. They
+# recommend that small programs, < 300 lines, be licensed under the
+# Apache License 2.0. This file contains or is part of one or more small
+# programs. If a small program grows beyond 300 lines, I plan to switch
+# its license to GPL.
+
+# Copyright 2024 Ian Kelling
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
cedit() {
local help="Usage: [-h|--help ] [-v] [SECTION_NAME] FILE
-Create/modify a section in a config file
+Create/modify a comment-delimited section in a config file
Returns 1 if the file is modified by this command, 2 or higher
for other problems.
section. Without SECTION_NAME, it acts on a global unnamed
section. cedit is short for config edit.
--q Quiet
+-b Keep backup file
+-e Exit 0 on modified file.
-s Silent. Quiet and exit 0 on modified file.
+-q Quiet
-v Verbose
--b Keep backup file
-h|--help Help"
local s diff name init file_dir exists verbose backup quiet silent
file_dir="$(dirname "$file")"
backup=false
quiet=false
silent=false
+ exit_status=true
case $1 in
-b) backup=true; shift ;;
- -v) verbose=true; shift ;;
+ -e) exit_status=false; shift ;;
+ -s) quiet=true; silent=true; exit_status=false; shift ;;
-q) quiet=true; shift ;;
- -s) quiet=true; silent=true; shift ;;
+ -v) verbose=true; shift ;;
-h|--help) echo "$help"; return ;;
esac
if ! $backup && $exists; then
rm -r "$temp"
fi
- if $silent; then
+ if ! $exit_status; then
case $ret in
0|1) return 0 ;;
*) return $ret ;;