Home
       Added shell command function - slstatus - suckless status monitor. mirror from suckless.org
  HTML git clone git://git.drkhsh.at/slstatus.git
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit f6f0c895ce95065f581f6f6d473afe9745a6f812
   DIR parent 3c1a03919f147069fac3444f5c8a2adaf8a65478
  HTML Author: Aaron Marcher <info@nulltime.net>
       Date:   Mon, 15 Aug 2016 12:23:35 +0200
       
       Added shell command function
       
       Diffstat:
         M README.md                           |       1 +
         M config.def.h                        |       1 +
         M slstatus.c                          |      26 ++++++++++++++++++++++++++
       
       3 files changed, 28 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/README.md b/README.md
       @@ -11,6 +11,7 @@ The following information is included:
        
        - battery percentage
        - cpu usage (in percent)
       +- custom shell commands
        - date and time
        - disk numbers (free storage, percentage, total storage and used storage)
        - available entropy
   DIR diff --git a/config.def.h b/config.def.h
       @@ -27,6 +27,7 @@ static unsigned int update_interval = 1;
        - ram_perc (ram usage in percent) [argument: NULL]
        - ram_total (ram usage in percent) [argument: NULL]
        - ram_used (ram usage in percent) [argument: NULL]
       +- run_command (run custom shell command) [argument: command]
        - temp (temperature in degrees) [argument: temperature file]
        - uid (uid of current user) [argument: NULL]
        - username (username of current user) [argument: NULL]
   DIR diff --git a/slstatus.c b/slstatus.c
       @@ -444,6 +444,32 @@ ram_used(const char *null)
            return smprintf("%f", (float)used / 1024 / 1024);
        }
        
       +/* custom shell command */
       +char *
       +run_command(const char* command)
       +{
       +        FILE *fp;
       +        char buffer[64];
       +
       +    /* try to open the command output */
       +        if (!(fp = popen(command, "r"))) {
       +        fprintf(stderr, "Could not get command output for: %s.\n", command);
       +        return smprintf("n/a");
       +    }
       +
       +    /* get command output text, save it to buffer */
       +        fgets(buffer, sizeof(buffer)-1, fp);
       +
       +    /* close it again */
       +        pclose(fp);
       +
       +    /* add nullchar at the end */
       +        buffer[strlen(buffer) - 1] = '\0';
       +
       +    /* return the output */
       +        return smprintf("%s", buffer);
       +}
       +
        /* temperature */
        char *
        temp(const char *file)