Commit f66d72b1128c

Vincent Demeester <vincent@sbr.pm>
2022-08-23 13:47:52
flake: migrate "all" shells to flakes…
… even the src/{tektoncd,osp} ones Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent a4723e3
shells/default.nix
@@ -0,0 +1,2 @@
+import ./nixos-config.nix
+
shells/nixos-config.nix
@@ -0,0 +1,25 @@
+{ pkgs, inputs }:
+let
+  inherit (inputs.sops-nix.packages."x86_64-linux") sops-import-keys-hook;
+in
+pkgs.mkShell
+{
+  name = "NixOS config";
+  sopsPGPKeyDirs = [ "./secrets/keys" ];
+  nativeBuildInputs = [
+    inputs.sops-nix.packages."x86_64-linux".sops-import-keys-hook
+  ];
+  buildInputs = with pkgs; [
+    cachix
+    git
+    nixpkgs-fmt
+    sops
+    yq-go
+  ];
+  shellHook = ''
+    test -f .secrets && source .secrets || echo "no secrets"
+    export QEMU_OPTS="-m 8096 -cpu host"
+    export PATH="${builtins.toString ./.}/bin:$PATH"
+    export REPO_ROOT="${builtins.toString ./.}"
+  '';
+}
shells/osp.nix
@@ -0,0 +1,31 @@
+{ pkgs, ... }:
+let
+  go = pkgs.go_1_18;
+in
+pkgs.mkShell {
+  name = "osp";
+  buildInputs = with pkgs; [
+    curl
+    docker-client
+    gawk
+    git-crypt
+    gnumake
+    gron
+    jq
+    kustomize
+    my.oc
+    my.operator-sdk
+    my.tkn
+    python39Packages.pyaml
+    skopeo
+    yq-go
+    go
+  ];
+  shellHook = ''
+    export GOMODULE=on
+    export GOFLAGS="-mod=vendor"
+    export GOROOT=${go}/share/go
+    export GOMAXPROCS=8
+    export KUSTOMIZE_BIN=${pkgs.kustomize}/bin/kustomize
+  '';
+}
shells/tekton.nix
@@ -0,0 +1,24 @@
+{ pkgs, ... }:
+let
+  go = pkgs.go_1_18;
+in
+pkgs.mkShell {
+  name = "tektoncd";
+  buildInputs = with pkgs; [
+    go
+    ko
+    my.oc
+    my.tkn
+    google-cloud-sdk
+    gron
+  ];
+  shellHook = ''
+    export GOMODULE=on
+    export GOFLAGS="-mod=vendor"
+    export GOROOT=${go}/share/go
+    export GOMAXPROCS=8
+    export KUSTOMIZE_BIN=${pkgs.kustomize}/bin/kustomize
+    export KO_BIN=${pkgs.ko}/bin/ko
+    export KO_DOCKER_REPO=gcr.io/vde-tekton
+  '';
+}
users/vincent/dev/src/osp.shell.nix
@@ -1,34 +1,6 @@
-let
-  sources = import /etc/nixos/nix;
-  # pkgs = sources.nixpkgs { };
-  pkgs = sources.pkgs-unstable { };
-  my = import /etc/nixos/nix/packages { pkgs = pkgs; };
-  go = pkgs.go_1_16;
-in
-pkgs.mkShell {
-  name = "osp";
-  buildInputs = with pkgs; [
-    curl
-    docker-client
-    gawk
-    git-crypt
-    gnumake
-    gron
-    jq
-    kustomize
-    my.oc
-    my.operator-sdk
-    my.tkn
-    python39Packages.pyaml
-    skopeo
-    yq-go
-    go
-  ];
-  shellHook = ''
-    export GOMODULE=on
-    export GOFLAGS="-mod=vendor"
-    export GOROOT=${go}/share/go
-    export GOMAXPROCS=8
-    export KUSTOMIZE_BIN=${pkgs.kustomize}/bin/kustomize
-  '';
-}
+{ system ? builtins.currentSystem }:
+
+# Use flake.nix devshell, similar to "nix develop"
+(builtins.getFlake (toString /home/vincent/src/home)).devShells.${system}.osp
+
+
users/vincent/dev/src/tektoncd.shell.nix
@@ -1,27 +1,6 @@
-let
-  sources = import /etc/nixos/nix;
-  # pkgs = sources.nixpkgs { };
-  pkgs = sources.pkgs-unstable { };
-  my = import /etc/nixos/nix/packages { pkgs = pkgs; };
-  go = pkgs.go_1_18;
-in
-pkgs.mkShell {
-  name = "tektoncd";
-  buildInputs = with pkgs; [
-    go
-    my.ko
-    my.oc
-    my.tkn
-    google-cloud-sdk
-    gron
-  ];
-  shellHook = ''
-    export GOMODULE=on
-    export GOFLAGS="-mod=vendor"
-    export GOROOT=${go}/share/go
-    export GOMAXPROCS=8
-    export KUSTOMIZE_BIN=${pkgs.kustomize}/bin/kustomize
-    export KO_BIN=${my.ko}/bin/ko
-    export KO_DOCKER_REPO=gcr.io/vde-tekton
-  '';
-}
+{ system ? builtins.currentSystem }:
+
+# Use flake.nix devshell, similar to "nix develop"
+(builtins.getFlake (toString ./.)).devShell.${system}.tekton
+
+
.envrc
@@ -1,2 +1,3 @@
-use flake
-test -f .secrets && source .secrets || echo "no secrets"
+# use flake
+# test -f .secrets && source .secrets || echo "no secrets"
+eval "$(lorri direnv)"
flake.nix
@@ -64,6 +64,7 @@
     , envfs
     , nixos-wsl
     , nixos-hardware
+    , devshell
     , ...
     } @ inputs:
     let
@@ -112,6 +113,7 @@
         (import ./nix/overlays/sbr.nix)
         emacs-overlay.overlay
         nur.overlay
+        devshell.overlay
       ];
 
       hostDefaults = {
@@ -122,6 +124,7 @@
           inherit self;
         };
         modules = with nixosModules; [
+          { nix.generateRegistryFromInputs = true; }
           # Exported modules
           buildkit
           # Common modules
@@ -234,6 +237,7 @@
 
       outputsBuilder = channels:
         let
+          pkgs = channels.nixpkgs;
         in
         {
           overlays.default = import ./nix/overlays;
@@ -255,22 +259,50 @@
           };
 
           # `nix develop`
-          devShell =
+          # devShells = forEachSystem (system:
+          #   let
+          #     pkgs = pkgsBySystem."${system}";
+          #   in
+          #   {
+          #     cargo = import ./nix/shells/cargo.nix { inherit pkgs; };
+          #     generic-nightly-rust = import ./nix/shells/generic-nightly-rust.nix { inherit pkgs; };
+          #     llvm-clang = import ./nix/shells/llvm-clang.nix { inherit pkgs; };
+          #     rustc = import ./nix/shells/rustc.nix { inherit pkgs; };
+          #     rustc-perf = import ./nix/shells/rustc-perf.nix { inherit pkgs; };
+          #     zulip = import ./nix/shells/zulip.nix { inherit pkgs; };
+          #   }
+          # );
+          devShells =
             let
-              inherit (sops-nix.packages."x86_64-linux") sops-import-keys-hook;
+              ls = builtins.readDir ./shells;
+              files = builtins.filter (name: ls.${name} == "regular") (builtins.attrNames ls);
+              shellNames = builtins.map (filename: builtins.head (builtins.split "\\." filename)) files;
+              nameToValue = name: import (./shells + "/${name}.nix") { inherit pkgs inputs; };
             in
-            with channels.nixpkgs; mkShell {
-              sopsPGPKeyDirs = [ "./secrets/keys" ];
-              nativeBuildInputs = [
-                sops-import-keys-hook
-              ];
-              buildInputs = with pkgs; [
-                cachix
-                git
-                nixpkgs-fmt
-                sops
-              ];
-            };
+            builtins.listToAttrs (builtins.map (name: { inherit name; value = nameToValue name; }) shellNames);
+          # devShell =
+          #   let
+          #     inherit (sops-nix.packages."x86_64-linux") sops-import-keys-hook;
+          #   in
+          #   with channels.nixpkgs; mkShell {
+          #     sopsPGPKeyDirs = [ "./secrets/keys" ];
+          #     nativeBuildInputs = [
+          #       sops-import-keys-hook
+          #     ];
+          #     buildInputs = with pkgs; [
+          #       cachix
+          #       git
+          #       nixpkgs-fmt
+          #       sops
+          #       yq-go
+          #     ];
+          #     shellHook = ''
+          #       test -f .secrets && source .secrets || echo "no secrets"
+          #       export QEMU_OPTS="-m 8096 -cpu host"
+          #       export PATH="${builtins.toString ./.}/bin:$PATH"
+          #       export REPO_ROOT="${builtins.toString ./.}"
+          #     '';
+          #   };
         };
     };
 }
shell.nix
@@ -1,32 +1,5 @@
-let
-  sources = import ./nix;
-  pkgs = sources.nixpkgs { };
-  nixos-unstable = sources.pkgs-unstable { };
-  nixos = sources.pkgs { };
-  sops-nix = sources.sops-nix;
-in
-pkgs.mkShell
-{
-  name = "nix-config";
-  sopsPGPKeyDirs = [
-    "./secrets/keys"
-  ];
-  nativeBuildInputs = [
-    (pkgs.callPackage sops-nix { }).sops-import-keys-hook
-  ];
-  buildInputs = with pkgs; [
-    cachix
-    morph
-    niv
-    nixpkgs-fmt
-    sops
-    yq-go
-  ];
-  shellHook = ''
-    export NIX_PATH="nixpkgs=${pkgs.path}:nixos=${nixos.path}:nixos-unstable=${nixos-unstable.path}"
-    test -f .secrets && source .secrets || echo "no secrets"
-    export QEMU_OPTS="-m 8096 -cpu host"
-    export PATH="${builtins.toString ./.}/bin:$PATH"
-    export REPO_ROOT="${builtins.toString ./.}"
-  '';
-}
+{ system ? builtins.currentSystem }:
+
+# Use flake.nix devshell, similar to "nix develop"
+(builtins.getFlake (toString ./.)).devShell.${system}
+