Skip to content

Commit 296fc3e

Browse files
committed
Extract function to parse value from file
- Parses values from INI-style "key = value" lines - Only the last set value for a key is output
1 parent 770d9a4 commit 296fc3e

File tree

1 file changed

+22
-14
lines changed

1 file changed

+22
-14
lines changed

screenfetch-dev

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,17 @@ if [[ "$overrideOpts" ]]; then
529529
fi
530530

531531

532+
#####################
533+
# Parsing Functions
534+
#####################
535+
#
536+
parseValueFromFile() {
537+
key="$1"
538+
file="$2"
539+
"${AWK}" -F'"' "/^${key}/ {v = \$2} END {print v}" "$file"
540+
}
541+
542+
532543
#########################
533544
# Begin Detection Phase
534545
#########################
@@ -2771,16 +2782,13 @@ detectgtk () {
27712782
fi
27722783

27732784
if [[ -f $HOME/.gtkrc-2.0 ]]; then
2774-
gtk2Theme=$(grep '^gtk-theme-name' "$HOME"/.gtkrc-2.0 | "${AWK}" -F'=' '{print $2}')
2775-
gtk2Theme=${gtk2Theme//\"/}
2776-
gtkIcons=$(grep '^gtk-icon-theme-name' "$HOME"/.gtkrc-2.0 | "${AWK}" -F'=' '{print $2}')
2777-
gtkIcons=${gtkIcons//\"/}
2778-
gtkFont=$(grep 'font_name' "$HOME"/.gtkrc-2.0 | "${AWK}" -F'=' '{print $2}')
2779-
gtkFont=${gtkFont//\"/}
2785+
gtk2Theme=$(parseValueFromFile gtk-theme-name "$HOME"/.gtkrc-2.0)
2786+
gtkIcons=$(parseValueFromFile gtk-icon-theme "$HOME"/.gtkrc-2.0)
2787+
gtkFont=$(parseValueFromFile gtk-font-name "$HOME"/.gtkrc-2.0)
27802788
fi
27812789

27822790
if [[ -f $HOME/.config/gtk-3.0/settings.ini ]]; then
2783-
gtk3Theme=$(grep '^gtk-theme-name=' "$HOME"/.config/gtk-3.0/settings.ini | "${AWK}" -F'=' '{print $2}')
2791+
gtk3Theme=$(parseValueFromFile gtk-theme-name "$HOME"/.config/gtk-3.0/settings.ini)
27842792
fi
27852793
;;
27862794
'Cinnamon'*) # Desktop Environment found as "Cinnamon"
@@ -2829,10 +2837,10 @@ detectgtk () {
28292837
;;
28302838
'Xfce'*) # Desktop Environment found as "Xfce"
28312839
if [ "$distro" == "BunsenLabs" ] ; then
2832-
gtk2Theme=$("${AWK}" -F'"' '/^gtk-theme/ {print $2}' "$HOME"/.gtkrc-2.0)
2833-
gtk3Theme=$("${AWK}" -F'=' '/^gtk-theme-name/ {print $2}' "$HOME"/.config/gtk-3.0/settings.ini)
2834-
gtkIcons=$("${AWK}" -F'"' '/^gtk-icon-theme/ {print $2}' "$HOME"/.gtkrc-2.0)
2835-
gtkFont=$("${AWK}" -F'"' '/^gtk-font-name/ {print $2}' "$HOME"/.gtkrc-2.0)
2840+
gtk2Theme=$(parseValueFromFile gtk-theme-name "$HOME"/.gtkrc-2.0)
2841+
gtk3Theme=$(parseValueFromFile gtk-theme-name "$HOME"/.config/gtk-3.0/settings.ini)
2842+
gtkIcons=$(parseValueFromFile gtk-icon-theme "$HOME"/.gtkrc-2.0)
2843+
gtkFont=$(parseValueFromFile gtk-font-name "$HOME"/.gtkrc-2.0)
28362844
else
28372845
if type -p xfconf-query >/dev/null 2>&1; then
28382846
gtk2Theme=$(xfconf-query -c xsettings -p /Net/ThemeName 2>/dev/null)
@@ -2880,15 +2888,15 @@ detectgtk () {
28802888
*) # Lightweight or No DE Found
28812889
if [ -f "$HOME/.gtkrc-2.0" ]; then
28822890
if grep -q 'gtk-theme' "$HOME/.gtkrc-2.0"; then
2883-
gtk2Theme=$("${AWK}" -F'"' '/^gtk-theme/ {print $2}' "$HOME/.gtkrc-2.0")
2891+
gtk2Theme=$(parseValueFromFile gtk-theme-name "$HOME"/.gtkrc-2.0)
28842892
fi
28852893

28862894
if grep -q 'icon-theme' "$HOME/.gtkrc-2.0"; then
2887-
gtkIcons=$("${AWK}" -F'"' '/^gtk-icon-theme/ {print $2}' "$HOME/.gtkrc-2.0")
2895+
gtkIcons=$(parseValueFromFile gtk-icon-theme "$HOME"/.gtkrc-2.0)
28882896
fi
28892897

28902898
if grep -q 'font' "$HOME/.gtkrc-2.0"; then
2891-
gtkFont=$("${AWK}" -F'"' '/^gtk-font-name/ {print $2}' "$HOME/.gtkrc-2.0")
2899+
gtkFont=$(parseValueFromFile gtk-font-name "$HOME"/.gtkrc-2.0)
28922900
fi
28932901
fi
28942902
# $HOME/.gtkrc.mine theme detect only

0 commit comments

Comments
 (0)