diff options
| -rw-r--r-- | krebs/5pkgs/haskell/default.nix | 23 | ||||
| -rw-r--r-- | krebs/5pkgs/simple/dic/default.nix | 4 | ||||
| -rw-r--r-- | shell.nix | 61 | 
3 files changed, 59 insertions, 29 deletions
diff --git a/krebs/5pkgs/haskell/default.nix b/krebs/5pkgs/haskell/default.nix index 1120356a7..64c5f9257 100644 --- a/krebs/5pkgs/haskell/default.nix +++ b/krebs/5pkgs/haskell/default.nix @@ -1,15 +1,20 @@  with import <stockholm/lib>; - +let +  overrides = self: super: +    listToAttrs +      (map +        (name: nameValuePair (removeSuffix ".nix" name) +                             (self.callPackage (./. + "/${name}") {})) +        (filter +          (name: name != "default.nix" && !hasPrefix "." name) +          (attrNames (readDir ./.)))); +in  self: super:  { +  haskell.packages = mapAttrs (_: pkgs: pkgs.override { +    inherit overrides; +  }) super.haskell.packages;    haskellPackages = super.haskellPackages.override { -    overrides = self: super: -      listToAttrs -        (map -          (name: nameValuePair (removeSuffix ".nix" name) -                               (self.callPackage (./. + "/${name}") {})) -          (filter -            (name: name != "default.nix" && !hasPrefix "." name) -            (attrNames (readDir ./.)))); +    inherit overrides;    };  } diff --git a/krebs/5pkgs/simple/dic/default.nix b/krebs/5pkgs/simple/dic/default.nix index 963786f0c..ffd1092f7 100644 --- a/krebs/5pkgs/simple/dic/default.nix +++ b/krebs/5pkgs/simple/dic/default.nix @@ -5,8 +5,8 @@ stdenv.mkDerivation {    src = fetchgit {      url = http://cgit.ni.krebsco.de/dic; -    rev = "refs/tags/v1.0.1"; -    sha256 = "1686mba1z4m7vq70w26qpl00z1cz286c9bya9ql36g6w2pbcs8d3"; +    rev = "refs/tags/v1.0.2"; +    sha256 = "133x2z3dr5synckdvgnyc9fa7jdca43vj0973v148i13x4dqgr36";    };    phases = [ @@ -6,13 +6,18 @@ let    # high level commands    # -  # usage: deploy [--force-populate] [--user=USER] -  #               --system=SYSTEM [--target=TARGET] +  # usage: deploy +  #         [--force-populate] +  #         [--quiet] +  #         --system=SYSTEM +  #         [--target=TARGET] +  #         [--user=USER]    cmds.deploy = pkgs.writeDash "cmds.deploy" ''      set -efu      command=deploy      . ${init.args} +    \test -n "''${quiet-}" || quiet=false      \test -n "''${target-}" || target=$system      \test -n "''${user-}" || user=$LOGNAME      . ${init.env} @@ -21,13 +26,18 @@ let      exec ${utils.deploy}    ''; -  # usage: install [--force-populate] [--user=USER] -  #                --system=SYSTEM --target=TARGET +  # usage: install +  #         [--force-populate] +  #         [--quiet] +  #         --system=SYSTEM +  #         --target=TARGET +  #         [--user=USER]    cmds.install = pkgs.writeBash "cmds.install" ''      set -efu      command=install      . ${init.args} +    \test -n "''${quiet-}" || quiet=false      \test -n "''${user-}" || user=$LOGNAME      . ${init.env} @@ -63,8 +73,12 @@ let      exec nixos-install    ''; -  # usage: test [--force-populate] [--user=USER] -  #             --system=SYSTEM --target=TARGET +  # usage: test +  #         [--force-populate] +  #         [--quiet] +  #         --system=SYSTEM +  #         --target=TARGET +  #         [--user=USER]    cmds.test = pkgs.writeDash "cmds.test" /* sh */ ''      set -efu @@ -72,6 +86,7 @@ let      command=test      . ${init.args} +    \test -n "''${quiet-}" || quiet=false      \test -n "''${user-}" || user=$LOGNAME      . ${init.env}      . ${init.proxy} @@ -144,14 +159,15 @@ let    init.args = pkgs.writeText "init.args" /* sh */ ''      args=$(${pkgs.utillinux}/bin/getopt -n "$command" -s sh \ -        -o s:t:u: \ -        -l force-populate,system:,target:,user: \ +        -o Qs:t:u: \ +        -l force-populate,quiet,system:,target:,user: \          -- "$@")      if \test $? != 0; then exit 1; fi      eval set -- "$args" -    force_populate=false; +    force_populate=false      while :; do case $1 in        --force-populate) force_populate=true; shift;; +      -Q|--quiet) quiet=true; shift;;        -s|--system) system=$2; shift 2;;        -t|--target) target=$2; shift 2;;        -u|--user) user=$2; shift 2;; @@ -162,6 +178,7 @@ let    '';    init.env = pkgs.writeText "init.env" /* sh */ '' +    export quiet      export system      export target      export user @@ -182,7 +199,7 @@ let        source_file=$user/1systems/$system/source.nix        source=$(get-source "$source_file")        qualified_target=$target_user@$target_host:$target_port$target_path -      if test "$force_populate" = true; then +      if \test "$force_populate" = true; then          echo "$source" | populate --force "$qualified_target"        else          echo "$source" | populate "$qualified_target" @@ -195,6 +212,7 @@ let              NIX_PATH=$(quote "$target_path") \              STOCKHOLM_VERSION=$(quote "$STOCKHOLM_VERSION") \              nix-shell --run "$(quote " +              quiet=$(quote "$quiet") \                system=$(quote "$system") \                target=$(quote "$target") \                using_proxy=true \ @@ -206,24 +224,31 @@ let    utils.build = pkgs.writeDash "utils.build" ''      set -efu +    ${utils.with-whatsupnix} \      ${pkgs.nix}/bin/nix-build \ -        -Q \          --no-out-link \          --show-trace \          -E "with import <stockholm>; $1" \          -I "$target_path" \ -      2>&1 | -    ${pkgs.whatsupnix}/bin/whatsupnix    '';    utils.deploy = pkgs.writeDash "utils.deploy" ''      set -efu -    PATH=/run/current-system/sw/bin nixos-rebuild switch \ -        -Q \ +    # Use system's nixos-rebuild, which is not self-contained +    export PATH=/run/current-system/sw/bin +    ${utils.with-whatsupnix} \ +    nixos-rebuild switch \          --show-trace \ -        -I "$target_path" \ -      2>&1 | -    ${pkgs.whatsupnix}/bin/whatsupnix +        -I "$target_path" +  ''; + +  utils.with-whatsupnix = pkgs.writeDash "utils.with-whatsupnix" '' +    set -efu +    if \test "$quiet" = true; then +      "$@" -Q 2>&1 | ${pkgs.whatsupnix}/bin/whatsupnix +    else +      exec "$@" +    fi    '';    shell.get-version = pkgs.writeDash "shell.get-version" ''  | 
