Fix config issues

This commit is contained in:
Dylan Araps 2016-08-14 13:13:21 +10:00
parent 1805fcce59
commit ba569f78cd
1 changed files with 199 additions and 193 deletions

392
neofetch
View File

@ -2512,7 +2512,7 @@ trim() {
# Error {{{ # Error {{{
err() { err() {
err+="$(color 1)[!]$(color fg) $1 err+="$(color 1)[!]\033[0m $1
" "
} }
@ -2598,17 +2598,6 @@ getuserconfig() {
err "Sourced user config ($config_file)" err "Sourced user config ($config_file)"
} }
# Check the commandline flags early for '--config none/off'
case "$@" in
*"--config off"* | *'--config "off"'* | *"--config 'off'"* | \
*"--config none"* | *'--config "none"'* | *"--config 'none'"* | *"--stdout"*)
config="off"
;;
esac
getdefaultconfig 2>/dev/null
[ "${config:-on}" == "on" ] && getuserconfig 2>/dev/null
# }}} # }}}
# Progress bars {{{ # Progress bars {{{
@ -2816,196 +2805,213 @@ exit 1
# Args {{{ # Args {{{
while [ "$1" ]; do getargs() {
case $1 in # Check the commandline flags early for '--config none/off'
# Info case "$@" in
--os_arch) os_arch="$2" ;; *"--config off"* | *'--config "off"'* | *"--config 'off'"* | \
--osx_buildversion) osx_buildversion="$2" ;; *"--config none"* | *'--config "none"'* | *"--config 'none'"* | *"--stdout"*)
--osx_codename) osx_codename="$2" ;;
--cpu_cores) cpu_cores="$2" ;;
--speed_type) speed_type="$2" ;;
--kernel_shorthand) kernel_shorthand="$2" ;;
--uptime_shorthand) uptime_shorthand="$2" ;;
--cpu_shorthand) cpu_shorthand="$2" ;;
--gpu_shorthand) gpu_shorthand="$2" ;;
--refresh_rate) refresh_rate="$2" ;;
--gtk_shorthand) gtk_shorthand="$2" ;;
--gtk2) gtk2="$2" ;;
--gtk3) gtk3="$2" ;;
--shell_path) shell_path="$2" ;;
--shell_version) shell_version="$2" ;;
--battery_num) battery_num="$2" ;;
--battery_shorthand) battery_shorthand="$2" ;;
--ip_host) public_ip_host="$2" ;;
--song_shorthand) song_shorthand="$2" ;;
--birthday_shorthand) birthday_shorthand="$2" ;;
--birthday_time) birthday_time="$2" ;;
--birthday_format) birthday_format="$2" ;;
--disable)
for func in "$@"; do
case "$func" in
"--disable") continue ;;
"--"*) return ;;
*) unset -f "get$func" ;;
esac
done
;;
# Text Colors
--colors)
unset colors
for arg in "$2" "$3" "$4" "$5" "$6" "$7"; do
case "$arg" in
"--"*) break ;;
*) colors+=($arg)
esac
done
colors+=(7 7 7 7 7 7)
;;
# Text Formatting
--underline) underline_enabled="$2" ;;
--underline_char) underline_char="$2" ;;
--bold) bold="$2" ;;
# Color Blocks
--color_blocks) color_blocks="$2" ;;
--block_range) start="$2"; end="$3" ;;
--block_width) block_width="$2" ;;
--block_height) block_height="$2" ;;
# Progress Bars
--progress_char)
progress_char_elapsed="$2"
progress_char_total="$3"
;;
--progress_border) progress_border="$2" ;;
--progress_length) progress_length="$2" ;;
--progress_colors)
progress_color_elapsed="$2"
progress_color_total="$3"
;;
--cpu_display) cpu_display="$2" ;;
--memory_display) memory_display="$2" ;;
--battery_display) battery_display="$2" ;;
--disk_display) disk_display="$2" ;;
# Image
--image)
image="$2"
case "$2" in "--"* | "") image="ascii" ;; esac
;;
--size) image_size="$2" ;;
--crop_mode) crop_mode="$2" ;;
--crop_offset) crop_offset="$2" ;;
--xoffset) xoffset="$2" ;;
--yoffset) yoffset="$2" ;;
--gap) gap="$2" ;;
--clean)
rm -rf "$thumbnail_dir"
rm -rf "/Library/Caches/neofetch/"
exit
;;
# Ascii
--ascii)
image="ascii"
ascii="$2"
case "$2" in "--"* | "") ascii="distro" ;; esac
;;
--ascii_colors)
unset ascii_colors
for arg in "$2" "$3" "$4" "$5" "$6" "$7"; do
case "$arg" in
"--"*) break ;;
*) ascii_colors+=($arg)
esac
done
ascii_colors+=(7 7 7 7 7 7)
;;
--ascii_distro)
ascii_distro="$2"
case "$2" in "--"* | "") ascii_distro="$distro" ;; esac
;;
--ascii_logo_size) ascii_logo_size="$2" ;;
--ascii_bold) ascii_bold="$2" ;;
# Screenshot
--scrot | -s)
scrot="on"
if [ "$2" ]; then
scrot_name="${2##*/}"
scrot_dir="${2/$scrot_name}"
fi
;;
--scrot_cmd) scrot_cmd="$2" ;;
# Stdout
--stdout)
unset info_color prin clear bar
stdout_mode="on"
config="off" config="off"
case "$2" in
"--"* | "") printf "%s\n" "--stdout requires at least one argument"; exit ;;
*) shift; args=("$@"); stdout ;;
esac
;; ;;
# Other *"--config --"*) ;;
--config) *"--config"*) config="off" ;;
case "$2" in
"none" | "off") config="off" ;;
*) config_file="$2"; config="on"; getuserconfig 2>/dev/null ;;
esac
;;
--test)
info=(title underline distro kernel uptime packages shell resolution de wm wmtheme theme icons cpu cpu_usage gpu memory font disk battery song localip publicip users birthday term termfont)
readonly refresh_rate="on"
readonly shell_version="on"
readonly cpu_display="infobar"
readonly memory_display="infobar"
readonly disk_display="infobar"
printinfo() {
if [ "$TRAVIS_OS_NAME" ]; then
info linebreak
info linebreak
fi
for func in "${info[@]}"; do
info "$(tr '[:lower:]' '[:upper:]' <<< "$func")" "$func"
done
info linebreak
info cols
info linebreak
printf "%b%s" "\033[$(tput lines)H"
}
# Set the test func to readonly so a config source
# doesn't overwrite it.
readonly -f printinfo
;;
-v) verbose="on" ;;
-vv) set -x; verbose="on" ;;
--help) usage ;;
--version) printf "%s\n" "Neofetch 1.8"; exit ;;
esac esac
shift [ "${config:-on}" == "on" ] && getuserconfig 2>/dev/null
done
while [ "$1" ]; do
case $1 in
# Info
--os_arch) os_arch="$2" ;;
--osx_buildversion) osx_buildversion="$2" ;;
--osx_codename) osx_codename="$2" ;;
--cpu_cores) cpu_cores="$2" ;;
--speed_type) speed_type="$2" ;;
--kernel_shorthand) kernel_shorthand="$2" ;;
--uptime_shorthand) uptime_shorthand="$2" ;;
--cpu_shorthand) cpu_shorthand="$2" ;;
--gpu_shorthand) gpu_shorthand="$2" ;;
--refresh_rate) refresh_rate="$2" ;;
--gtk_shorthand) gtk_shorthand="$2" ;;
--gtk2) gtk2="$2" ;;
--gtk3) gtk3="$2" ;;
--shell_path) shell_path="$2" ;;
--shell_version) shell_version="$2" ;;
--battery_num) battery_num="$2" ;;
--battery_shorthand) battery_shorthand="$2" ;;
--ip_host) public_ip_host="$2" ;;
--song_shorthand) song_shorthand="$2" ;;
--birthday_shorthand) birthday_shorthand="$2" ;;
--birthday_time) birthday_time="$2" ;;
--birthday_format) birthday_format="$2" ;;
--disable)
for func in "$@"; do
case "$func" in
"--disable") continue ;;
"--"*) return ;;
*) unset -f "get$func" ;;
esac
done
;;
# Text Colors
--colors)
unset colors
for arg in "$2" "$3" "$4" "$5" "$6" "$7"; do
case "$arg" in
"--"*) break ;;
*) colors+=($arg)
esac
done
colors+=(7 7 7 7 7 7)
;;
# Text Formatting
--underline) underline_enabled="$2" ;;
--underline_char) underline_char="$2" ;;
--bold) bold="$2" ;;
# Color Blocks
--color_blocks) color_blocks="$2" ;;
--block_range) start="$2"; end="$3" ;;
--block_width) block_width="$2" ;;
--block_height) block_height="$2" ;;
# Progress Bars
--progress_char)
progress_char_elapsed="$2"
progress_char_total="$3"
;;
--progress_border) progress_border="$2" ;;
--progress_length) progress_length="$2" ;;
--progress_colors)
progress_color_elapsed="$2"
progress_color_total="$3"
;;
--cpu_display) cpu_display="$2" ;;
--memory_display) memory_display="$2" ;;
--battery_display) battery_display="$2" ;;
--disk_display) disk_display="$2" ;;
# Image
--image)
image="$2"
case "$2" in "--"* | "") image="ascii" ;; esac
;;
--size) image_size="$2" ;;
--crop_mode) crop_mode="$2" ;;
--crop_offset) crop_offset="$2" ;;
--xoffset) xoffset="$2" ;;
--yoffset) yoffset="$2" ;;
--gap) gap="$2" ;;
--clean)
rm -rf "$thumbnail_dir"
rm -rf "/Library/Caches/neofetch/"
exit
;;
# Ascii
--ascii)
image="ascii"
ascii="$2"
case "$2" in "--"* | "") ascii="distro" ;; esac
;;
--ascii_colors)
unset ascii_colors
for arg in "$2" "$3" "$4" "$5" "$6" "$7"; do
case "$arg" in
"--"*) break ;;
*) ascii_colors+=($arg)
esac
done
ascii_colors+=(7 7 7 7 7 7)
;;
--ascii_distro)
ascii_distro="$2"
case "$2" in "--"* | "") ascii_distro="$distro" ;; esac
;;
--ascii_logo_size) ascii_logo_size="$2" ;;
--ascii_bold) ascii_bold="$2" ;;
# Screenshot
--scrot | -s)
scrot="on"
if [ "$2" ]; then
scrot_name="${2##*/}"
scrot_dir="${2/$scrot_name}"
fi
;;
--scrot_cmd) scrot_cmd="$2" ;;
# Stdout
--stdout)
unset info_color prin clear bar
stdout_mode="on"
config="off"
case "$2" in
"--"* | "") printf "%s\n" "--stdout requires at least one argument"; exit ;;
*) shift; args=("$@"); stdout ;;
esac
;;
# Other
--config)
case "$2" in
"none" | "off") config="off" ;;
*) config_file="$2"; config="on"; getuserconfig 2>/dev/null ;;
esac
;;
--test)
info=(title underline distro kernel uptime packages shell resolution de wm wmtheme theme icons cpu cpu_usage gpu memory font disk battery song localip publicip users birthday term termfont)
readonly refresh_rate="on"
readonly shell_version="on"
readonly cpu_display="infobar"
readonly memory_display="infobar"
readonly disk_display="infobar"
printinfo() {
if [ "$TRAVIS_OS_NAME" ]; then
info linebreak
info linebreak
fi
for func in "${info[@]}"; do
info "$(tr '[:lower:]' '[:upper:]' <<< "$func")" "$func"
done
info linebreak
info cols
info linebreak
printf "%b%s" "\033[$(tput lines)H"
}
# Set the test func to readonly so a config source
# doesn't overwrite it.
readonly -f printinfo
;;
-v) verbose="on" ;;
-vv) set -x; verbose="on" ;;
--help) usage ;;
--version) printf "%s\n" "Neofetch 1.8"; exit ;;
esac
shift
done
}
# }}} # }}}
# Call Functions and Finish Up {{{ # Call Functions and Finish Up {{{
main() { main() {
getdefaultconfig 2>/dev/null
getargs "$@"
getos getos
# Restore cursor and clear screen on ctrl+c # Restore cursor and clear screen on ctrl+c
@ -3058,12 +3064,12 @@ main() {
[ "$scrot" == "on" ] && takescrot [ "$scrot" == "on" ] && takescrot
# Show error messages # Show error messages
[ "$verbose" == "on" ] && printf "%s" "$err" [ "$verbose" == "on" ] && printf "%b%s" "$err"
# Reset exit status of the tests above # Reset exit status of the tests above
printf "%s" printf "%s"
} }
main main "$@"
# }}} # }}}