diff --git a/flake.nix b/flake.nix index 04fe615..1dc2c12 100644 --- a/flake.nix +++ b/flake.nix @@ -36,11 +36,6 @@ import nixpkgs { inherit system; overlays = [ - # (final: prev: { - # util-linux = prev.util-linux.override { - # pamSupport = false; - # }; - # }) # (final: prev: { # nix = prev.nix.overrideAttrs (old: { # postInstall = '' @@ -246,9 +241,6 @@ groupContents = (lib.concatStringsSep "\n" (lib.attrValues (lib.mapAttrs groupToGroup groups))); defaultNixConf = { - cores = "1"; - max-jobs = "1"; - http-connections = "5"; sandbox = "true"; build-users-group = "nixbld"; trusted-users = [ @@ -481,16 +473,6 @@ extraCommands = '' rm -rf nix-support ln -s /nix/var/nix/profiles nix/var/nix/gcroots/profiles - - # https://github.com/containerd/containerd/issues/12683 - - # tmp="$(realpath --relative-to=etc etc/passwd)" - # rm -f etc/passwd - # cp "$tmp" etc/passwd - - # tmp="$(realpath --relative-to=etc etc/group)" - # rm -f etc/group - # cp "$tmp" etc/group ''; fakeRootCommands = '' chmod u=rwxt,u=rwx,o=rwx tmp @@ -521,7 +503,7 @@ "USER=root" "PATH=${ lib.concatStringsSep ":" [ - "${lib.getBin execas-github}/bin" + # "${lib.getBin execas-github}/bin" "/root/.nix-profile/bin" "/nix/var/nix/profiles/default/bin" "/nix/var/nix/profiles/default/sbin" @@ -543,7 +525,7 @@ "GIT_SSL_CAINFO=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt" "NIX_SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt" "NIX_PATH=/nix/var/nix/profiles/per-user/root/channels:/root/home/.nix-defexpr/channels" - "MEMORYTEST=${lib.getExe' execas-github "memorytest"}" + # "MEMORYTEST=${lib.getExe' execas-github "memorytest"}" ]; }; }; diff --git a/src/bash.zig b/src/bash.zig index cf83a34..b576730 100644 --- a/src/bash.zig +++ b/src/bash.zig @@ -25,12 +25,7 @@ pub fn main(init: std.process.Init) !void { try lib.switchToUser(); - try lib.exec(init.gpa, options.bash, argv.items, &environ_map); - - // const err = std.process.replace(io, .{ - // .argv = argv.items, - // .environ_map = &environ_map, - // }); + lib.chdir(.user); - // std.debug.print("unable to execute: {t}\n", .{err}); + try lib.exec(init.gpa, options.bash, argv.items, &environ_map); } diff --git a/src/lib.zig b/src/lib.zig index 9f1daa0..f89ab31 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -3,11 +3,13 @@ const std = @import("std"); +pub const chdir = @import("lib/chdir.zig").chdir; pub const exec = @import("lib/process.zig").exec; pub const fixupEnvironMap = @import("lib/env.zig").fixupEnvironMap; pub const switchToUser = @import("lib/switchtouser.zig").switchToUser; test { + _ = @import("lib/chdir.zig"); _ = @import("lib/env.zig"); _ = @import("lib/process.zig"); _ = @import("lib/switchtouser.zig"); diff --git a/src/lib/chdir.zig b/src/lib/chdir.zig new file mode 100644 index 0000000..26ee7a6 --- /dev/null +++ b/src/lib/chdir.zig @@ -0,0 +1,14 @@ +// SPDX-FileCopyrightText: © 2023 Jeffrey C. Ollie +// SPDX-License-Identifier: MIT + +const std = @import("std"); +const options = @import("options"); + +pub fn chdir( + user: enum { root, user }, +) void { + _ = std.os.linux.chdir(switch (user) { + .root => "/root", + .user => "/github/home", + }); +} diff --git a/src/sh.zig b/src/sh.zig index 7ec258f..b68702d 100644 --- a/src/sh.zig +++ b/src/sh.zig @@ -25,14 +25,7 @@ pub fn main(init: std.process.Init) !void { try lib.switchToUser(); - try lib.exec(init.gpa, options.sh, argv.items, &environ_map); - - // const err = std.process.replace(io, .{ - // .argv = argv.items, - // .environ_map = &environ_map, - // }); + lib.chdir(.user); - // std.debug.print("unable to execute: {t}\n", .{err}); - - // return 127; + try lib.exec(init.gpa, options.sh, argv.items, &environ_map); }