]> git.ipfire.org Git - pakfire.git/commitdiff
jail: Add convenience function to run scripts
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 3 Aug 2022 09:26:56 +0000 (09:26 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 3 Aug 2022 09:26:56 +0000 (09:26 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/include/pakfire/jail.h
src/libpakfire/jail.c

index b42ed12ee40640b03bab108c0fe90c5b9d086c7e..6901d7b98057ca4da2064ec6c88d9965dc17149f 100644 (file)
@@ -56,6 +56,8 @@ int pakfire_jail_exec_script(struct pakfire_jail* jail,
 
 // Convenience functions
 int pakfire_jail_run(struct pakfire* pakfire, const char* argv[], int flags);
+int pakfire_jail_run_script(struct pakfire* pakfire,
+       const char* script, const size_t length, const char* argv[], int flags);
 
 #endif
 
index e645da7c0b07179f8e70ef8cbc140753ce282353..57de2b6e24fd0546012b317c5ce43b23c9809102 100644 (file)
@@ -1192,3 +1192,23 @@ ERROR:
 
        return r;
 }
+
+int pakfire_jail_run_script(struct pakfire* pakfire,
+               const char* script, const size_t length, const char* argv[], int flags) {
+       struct pakfire_jail* jail = NULL;
+       int r;
+
+       // Create a new jail
+       r = pakfire_jail_create(&jail, pakfire, flags);
+       if (r)
+               goto ERROR;
+
+       // Execute the command
+       r = pakfire_jail_exec_script(jail, script, length, argv);
+
+ERROR:
+       if (jail)
+               pakfire_jail_unref(jail);
+
+       return r;
+}