From cb2d497544520b0440ffc285ca687566d36d93ee Mon Sep 17 00:00:00 2001
From: Salt <rehashedsalt@cock.li>
Date: Fri, 12 Jun 2020 05:47:03 -0500
Subject: [PATCH] Conky: Add a bunch of switches to gen.sh That I'll never use

---
 .config/conky/gen.sh | 138 +++++++++++++++++++++++++------------------
 1 file changed, 82 insertions(+), 56 deletions(-)

diff --git a/.config/conky/gen.sh b/.config/conky/gen.sh
index ff00aec2..1465af02 100755
--- a/.config/conky/gen.sh
+++ b/.config/conky/gen.sh
@@ -18,8 +18,11 @@ set -e
 declare -r _name="$(basename -- "$0")"
 # Options
 declare _optout="${XDG_CONFIG_HOME:-$HOME/.config}/conky/conky.conf"
+declare -i _optbar=1
+declare -i _optgraph=1
 declare -i _opthelp
 declare -i _optverbose
+declare -i _opttopitems=4
 # Working variables
 declare -a _args
 declare _return
@@ -78,7 +81,10 @@ Generate a conky.conf configuration file in the current directory
 
   -o			Specify output file. Defaults to
 			~/.config/conky/conky.conf
+  -b			Hide bars
+  -g			Hide graphs
   -h			Print this help text
+  -t			Number of items to print in top lists. Defaults to 4
   -v			Print more status messages. Stacks
 
 Copyright (c) 2020 rehashedsalt@cock.li
@@ -150,7 +156,6 @@ conky.config = {
 EOF
 }
 step_text() {
-	local -r topitems=4
 	local -r nproc="$(nproc)"
 	# Generate our actual functional Conky stuff
 	# Header
@@ -166,44 +171,46 @@ step_text() {
 	${color3}$hr$color
 	${font Roboto:style=Medium:size=9}CPU$font: $freq_g GHz$alignr$cpu%
 	EOF
-	local gpl=1
-	if (( nproc <= 2 )); then
-		gpl=1
-	elif (( nproc <= 4 )); then
-		gpl=2
-	elif (( nproc <= 8 )); then
-		gpl=4
-	else
-		gpl=8
-	fi
-	local width=$(( 400 / gpl ))
-	log "Generating $gpl graphs per row of CPU core stats" 1
-	log "Graphs will be $width wide" 2
-	local cpuinfo
-	for i in $(seq 1 "$gpl" "$nproc"); do
-		# Generate lines
-		local line
-		for j in $(seq 0 $(( gpl - 1 ))); do
-			# Generate graphs
-			local cpu=$(( i + j ))
-			log "Generating graph for CPU $cpu" 2
-			if [ -z "$line" ]; then
-				line="\${cpugraph cpu$cpu 36,$width}"
-			else
-				line="$line \${cpugraph cpu$cpu 36,$width}"
-			fi
+	if (( _optgraph > 0 )); then
+		local gpl=1
+		if (( nproc <= 2 )); then
+			gpl=1
+		elif (( nproc <= 4 )); then
+			gpl=2
+		elif (( nproc <= 8 )); then
+			gpl=4
+		else
+			gpl=8
+		fi
+		local width=$(( 400 / gpl ))
+		log "Generating $gpl graphs per row of CPU core stats" 1
+		log "Graphs will be $width wide" 2
+		local cpuinfo
+		for i in $(seq 1 "$gpl" "$nproc"); do
+			# Generate lines
+			local line
+			for j in $(seq 0 $(( gpl - 1 ))); do
+				# Generate graphs
+				local cpu=$(( i + j ))
+				log "Generating graph for CPU $cpu" 2
+				if [ -z "$line" ]; then
+					line="\${cpugraph cpu$cpu 36,$width}"
+				else
+					line="$line \${cpugraph cpu$cpu 36,$width}"
+				fi
+			done
+			# Trim whitespace
+			line="\${color8}${line%" "}\$color"
+			log "Appending line: $line" 2
+			cpuinfo="$cpuinfo$line\n"
+			unset line
 		done
-		# Trim whitespace
-		line="\${color8}${line%" "}\$color"
-		log "Appending line: $line" 2
-		cpuinfo="$cpuinfo$line\n"
-		unset line
-	done
-	while [ "$cpuinfo" != "${cpuinfo%\\n}" ]; do
-		cpuinfo="${cpuinfo%\\n}"
-	done
-	echo -e "$cpuinfo" >> "$_optout"
-	for i in $(seq $topitems); do
+		while [ "$cpuinfo" != "${cpuinfo%\\n}" ]; do
+			cpuinfo="${cpuinfo%\\n}"
+		done
+		echo -e "$cpuinfo" >> "$_optout"
+	fi
+	for i in $(seq $_opttopitems); do
 		echo "\${color8}\${top name $i}\$color\$alignr\${top cpu $i}%" >> "$_optout"
 	done
 
@@ -211,13 +218,17 @@ step_text() {
 	cat <<- 'EOF' >> "$_optout"
 	${color3}$hr$color
 	${font Roboto:style=Medium:size=9}Memory$font: $mem / $memmax used$alignr$memperc%
-	${color9}${memgraph}$color
-	Memory$alignr$memeasyfree ${color9}${membar}$color
 	EOF
-	if [ -n "$(swapon)" ]; then
-		echo "Swap\$alignr\$swapfree \${color9}\${swapbar}\$color" >> "$_optout"
+	if (( _optgraph > 0 )); then
+		echo -e '${color9}${memgraph}$color' >> "$_optout"
 	fi
-	for i in $(seq $topitems); do
+	if (( _optbar > 0 )); then
+		echo -e 'Memory$alignr$memeasyfree ${color9}${membar}$color' >> "$_optout"
+		if [ -n "$(swapon)" ]; then
+			echo "Swap\$alignr\$swapfree \${color9}\${swapbar}\$color" >> "$_optout"
+		fi
+	fi
+	for i in $(seq $_opttopitems); do
 		echo "\${color9}\${top_mem name $i}\$color\$alignr\${top_mem mem $i}%" >> "$_optout"
 	done
 
@@ -225,15 +236,19 @@ step_text() {
 	cat <<- 'EOF' >> "$_optout"
 	${color3}$hr$color
 	${font Roboto:style=Medium:size=9}Disk$font (R/W):$alignr${diskio /dev/sda}
-	${color7}${diskiograph_read /dev/sda 36,200} ${diskiograph_write /dev/sda 36,200}$color
 	EOF
+	if (( _optgraph > 0 )); then
+		echo '${color7}${diskiograph_read /dev/sda 36,200} ${diskiograph_write /dev/sda 36,200}$color' >> "$_optout"
+	fi
 	# Mountpoint detection
-	for mountpoint in / /home /var /usr /opt /boot /boot/efi; do
-		if mountpoint $mountpoint > /dev/null 2>&1; then
-			echo "$mountpoint\$alignr\${fs_free $mountpoint} \${color7}\${fs_bar $mountpoint}\$color" >> "$_optout"
-		fi
-	done
-	for i in $(seq $topitems); do
+	if (( _optbar > 0 )); then
+		for mountpoint in / /home /var /usr /opt /boot /boot/efi; do
+			if mountpoint $mountpoint > /dev/null 2>&1; then
+				echo "$mountpoint\$alignr\${fs_free $mountpoint} \${color7}\${fs_bar $mountpoint}\$color" >> "$_optout"
+			fi
+		done
+	fi
+	for i in $(seq $_opttopitems); do
 		echo "\${color7}\${top_io name $i}\$color\$alignr\${top_io io_perc $i}%" >> "$_optout"
 	done
 
@@ -243,10 +258,10 @@ step_text() {
 	${font Roboto:style=Medium:size=9}Network$font:${alignr}Default $gw_iface${if_up wlp1s0}
 	EOF
 	for interface in $(iw dev | awk '$1=="Interface"{print $2}'); do
-		cat <<- EOF >>"$_optout"
-		$interface (U/D): \$alignr\${addr $interface} / \${wireless_essid $interface}
-		\${color6}\${upspeedgraph $interface 36,200} \${downspeedgraph $interface 36,200}\$color
-		EOF
+		echo "$interface (U/D): \$alignr\${addr $interface} / \${wireless_essid $interface}" >> "$_optout"
+		if (( _optgraph > 0 )); then
+			echo "\${color6}\${upspeedgraph $interface 36,200} \${downspeedgraph $interface 36,200}\$color" >> "$_optout"
+		fi
 	done
 	echo "]]" >> "$_optout"
 }
@@ -262,14 +277,23 @@ main() {
 	# Parse out arguments
 	while [ -n "$1" ]; do
 		# Parse out flags
-		while getopts ":ho:v" opt; do
+		while getopts ":bgho:t:v" opt; do
 			case $opt in
+				b)
+					_optbar=0
+					;;
+				g)
+					_optgraph=0
+					;;
 				o)
 					_optout="$OPTARG"
 					;;
 				h)
 					_opthelp=1
 					;;
+				t)
+					_opttopitems="$OPTARG"
+					;;
 				v)
 					_optverbose+=1
 					;;
@@ -292,7 +316,9 @@ main() {
 	# Early hook for help
 	[ -n "$_opthelp" ] && printhelp && exit 0
 	# Validate critical options
-	# TODO: That
+	if ! (( _opttopitems >= 0 )); then
+		error "Option -t requires non-negative integer as argument" 2
+	fi
 	# Validate core program dependencies
 	log "Validating dependencies" 2
 	if ! has awk basename iw seq; then