]> pd.if.org Git - zpackage/blobdiff - zpm-script.c
add note for failing script
[zpackage] / zpm-script.c
index d947f058b68c9a9076ec02ebb7089c5574613452..ba057ef72303d2e02d358fc2d6a10d785d62aafd 100644 (file)
@@ -143,6 +143,7 @@ int main(int ac, char **av){
        char *script = "/var/tmp/zpm-script";
        char *output = "/var/tmp/zpm-script.out";
        char *phase = 0;
+       char *envvar = 0;
        int quiet = 0;
        int scriptishash = 0;
        int mode = RUN;
@@ -154,6 +155,16 @@ int main(int ac, char **av){
 
        rootdir = getenv("ZPM_ROOT_DIR");
 
+       envvar = getenv("ZPM_SCRIPT_FILE");
+       if (envvar) {
+               script = envvar;
+       }
+
+       envvar = getenv("ZPM_SCRIPT_OUTPUT");
+       if (envvar) {
+               output = envvar;
+       }
+
        /* run, set, show, hash */
        /* set -S, if -H set the hash, output hash, unless quiet
         * show: -o, or stdout, 
@@ -308,6 +319,7 @@ int main(int ac, char **av){
                if (!zpm_extract(&zpm, hash, script, 0700)) {
                        fprintf(stderr, "unable to extract script");
                        fail = HARD;
+                       zpm_note_add(&zpm, pkgid, NULL, hash, "unable to extract %s script", phase);
                        goto cleanup;
                }
 
@@ -315,6 +327,10 @@ int main(int ac, char **av){
                if (rv) {
                        fprintf(stderr, "package %s script failed with code %d\n",
                                        pkgid, rv);
+                       
+                       zpm_import(&zpm, output, 0, hash);
+                       zpm_note_add(&zpm, pkgid, NULL, hash, "package %s script failed with code %d", phase, rv);
+
                        fail = HARD;
                }
 
@@ -332,5 +348,4 @@ cleanup:
        zpm_close(&zpm);
 
        return (fail == HARD || (required && fail)) ? EXIT_FAILURE : 0;
-
 }