aboutsummaryrefslogtreecommitdiffstats
path: root/src/repo/s6-rc-set-install.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/repo/s6-rc-set-install.c')
-rw-r--r--src/repo/s6-rc-set-install.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/repo/s6-rc-set-install.c b/src/repo/s6-rc-set-install.c
index 90f68b6..e2ecd6f 100644
--- a/src/repo/s6-rc-set-install.c
+++ b/src/repo/s6-rc-set-install.c
@@ -27,7 +27,7 @@
#include <s6-rc/config.h>
#include <s6-rc/s6rc.h>
-#define USAGE "s6-rc-set-install [ -v verbosity ] [ -c bootdb ] [ -l livedir ] [ -r repo ] [ -f convfile ] [ -b ] [ -K ] set"
+#define USAGE "s6-rc-set-install [ -v verbosity ] [ -c bootdb ] [ -l livedir ] [ -r repo ] [ -f convfile ] [ -b ] [ -K ] [ -e | -E ] set"
#define dieusage() strerr_dieusage(100, USAGE)
enum golb_e
@@ -35,6 +35,7 @@ enum golb_e
GOLB_BLOCK = 0x01,
GOLB_KEEPOLD = 0x02,
GOLB_NOUPDATE = 0x04,
+ GOLB_NOFORCEESSENTIALS = 0x08,
} ;
enum gola_e
@@ -54,6 +55,8 @@ int main (int argc, char const *const *argv)
{ .so = 'b', .lo = "block", .clear = 0, .set = GOLB_BLOCK },
{ .so = 'K', .lo = "keep-old", .clear = 0, .set = GOLB_KEEPOLD },
{ .so = 0, .lo = "no-update", .set = GOLB_NOUPDATE },
+ { .so = 'e', .lo = "force-essentials", .clear = GOLB_NOFORCEESSENTIALS, .set = 0 },
+ { .so = 'E', .lo = "no-force-essentials", .clear = 0, .set = GOLB_NOFORCEESSENTIALS },
} ;
static gol_arg const rgola[] =
{
@@ -110,7 +113,7 @@ int main (int argc, char const *const *argv)
pid_t pid ;
int wstat ;
char *olddb = 0 ;
- char const *uargv[11] ;
+ char const *uargv[12] ;
char fmtv[UINT_FMT] ;
char clink[repolen + setlen + 11] ;
char cfull[clen] ;
@@ -164,6 +167,7 @@ int main (int argc, char const *const *argv)
{
uargv[l++] = S6RC_BINPREFIX "s6-rc-update" ;
if (wgolb & GOLB_BLOCK) uargv[l++] = "-b" ;
+ uargv[l++] = wgolb & GOLB_NOFORCEESSENTIALS ? "-E" : "-e" ;
uargv[l++] = "-v" ;
uargv[l++] = fmtv ;
uargv[l++] = "-l" ;