feat(cli): add --no-chroot-scripts flag
Author:
Chris Tusa <chris.tusa@leafscale.com>
Date:
Jul 05, 2026 17:14
Changeset:
4bd00dffc89ddd49517bcf576832a4042a35c10e
Branch:
default
Changed files:
Diff
diff -r 4947137b7532 -r 4bd00dffc89d src/commands/build.reef --- a/src/commands/build.reef Sun Jul 05 17:13:28 2026 -0500 +++ b/src/commands/build.reef Sun Jul 05 17:14:50 2026 -0500 @@ -98,6 +98,9 @@ if arg == "--root" or arg == "--prefix" i = i + 2 continue + elif arg == "--no-chroot-scripts" + i = i + 1 // valueless flag: skip only itself + continue end if if arg == "--noclean" or arg == "-n" noclean = true diff -r 4947137b7532 -r 4bd00dffc89d src/commands/db.reef --- a/src/commands/db.reef Sun Jul 05 17:13:28 2026 -0500 +++ b/src/commands/db.reef Sun Jul 05 17:14:50 2026 -0500 @@ -43,7 +43,7 @@ // Load configuration and apply command-line overrides let base_cfg = config.load() - let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix) + let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix, opts.no_chroot) let root_path = config.get_root(cfg) // Show root if set (verbose mode) diff -r 4947137b7532 -r 4bd00dffc89d src/commands/files.reef --- a/src/commands/files.reef Sun Jul 05 17:13:28 2026 -0500 +++ b/src/commands/files.reef Sun Jul 05 17:14:50 2026 -0500 @@ -40,7 +40,7 @@ // Load configuration and apply command-line overrides let base_cfg = config.load() - let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix) + let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix, opts.no_chroot) let root_path = config.get_root(cfg) // Show root if set (verbose mode) diff -r 4947137b7532 -r 4bd00dffc89d src/commands/info.reef --- a/src/commands/info.reef Sun Jul 05 17:13:28 2026 -0500 +++ b/src/commands/info.reef Sun Jul 05 17:14:50 2026 -0500 @@ -41,7 +41,7 @@ // Load configuration and apply command-line overrides let base_cfg = config.load() - let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix) + let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix, opts.no_chroot) let root_path = config.get_root(cfg) // Show root if set (verbose mode) diff -r 4947137b7532 -r 4bd00dffc89d src/commands/install.reef --- a/src/commands/install.reef Sun Jul 05 17:13:28 2026 -0500 +++ b/src/commands/install.reef Sun Jul 05 17:14:50 2026 -0500 @@ -57,7 +57,7 @@ // Load configuration and apply command-line overrides let base_cfg = config.load() - let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix) + let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix, opts.no_chroot) uhttp.enable_proxy(config.get_use_proxy(cfg)) // Auto-refresh port index if configured @@ -92,6 +92,9 @@ if pkg_arg == "--root" or pkg_arg == "--prefix" i = i + 2 // Skip flag and its value continue + elif pkg_arg == "--no-chroot-scripts" + i = i + 1 // valueless flag: skip only itself + continue end if if str.starts_with(pkg_arg, "-") i = i + 1 diff -r 4947137b7532 -r 4bd00dffc89d src/commands/list.reef --- a/src/commands/list.reef Sun Jul 05 17:13:28 2026 -0500 +++ b/src/commands/list.reef Sun Jul 05 17:14:50 2026 -0500 @@ -36,7 +36,7 @@ // Load configuration and apply command-line overrides let base_cfg = config.load() - let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix) + let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix, opts.no_chroot) let root_path = config.get_root(cfg) // Show root if set (verbose mode) diff -r 4947137b7532 -r 4bd00dffc89d src/commands/owner.reef --- a/src/commands/owner.reef Sun Jul 05 17:13:28 2026 -0500 +++ b/src/commands/owner.reef Sun Jul 05 17:14:50 2026 -0500 @@ -41,7 +41,7 @@ // Load configuration and apply command-line overrides let base_cfg = config.load() - let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix) + let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix, opts.no_chroot) let root_path = config.get_root(cfg) // Show root if set (verbose mode) diff -r 4947137b7532 -r 4bd00dffc89d src/commands/remove.reef --- a/src/commands/remove.reef Sun Jul 05 17:13:28 2026 -0500 +++ b/src/commands/remove.reef Sun Jul 05 17:14:50 2026 -0500 @@ -52,7 +52,7 @@ // Load configuration and apply command-line overrides let base_cfg = config.load() - let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix) + let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix, opts.no_chroot) let root_path = config.get_root(cfg) // Show root if set (verbose mode) @@ -72,6 +72,9 @@ if pkg_name == "--root" or pkg_name == "--prefix" i = i + 2 // Skip flag and its value continue + elif pkg_name == "--no-chroot-scripts" + i = i + 1 // valueless flag: skip only itself + continue end if if str.starts_with(pkg_name, "-") i = i + 1 diff -r 4947137b7532 -r 4bd00dffc89d src/commands/upgrade.reef --- a/src/commands/upgrade.reef Sun Jul 05 17:13:28 2026 -0500 +++ b/src/commands/upgrade.reef Sun Jul 05 17:14:50 2026 -0500 @@ -42,7 +42,7 @@ // Load configuration and apply command-line overrides let base_cfg = config.load() - let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix) + let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix, opts.no_chroot) let root_path = config.get_root(cfg) // Auto-refresh port index if configured @@ -64,6 +64,9 @@ if arg == "--root" or arg == "--prefix" i = i + 2 // Skip flag and its value continue + elif arg == "--no-chroot-scripts" + i = i + 1 // valueless flag: skip only itself + continue end if if not str.starts_with(arg, "-") pkg_count = pkg_count + 1 @@ -85,6 +88,9 @@ if pkg_name == "--root" or pkg_name == "--prefix" i = i + 2 // Skip flag and its value continue + elif pkg_name == "--no-chroot-scripts" + i = i + 1 // valueless flag: skip only itself + continue end if if str.starts_with(pkg_name, "-") i = i + 1 diff -r 4947137b7532 -r 4bd00dffc89d src/commands/verify.reef --- a/src/commands/verify.reef Sun Jul 05 17:13:28 2026 -0500 +++ b/src/commands/verify.reef Sun Jul 05 17:14:50 2026 -0500 @@ -46,7 +46,7 @@ // Load configuration and apply command-line overrides let base_cfg = config.load() - let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix) + let cfg = config.apply_overrides(base_cfg, opts.root, opts.prefix, opts.no_chroot) let root_path = config.get_root(cfg) if opts.verbose and str.length(root_path) > 0 diff -r 4947137b7532 -r 4bd00dffc89d src/main.reef --- a/src/main.reef Sun Jul 05 17:13:28 2026 -0500 +++ b/src/main.reef Sun Jul 05 17:14:50 2026 -0500 @@ -18,7 +18,6 @@ import sys.args import sys.process import sys.env -import io.file import io.dir import core.str import types @@ -93,6 +92,7 @@ println(" --no-color Disable colored output") println(" --root <path> Use alternative root directory") println(" --prefix <path> Installation prefix (default: /usr)") + println(" --no-chroot-scripts Run maintainer scripts on the host, not chrooted") println("") println("EXIT CODES:") println(" 0 Success") @@ -120,7 +120,7 @@ end if // Skip boolean flags - if arg == "-y" or arg == "--yes" or arg == "-f" or arg == "--force" or arg == "-v" or arg == "--verbose" or arg == "-n" or arg == "--dry-run" or arg == "-q" or arg == "--quiet" or arg == "--no-color" + if arg == "-y" or arg == "--yes" or arg == "-f" or arg == "--force" or arg == "-v" or arg == "--verbose" or arg == "-n" or arg == "--dry-run" or arg == "-q" or arg == "--quiet" or arg == "--no-color" or arg == "--no-chroot-scripts" i = i + 1 continue end if @@ -151,6 +151,9 @@ opts.prefix = args.get_flag_value("prefix") end if + // Check for --no-chroot-scripts option (valueless) + opts.no_chroot = args.has_flag("no-chroot-scripts") + return opts end parse_global_options diff -r 4947137b7532 -r 4bd00dffc89d src/types.reef --- a/src/types.reef Sun Jul 05 17:13:28 2026 -0500 +++ b/src/types.reef Sun Jul 05 17:14:50 2026 -0500 @@ -195,6 +195,7 @@ quiet: bool root: string prefix: string + no_chroot: bool // --no-chroot-scripts: run maintainer scripts on the host, not chrooted cmd_index: int // Index of the command in args (for subcommand parsing) end GlobalOptions @@ -255,6 +256,7 @@ quiet: false, root: "", prefix: "", + no_chroot: false, cmd_index: 1 } end new_global_options