Move (most of) bar formatting to the user
[khatus.git] / bin / khatus_gen_bar_make_status
index 00e5506..7c34148 100755 (executable)
@@ -1,39 +1,74 @@
 #! /usr/bin/awk -f
 
 BEGIN {
-    aliases["@energy"]    = "bar_make_status_energy()"
-    aliases["@memory"]    = "bar_make_status_mem()"
-    aliases["@processes"] = "bar_make_status_procs()"
-    aliases["@cpu"]       = "bar_make_status_cpu()"
-    aliases["@disk"]      = "bar_make_status_disk()"
-    aliases["@net"]       = "bar_make_status_net()"
-    aliases["@bluetooth"] = "bar_make_status_bluetooth()"
-    aliases["@backlight"] = "bar_make_status_screen_brightness()"
-    aliases["@volume"]    = "bar_make_status_volume()"
-    aliases["@mpd"]       = "bar_make_status_mpd()"
-    aliases["@weather"]   = "bar_make_status_weather()"
-    aliases["@datetime"]  = "bar_make_status_datetime()"
-    out = "function bar_make_status(    position, bar, sep, i, j) {\n"
-    n = split(Status_Bar, s, ",")
-    for (i=1; i<=n; i++) {
-        alias = s[i]
-        function_call = aliases[alias]
+    aliases["@energy_percent"]      = "bar_make_status_energy_percent()"
+    aliases["@energy_direction"]    = "bar_make_status_energy_direction()"
+
+    aliases["@memory_percent"]      = "bar_make_status_mem_percent()"
+
+    aliases["@processes_count_all"] = "bar_make_status_procs_count_all()"
+    aliases["@processes_count_r"]   = "bar_make_status_procs_count_r()"
+    aliases["@processes_count_d"]   = "bar_make_status_procs_count_d()"
+    aliases["@processes_count_t"]   = "bar_make_status_procs_count_t()"
+    aliases["@processes_count_i"]   = "bar_make_status_procs_count_i()"
+    aliases["@processes_count_z"]   = "bar_make_status_procs_count_z()"
+
+    aliases["@cpu_loadavg"]         = "bar_make_status_cpu_loadavg()"
+    aliases["@cpu_temp"]            = "bar_make_status_cpu_temperature()"
+    aliases["@cpu_fan_speed"]       = "bar_make_status_cpu_fan_speed()"
+
+    aliases["@disk_space"]          = "bar_make_status_disk_space()"
+    aliases["@disk_io_w"]           = "bar_make_status_disk_io_w()"
+    aliases["@disk_io_r"]           = "bar_make_status_disk_io_r()"
+
+    aliases["@net_addr"]            = "bar_make_status_net_addr(\"%s\")"
+     params["@net_addr"]            = 1
+    aliases["@net_io_w"]            = "bar_make_status_net_io_w(\"%s\")"
+     params["@net_io_w"]            = 1
+    aliases["@net_io_r"]            = "bar_make_status_net_io_r(\"%s\")"
+     params["@net_io_r"]            = 1
+    aliases["@net_wifi"]            = "bar_make_status_net_wifi(\"%s\")"
+     params["@net_wifi"]            = 1
+
+    aliases["@bluetooth_power"]     = "bar_make_status_bluetooth_power()"
+
+    aliases["@backlight_percent"]   = "bar_make_status_backlight_percent()"
+
+    aliases["@volume_pa_sink"]      = "bar_make_status_volume_pulseaudio_sink(%d)"
+     params["@volume_pa_sink"]      = 1
+
+    aliases["@mpd"]                 = "bar_make_status_mpd()"
+
+    aliases["@weather_temp_f"]      = "bar_make_status_weather_temp_f()"
+
+    aliases["@datetime"]            = "bar_make_status_datetime()"
+
+    out = "function bar_make_status() {\n"
+    n_args = split(Status_Args, args_arr, ",")
+    for (i=1; i<=n_args; i++) {
+        arg = args_arr[i]
+        split(arg, arg_parts, ":")
+        alias = arg_parts[1]
+        n_expected_params = params[alias]
+        if (n_expected_params == 0) {
+            function_call = aliases[alias]
+        } else if (n_expected_params == 1) {
+            function_call = sprintf(aliases[alias], arg_parts[2])
+        } else {
+            printf(\
+                "Unsupported number of params: %d in %s\n",
+                n_expected_params, alias) \
+                > "/dev/stderr"
+            exit(1)
+        }
         if (function_call) {
-            out = out "        position[++i] = " function_call ";\n"
+            args_str = args_str ", " function_call
         } else {
             printf("Unexpected status bar component alias: \"%s\"\n", alias) \
                 > "/dev/stderr"
             exit(1)
         }
     }
-    out = out "\
-        bar = \"\";\
-        sep = \"\";\
-        for (j = 1; j <= i; j++) {\
-           bar = bar sep position[j];\
-           sep = \" \";\
-        }\
-        return bar;\
-    }";
+    out = out "    return sprintf(\"" Status_Fmt "\"" args_str ");\n}";
     print out
 }
This page took 0.030638 seconds and 4 git commands to generate.