prog_name='dwmbar'
prog_ver='0.9'
+ # to strip get_packs() at runtime
+ for x in {0..6}
+ do
+ [[ "${1}" == "${_bases[${x}]}" ]] && {
+ distro_num="${x}"
+ break;
+ }
+ done
+
# configure.ac
configure_ac=("# This file is processed by autoconf to create a configure script
AC_INIT(["${prog_name}"], ["${prog_ver}"])
)
src_makefile=('AM_CPPFLAGS = \
- -DGIVEN_DISTRO=\"'${1}'\" \
- -DICONS_DIR=\"$(ICONZ)\"
+ -DICONS_DIR=\"$(ICONZ)\" \
+ -DDISTRO='${distro_num}'
bin_PROGRAMS = \
'${prog_name}'
-O2 -Wextra -Wall -fno-aggressive-loop-optimizations \
-Wundef -Wwrite-strings -Wcast-align -Wstrict-overflow=5 \
-W -Wshadow -Wconversion -Wpointer-arith -Wstrict-prototypes \
- -Wformat=2 -Wmissing-prototypes -Wno-unused-result
+ -Wformat=2 -Wmissing-prototypes -Wno-unused-result \
+ -Wno-unused-function
'${prog_name}'_LDADD = $(X_LIBS) $(ALSA_LIBS)
#define FILL_ARR(x, z, ...) (snprintf(x, VLA, z, __VA_ARGS__))
#define FILL_UINT_ARR(x, z) (FILL_ARR(x, FMT_UINT, z))
#define FILL_STR_ARR(x, z, ...) (FILL_ARR(z, (1 == x ? "%s" : "%s %s"), __VA_ARGS__))
-#define STREQ(x, z) (!strcmp(x, z))
#define HWMON_DIR "/sys/class/hwmon/hwmon0"
#define CPU_TEMP_FILE HWMON_DIR"/temp1_input"
#include "constants1.h"
#include "constants2.h"
#include "functions.h"
+/* #include "config.h" */
static void get_temp(const char *, char *);
static uint_fast16_t glob_packages(const char *);
}
+/* perform stripping during runtime
+ * instead conditionally checking
+ * each time the program is executed */
void
get_packs(char *str1) {
- FILE *pkgs_file;
uint_fast16_t packages = 0;
- if (STREQ(str1, "archlinux"))
- packages = glob_packages("/var/lib/pacman/local/*");
+#if DISTRO == 0 /* archlinux */
+ packages = glob_packages("/var/lib/pacman/local/*");
- else if (STREQ(str1, "frugalware")) {
- pkgs_file = popen("pacman-g2 -Q 2> /dev/null | wc -l", "r");
- fscanf(pkgs_file, "%"SCNuFAST16, &packages);
- pclose(pkgs_file);
- }
+#elif DISTRO == 5 /* frugalware */
+ FILE *pkgs_file = popen("pacman-g2 -Q 2> /dev/null | wc -l", "r");
+ fscanf(pkgs_file, "%"SCNuFAST16, &packages);
+ pclose(pkgs_file);
- else if (STREQ(str1, "debian"))
- packages = glob_packages("/var/lib/dpkg/info/*.list");
+#elif DISTRO == 1 /* debian */
+ packages = glob_packages("/var/lib/dpkg/info/*.list");
- else if (STREQ(str1, "slackware"))
- packages = glob_packages("/var/log/packages/*");
+#elif DISTRO == 4 /* slackware */
+ packages = glob_packages("/var/log/packages/*");
- else if (STREQ(str1, "gentoo"))
- packages = glob_packages("/var/db/pkg/*/*");
+#elif DISTRO == 2 /* gentoo */
+ packages = glob_packages("/var/db/pkg/*/*");
- else if (STREQ(str1, "rhel")) {
- pkgs_file = popen("rpm -qa 2> /dev/null | wc -l", "r");
- fscanf(pkgs_file, "%"SCNuFAST16, &packages);
- pclose(pkgs_file);
- }
+#elif DISTRO == 4 /* rhel */
+ FILE *pkgs_file = popen("rpm -qa 2> /dev/null | wc -l", "r");
+ fscanf(pkgs_file, "%"SCNuFAST16, &packages);
+ pclose(pkgs_file);
- else if (STREQ(str1, "angstrom")) {
- pkgs_file = popen("opkg list-installed 2> /dev/null | wc -l", "r");
- fscanf(pkgs_file, "%"SCNuFAST16, &packages);
- pclose(pkgs_file);
- }
+#elif DISTRO == 6 /* angstrom */
+ FILE *pkgs_file = popen("opkg list-installed 2> /dev/null | wc -l", "r");
+ fscanf(pkgs_file, "%"SCNuFAST16, &packages);
+ pclose(pkgs_file);
- else {
- exit_with_err(ERR,"You have supplied a wrong distro");
- }
+#endif
FILL_ARR(str1, "%"PRIuFAST16, packages);
}
struct timespec tc = {0};
tc.tv_nsec = sysconf(_SC_CLK_TCK) * 1000000L;
- char packs[VLA] = GIVEN_DISTRO;
- char mobo[VLA], cpu[VLA], ram[VLA], ssd[VLA];
+ char packs[VLA], mobo[VLA], cpu[VLA], ram[VLA], ssd[VLA];
char kern[VLA], volume[VLA], Time[VLA], combine[WHOLE_MAIN_ARR_LEN];
char voltage[VLA], cpu_temp[VLA], mobo_temp[VLA], fans[VLA];