#! /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
}