Unverified Commit 1b94d11c authored by Lassulus's avatar Lassulus Committed by GitHub
Browse files

Merge pull request #102354 from erikarvstedt/extra-container

extra-container: init at 0.8
parents b7bd131f a807cd3a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -135,6 +135,7 @@
  ./programs/droidcam.nix
  ./programs/environment.nix
  ./programs/evince.nix
  ./programs/extra-container.nix
  ./programs/feedbackd.nix
  ./programs/file-roller.nix
  ./programs/firejail.nix
+17 −0
Original line number Diff line number Diff line
{ config, pkgs, lib, ... }:

with lib;
let
  cfg = config.programs.extra-container;
in {
  options = {
    programs.extra-container.enable = mkEnableOption ''
      extra-container, a tool for running declarative NixOS containers
      without host system rebuilds
    '';
  };
  config = mkIf cfg.enable {
    environment.systemPackages = [ pkgs.extra-container ];
    boot.extraSystemdUnitPaths = [ "/etc/systemd-mutable/system" ];
  };
}
+37 −0
Original line number Diff line number Diff line
{ stdenv, lib, nixos-container, openssh, glibcLocales, fetchFromGitHub }:

stdenv.mkDerivation rec {
  pname = "extra-container";
  version = "0.8";

  src = fetchFromGitHub {
    owner = "erikarvstedt";
    repo = pname;
    rev = version;
    hash = "sha256-/AetqDPkz32JMdjbSdzZCBVmGbvzjeAb8Wv82iTgHFE=";
  };

  buildCommand = ''
    install -D $src/extra-container $out/bin/extra-container
    patchShebangs $out/bin
    share=$out/share/extra-container
    install $src/eval-config.nix -Dt $share

    # Use existing PATH for systemctl and machinectl
    scriptPath="export PATH=${lib.makeBinPath [ nixos-container openssh ]}:\$PATH"

    sed -i \
      -e "s|evalConfig=.*|evalConfig=$share/eval-config.nix|" \
      -e "s|LOCALE_ARCHIVE=.*|LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive|" \
      -e "2i$scriptPath" \
      $out/bin/extra-container
  '';

  meta = with lib; {
    description = "Run declarative containers without full system rebuilds";
    homepage = https://github.com/erikarvstedt/extra-container;
    license = licenses.mit;
    platforms = platforms.linux;
    maintainers = [ maintainers.earvstedt ];
  };
}
+2 −0
Original line number Diff line number Diff line
@@ -31942,6 +31942,8 @@ with pkgs;
  nixos-rebuild = callPackage ../os-specific/linux/nixos-rebuild { };
  extra-container = callPackage ../tools/virtualization/extra-container { };
  norwester-font = callPackage ../data/fonts/norwester  {};
  nut = callPackage ../applications/misc/nut { };