script.c (426B)
1 /* See LICENSE for license details. */ 2 static BLOCK_UPDATE_FN(script_update) 3 { 4 char *out = ""; 5 6 /* TODO(rnp): don't use c-runtime for this */ 7 FILE *fp = popen(b->arg, "r"); 8 if (fp) { 9 if (fgets(buffer, sizeof(buffer), fp)) { 10 buffer[strcspn(buffer, "\n")] = 0; 11 out = buffer; 12 } 13 pclose(fp); 14 } 15 b->len = snprintf(b->data, sizeof(b->data), b->fmt, out); 16 } 17 18 static BLOCK_INIT_FN(script_init) 19 { 20 script_update(b); 21 }