Переглянути джерело

feat(odin): quick-setup script

Zander Hawke 9 місяців тому
батько
коміт
970771c4e0
3 змінених файлів з 10 додано та 4 видалено
  1. 4 0
      flake.nix
  2. 1 0
      packages/default.nix
  3. 5 4
      packages/quick-setup.nix

+ 4 - 0
flake.nix

@@ -96,5 +96,9 @@
         description = "A template for a devenv environment";
       };
     };
+
+    apps = lib.eachSystem (system: {
+      quick-setup = packages.${system}.quick-setup;
+    });
   };
 }

+ 1 - 0
packages/default.nix

@@ -3,4 +3,5 @@
   hello = pkgs.callPackage ./hello.nix { };
   opencode-nvim = pkgs.callPackage ./opencode-nvim.nix { };
   photo-cli = pkgs.callPackage ./photo-cli.nix { };
+  quick-setup = pkgs.callPackage ./quick-setup.nix { };
 }

+ 5 - 4
packages/quick-setup.nix

@@ -6,16 +6,17 @@
 }:
 
 let
-  core = name: "${lib.getExe coreutils name}";
+  mkdirBin = lib.getExe' coreutils "mkdir";
   gitBin = lib.getExe git;
   nixBin = lib.getExe nix;
 in
 
 writeShellScriptBin "quick-setup" ''
-  ${core "mkdir"} -p ~/workspace/control
-  ${core "cd"} ~/workspace/control
+  set -e
+  ${mkdirBin} -p ~/workspace/control
+  cd ~/workspace/control
   ${gitBin} clone [email protected]:control/home
-  ${core "cd"} home
+  cd home
   ${nixBin} run github:nix-community/home-manager -- \
     switch --flake .#$(whoami)@$(hostname)
 ''