Added the ability to read the config file
This commit is contained in:
parent
8128935e30
commit
d4faf04dbc
118
brightctl
118
brightctl
@ -1,33 +1,95 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
## Default controller values
|
## Default controller values
|
||||||
BRIGHTNESS_CONTROLLER="light"
|
DEFAULT_BRIGHTNESS_CONTROLLER="light"
|
||||||
INCREASE_FLAG="-A"
|
DEFAULT_INCREASE_FLAG="-A"
|
||||||
DECREASE_FLAG="-U"
|
DEFAULT_DECREASE_FLAG="-U"
|
||||||
SET_BRIGHTNESS_FLAG="-S"
|
DEFAULT_SET_BRIGHTNESS_FLAG="-S"
|
||||||
GET_BRIGHTNESS_FLAG="-G"
|
DEFAULT_GET_BRIGHTNESS_FLAG="-G"
|
||||||
ADDITIONAL_FLAGS=()
|
DEFAULT_ADDITIONAL_FLAGS=()
|
||||||
|
|
||||||
|
|
||||||
## Default values
|
## Default values
|
||||||
NOTIFICATION_ENABLED=1
|
DEFAULT_NOTIFICATION_ENABLED=1
|
||||||
NOTIFICATION_TIMEOUT=3000
|
DEFAULT_NOTIFICATION_TIMEOUT=3000
|
||||||
|
|
||||||
|
DEFAULT_NORMAL_DELTA=5
|
||||||
|
DEFAULT_BIG_DELTA=10
|
||||||
|
DEFAULT_BRIGTHNESS_MAX=100
|
||||||
|
DEFAULT_BRIGTHNESS_MIN=0.1
|
||||||
|
|
||||||
CONFIG_PATH="$XDG_CONFIG_HOME"
|
|
||||||
VERBOSE=0
|
VERBOSE=0
|
||||||
|
|
||||||
NORMAL_DELTA=5
|
CONFIG_PATH="${XDG_CONFIG_HOME:-$HOME/.config}/brightctl/config.ini"
|
||||||
BIG_DELTA=10
|
READ_INI_POSSIBLE_PATHS=(\
|
||||||
BRIGTHNESS_MAX=100
|
"${XDG_LIB_HOME:-$HOME/.local/lib}/read_ini.sh" "${XDG_LIB_HOME:-$HOME/.local/lib}/bash_ini_parser/read_ini.sh" \
|
||||||
BRIGTHNESS_MIN=0.1
|
"./read_ini.sh" "./bash_ini_parser/read_ini.sh" \
|
||||||
|
"./lib/read_ini.sh" "./lib/bash_ini_parser/read_ini.sh" \
|
||||||
|
)
|
||||||
|
|
||||||
## Args
|
## Args
|
||||||
OPTIONAL_FLAGS=("--notification-timeout" "-v" "--verbose" "-c" "--config" "-n" "--notifcation" "-N" "--no-notification" "-h" "--help")
|
OPTIONAL_FLAGS=( \
|
||||||
|
"-v" "--verbose" \
|
||||||
|
"-c" "--config" \
|
||||||
|
"-h" "-?" "--help" \
|
||||||
|
)
|
||||||
|
|
||||||
verbose () {
|
verbose () {
|
||||||
[[ $VERBOSE -eq 1 ]] && return 0 || return 1
|
[[ $VERBOSE -eq 1 ]] && return 0 || return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_parser_location () {
|
||||||
|
local parser_location=""
|
||||||
|
for location in "${READ_INI_POSSIBLE_PATHS[@]}"; do
|
||||||
|
[[ -f "$location" ]] && parser_location="$location" && break
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "$parser_location"
|
||||||
|
}
|
||||||
|
|
||||||
|
checkout_config () {
|
||||||
|
local parser_location="$(get_parser_location)"
|
||||||
|
|
||||||
|
[[ -z "$parser_location" ]] && verbose && echo "Unable to find the 'read_ini.sh' file, which is used to read the config file. Will be using the default vlaues of the script." && return 0
|
||||||
|
|
||||||
|
verbose && echo "Sourcing the ini parser"
|
||||||
|
source "$parser_location"
|
||||||
|
|
||||||
|
verbose && echo "Reading the config file"
|
||||||
|
read_ini "$CONFIG_PATH"
|
||||||
|
|
||||||
|
BRIGHTNESS_CONTROLLER=${INI__Controller__brightness_controller:-$DEFAULT_BRIGHTNESS_CONTROLLER}
|
||||||
|
INCREASE_FLAG=${INI__Controller__increase_flag:-$DEFAULT_INCREASE_FLAG}
|
||||||
|
DECREASE_FLAG=${INI__Controller__decrease_flag:-$DEFAULT_DECREASE_FLAG}
|
||||||
|
SET_BRIGHTNESS_FLAG=${INI__Controller__set_brightness_flag:-$DEFAULT_SET_BRIGHTNESS_FLAG}
|
||||||
|
GET_BRIGHTNESS_FLAG=${INI__Controller__get_brightness_flag:-$DEFAULT_GET_BRIGHTNESS_FLAG}
|
||||||
|
ADDITIONAL_FLAGS=${INI__Controller__additional_flags:-$DEFAULT_ADDITIONAL_FLAGS}
|
||||||
|
|
||||||
|
NORMAL_DELTA=${INI__Controller__normal_delta:-$DEFAULT_NORMAL_DELTA}
|
||||||
|
BIG_DELTA=${INI__Controller__big_delta:-$DEFAULT_BIG_DELTA}
|
||||||
|
BRIGTHNESS_MAX=${INI__Controller__brigthness_max:-$DEFAULT_BRIGTHNESS_MAX}
|
||||||
|
BRIGTHNESS_MIN=${INI__Controller__brigthness_min:-$DEFAULT_BRIGTHNESS_MIN}
|
||||||
|
|
||||||
|
NOTIFICATION_ENABLED=${INI__Notification__enabled:-$DEFAULT_NOTIFICATION_ENABLED}
|
||||||
|
NOTIFICATION_TIMEOUT=${INI__Notification__timeout:-$DEFAULT_NOTIFICATION_TIMEOUT}
|
||||||
|
|
||||||
|
verbose && echo "" && echo "After parsing the config file, variables are:" && \
|
||||||
|
echo "BRIGHTNESS_CONTROLLER: '$BRIGHTNESS_CONTROLLER'" && \
|
||||||
|
echo "INCREASE_FLAG: '$INCREASE_FLAG'" && \
|
||||||
|
echo "DECREASE_FLAG: '$DECREASE_FLAG'" && \
|
||||||
|
echo "SET_BRIGHTNESS_FLAG: '$SET_BRIGHTNESS_FLAG'" && \
|
||||||
|
echo "GET_BRIGHTNESS_FLAG: '$GET_BRIGHTNESS_FLAG'" && \
|
||||||
|
echo "ADDITIONAL_FLAGS: '$ADDITIONAL_FLAGS'" && \
|
||||||
|
echo "NORMAL_DELTA: '$NORMAL_DELTA'" && \
|
||||||
|
echo "BIG_DELTA: '$BIG_DELTA'" && \
|
||||||
|
echo "BRIGTHNESS_MAX: '$BRIGTHNESS_MAX'" && \
|
||||||
|
echo "BRIGTHNESS_MIN: '$BRIGTHNESS_MIN'" && \
|
||||||
|
echo "NOTIFICATION_ENABLED: '$NOTIFICATION_ENABLED'" && \
|
||||||
|
echo "NOTIFICATION_TIMEOUT: '$NOTIFICATION_TIMEOUT'" && \
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
notify () {
|
notify () {
|
||||||
local brightness=$(get_brightness | sed 's/\..*$//')
|
local brightness=$(get_brightness | sed 's/\..*$//')
|
||||||
local cmd="dunstify -h int:value:$brightness -t $NOTIFICATION_TIMEOUT -h string:x-dunst-stack-tag:volume -i \"xfpm-brightness-lcd\" \"Brightness ($brightness%)\""
|
local cmd="dunstify -h int:value:$brightness -t $NOTIFICATION_TIMEOUT -h string:x-dunst-stack-tag:volume -i \"xfpm-brightness-lcd\" \"Brightness ($brightness%)\""
|
||||||
@ -116,17 +178,14 @@ Options:
|
|||||||
--set-max-brightness set brightness to maximum
|
--set-max-brightness set brightness to maximum
|
||||||
|
|
||||||
Optional arguments:
|
Optional arguments:
|
||||||
--notification-timeout arg forces the notification timeout, in milliseconds (overrides the configuation setting,
|
-c path, --config path instead of reading from the default location ($CONFIG_PATH),
|
||||||
the default value is $NOTIFICATION_TIMEOUT)
|
read from the path given
|
||||||
-n, --notification forces the notification to appear (overrides the configuration setting)
|
|
||||||
-N, --no-notification forces the notification NOT to appear (overrides the configuration setting)
|
|
||||||
-v, --verbose print each step the script passes through
|
-v, --verbose print each step the script passes through
|
||||||
-h, -?, --help show this message
|
-h, -?, --help show this message
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then #if '__name__' == '__main__'
|
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then #if '__name__' == '__main__'
|
||||||
# check if the notification is being forced or not
|
|
||||||
|
|
||||||
while [[ " ${OPTIONAL_FLAGS[@]} " =~ " $1 " ]]; do
|
while [[ " ${OPTIONAL_FLAGS[@]} " =~ " $1 " ]]; do
|
||||||
verbose && echo "Checking for optional arguments"
|
verbose && echo "Checking for optional arguments"
|
||||||
@ -134,29 +193,14 @@ if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then #if '__name__' == '__main__'
|
|||||||
case $1 in
|
case $1 in
|
||||||
-v|--verbose)
|
-v|--verbose)
|
||||||
VERBOSE=1
|
VERBOSE=1
|
||||||
verbose && echo "Setting \$VERBOSE to true (\$VERBOSE=$VERBOSE)"
|
echo "Setting \$VERBOSE to true (\$VERBOSE=$VERBOSE)"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
--notification-timeout)
|
|
||||||
NOTIFICATION_TIMEOUT="$2";
|
|
||||||
verbose && echo "Setting \$NOTIFICATION_TIMEOUT to $2 (\$NOTIFICATION_TIMEOUT=$NOTIFICATION_TIMEOUT)"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-c|--config)
|
-c|--config)
|
||||||
CONFIG_PATH="$2";
|
[[ -f "$2" ]] && CONFIG_PATH="$2" || echo "Error: the config file given '$2' doesn't exists." 1>&2 && exit 1
|
||||||
verbose && echo "Setting \$CONFIG_PATH to $2 (\$CONFIG_PATH=$CONFIG_PATH)"
|
verbose && echo "Setting \$CONFIG_PATH to $2 (\$CONFIG_PATH=$CONFIG_PATH)"
|
||||||
shift 2
|
shift 2
|
||||||
;;
|
;;
|
||||||
-n|--notification)
|
|
||||||
NOTIFICATION_ENABLED=1
|
|
||||||
verbose && echo "Setting \$NOTIFICATION_ENABLED to true (\$NOTIFICATION_ENABLED=$NOTIFICATION_ENABLED)"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-N|--no-notification)
|
|
||||||
NOTIFICATION_ENABLED=0;
|
|
||||||
verbose && echo "Setting \$NOTIFICATION_ENABLED to false (\$NOTIFICATION_ENABLED=$NOTIFICATION_ENABLED)"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-h|-\?|--help)
|
-h|-\?|--help)
|
||||||
verbose && echo "Detected -h, -? or --help"
|
verbose && echo "Detected -h, -? or --help"
|
||||||
usage
|
usage
|
||||||
@ -165,6 +209,8 @@ if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then #if '__name__' == '__main__'
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
checkout_config
|
||||||
|
|
||||||
verbose && echo "Looking at the argument '$@'"
|
verbose && echo "Looking at the argument '$@'"
|
||||||
case $1 in
|
case $1 in
|
||||||
-i|--increase)
|
-i|--increase)
|
||||||
|
Loading…
Reference in New Issue
Block a user