X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=zpm-script.c;h=8018849b36c450b1f00db39657557e658877b8ea;hb=0b52926059ddded0d3eeb4c8598b097f7123d7f3;hp=438cf50099a8e99d243e29dcb107dd95ad8ec9df;hpb=33ef8ea6e32e935fa8bf62b62710b216a1ce9b40;p=zpackage diff --git a/zpm-script.c b/zpm-script.c index 438cf50..8018849 100644 --- a/zpm-script.c +++ b/zpm-script.c @@ -26,7 +26,7 @@ */ void usage(void) { - fprintf(stderr, "usage: db hash file\n"); + fprintf(stderr, "usage: zpm script ...\n"); } int setdir(char *rootdir) { @@ -119,6 +119,12 @@ int run(char *program, char **args, char *output, int *status) { #define SOFT 1 #define HARD 2 +static int list_scripts(void *ud, const char *pkg, const char *stage, + const char *hash) { + printf("%s %s %.8s\n", pkg, stage, hash); + return 0; +} + int main(int ac, char **av){ struct zpm zpm; int rv; @@ -133,7 +139,7 @@ int main(int ac, char **av){ char *pkgid; char *rootdir = 0; - char *db = "/var/lib/zpm/zpm.db"; + char *db = "/var/lib/zpm/local.db"; char *script = "/var/tmp/zpm-script"; char *output = "/var/tmp/zpm-script.out"; char *phase = 0; @@ -177,7 +183,7 @@ int main(int ac, char **av){ case 'h': scriptishash = 1; break; case 'o': output = optarg; break; case 'S': script = optarg; break; - case 'q': quiet = 1; + case 'q': quiet = 1; break; default: usage(); @@ -202,7 +208,7 @@ int main(int ac, char **av){ /* first non option arg is always a package id */ pkgstr = av[argn]; - pkgid = zpm_findpkg(&zpm, pkgstr); + pkgid = zpm_findpkg(&zpm, pkgstr, NULL); if (!pkgid) { fprintf(stderr, "no package for %s\n", pkgstr); @@ -248,10 +254,14 @@ int main(int ac, char **av){ fail = HARD; } } else if (mode == LIST) { - if (!zpm_script_hash(&zpm, pkgid, phase, hash)) { + if (!phase) { + zpm_foreach_script(&zpm, pkgid, phase, 0, list_scripts); + } else if (!zpm_script_hash(&zpm, pkgid, phase, hash)) { fail = SOFT; } else if (scriptishash) { - printf("%s\n", hash); + if (!quiet) { + printf("%s\n", hash); + } } else { if (!output) { output = "-";