summary refs log tree commit diff
path: root/nixos/modules/virtualisation/containers.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-03-19 10:15:57 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-03-24 12:19:27 +0100
commit0cca0f477f168cee994b2c90d20b713f2bb67d85 (patch)
treec5b90fd890813d8f471d8febb1299283a8fb5de4 /nixos/modules/virtualisation/containers.nix
parent2ace7edb81509189a15a0b8e8d0ee1886be9e725 (diff)
downloadnixlib-0cca0f477f168cee994b2c90d20b713f2bb67d85.tar
nixlib-0cca0f477f168cee994b2c90d20b713f2bb67d85.tar.gz
nixlib-0cca0f477f168cee994b2c90d20b713f2bb67d85.tar.bz2
nixlib-0cca0f477f168cee994b2c90d20b713f2bb67d85.tar.lz
nixlib-0cca0f477f168cee994b2c90d20b713f2bb67d85.tar.xz
nixlib-0cca0f477f168cee994b2c90d20b713f2bb67d85.tar.zst
nixlib-0cca0f477f168cee994b2c90d20b713f2bb67d85.zip
nixos-container-shell -> nixos-container { login | root-shell }
Diffstat (limited to 'nixos/modules/virtualisation/containers.nix')
-rw-r--r--nixos/modules/virtualisation/containers.nix60
1 files changed, 8 insertions, 52 deletions
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix
index cdd9e729dc16..e718398815d2 100644
--- a/nixos/modules/virtualisation/containers.nix
+++ b/nixos/modules/virtualisation/containers.nix
@@ -14,57 +14,13 @@ let
     installPhase = "true";
   };
 
-  nixos-container-shell = pkgs.writeScriptBin "nixos-container-shell"
-    ''
-      #! ${pkgs.bash}/bin/sh -e
-
-      usage() {
-        echo "Usage: $0 <container-name>" >&2
-        echo "       $0 (-r|--root-shell) <container-name>" >&2
-      }
-
-      args="`getopt --options 'r' -l help -- "$@"`"
-      eval "set -- $args"
-      rootShell=
-      while [ $# -gt 0 ]; do
-        case "$1" in
-          (--help) usage; exit 0;;
-          (-r|--root-shell) rootShell=1;;
-          (--) shift; break;;
-          (*) break;;
-        esac
-        shift
-      done
-
-      container="$1"
-      if [ -z "$container" ]; then
-        usage
-        exit 1
-      fi
-      shift
-
-      root="/var/lib/containers/$container"
-      if ! [ -d "$root" ]; then
-        echo "$0: container ‘$container’ does not exist" >&2
-        exit 1
-      fi
-
-      if [ -n "$rootShell" ]; then
-        socket="$root/var/lib/root-shell.socket"
-      else
-        socket="$root/var/lib/login.socket"
-      fi
-      if ! [ -S "$socket" ]; then
-        echo "$0: socket ‘$socket’ does not exist" >&2
-        exit 1
-      fi
-
-      if [ -n "$rootShell" ]; then
-        exec ${pkgs.socat}/bin/socat "unix:$socket" -
-      else
-        exec ${pkgs.socat}/bin/socat "unix:$socket" -,echo=0,raw
-      fi
-    '';
+  nixos-container = pkgs.substituteAll {
+    name = "nixos-container";
+    dir = "bin";
+    isExecutable = true;
+    src = ./nixos-container.sh;
+    inherit (pkgs) bash socat;
+  };
 
 in
 
@@ -299,7 +255,7 @@ in
         ${cfg.localAddress} ${name}.containers
       '') config.containers);
 
-    environment.systemPackages = optional (config.containers != {}) nixos-container-shell;
+    environment.systemPackages = optional (config.containers != {}) nixos-container;
 
   };
 }