38 lines
1020 B
Bash
Executable File
38 lines
1020 B
Bash
Executable File
#!/usr/bin/bash
|
|
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
# what: remove a comment from a single line, in a config file
|
|
# author: klevstul
|
|
# started: mar 2021
|
|
#
|
|
# requires: n/a
|
|
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
if [ "$EUID" -eq 0 ]
|
|
then echo "error: do not run as 'root'"
|
|
exit
|
|
fi
|
|
|
|
this_file_name=`basename "$0"`
|
|
if [ $# -ne 4 ]; then
|
|
echo "usage: '$this_file_name [{add, remove}] [COMMENT_CHARACTER] [PATTERN] [CONFIG_FILE]'"
|
|
exit 1
|
|
fi
|
|
|
|
operation=$1
|
|
comment_character=$2
|
|
pattern=$3
|
|
config_file=$4
|
|
|
|
# https://stackoverflow.com/questions/24889346/how-to-uncomment-a-line-that-contains-a-specific-string-using-sed
|
|
|
|
# add comment character (comment out)
|
|
if [ $operation == "add" ]; then
|
|
sed -i "/$pattern/s/^$comment_character*/$comment_character/g" $config_file
|
|
fi
|
|
|
|
# remove comment character (uncomment)
|
|
if [ $operation == "remove" ]; then
|
|
sed -i "/$pattern/s/^$comment_character*//g" $config_file
|
|
fi
|