diff --git a/README.md b/README.md index 47f4a3c..b95c234 100644 --- a/README.md +++ b/README.md @@ -9,20 +9,24 @@ Run `ctl.sh` to see the list of commands to manage the system. ```bash ./ctl.sh - ~> OS +Usage: ctl.sh - os-test Rebuild and test OS without creating a new generation - os-rebuild Rebuild OS and create new generation - os-upgrade Upgrade channels and rebuild OS + ~> os + + test Rebuild and test OS without new generation + rebuild Rebuild OS and create new generation + upgrade Upgrade channels and rebuild OS + changes Show changes between generations + gc Garbage collect old generations vm Build and run as VM - ~> Store + ~> store - store-gc Collecting garbage in nix-store - store-optimise Optimise nix-store + gc Collecting garbage in nix-store + optimise Optimise nix-store search PACKAGE Search for package - ~> Shell + ~> shell - shell NAME Run a nix-shell from ./shell/ + run NAME Run a nix-shell from ./shell/ ``` diff --git a/ctl.sh b/ctl.sh index af060a2..59b52fe 100755 --- a/ctl.sh +++ b/ctl.sh @@ -1,8 +1,26 @@ #!/usr/bin/env bash ## -## ~> OS +##Usage: ctl.sh ## +## ~> os +## +## test Rebuild and test OS without new generation +## rebuild Rebuild OS and create new generation +## upgrade Upgrade channels and rebuild OS +## changes Show changes between generations +## gc Garbage collect old generations +## vm Build and run as VM +## +## ~> store +## +## gc Collecting garbage in nix-store +## optimise Optimise nix-store +## search PACKAGE Search for package +## +## ~> shell +## +## run NAME Run a nix-shell from ./shell/ function info { clear @@ -11,58 +29,53 @@ function info { sed -n 's/^##//p' ctl.sh } -## os-test Rebuild and test OS without creating a new generation -function os-test { - sudo nixos-rebuild --flake ./os#nixos test +function os { + function test { + sudo nixos-rebuild --flake ./os#nixos test + } + function rebuild { + echo "Rebuild OS" + sudo nixos-rebuild --flake ./os#nixos switch + } + function upgrade { + echo "Upgrade channels and rebuild OS" + sudo nixos-rebuild --upgrade --flake ./os#nixos switch + } + function changes { + nix profile diff-closures --profile /nix/var/nix/profiles/system + } + function gc { + sudo nix-collect-garbage -d + sudo nixos-rebuild switch + } + function vm { + echo "Build and run configuration as VM" + rm *.qcow2 + nixos-rebuild build-vm --flake ./os#nixos && result/bin/run-*-vm + } + ${@} } -## os-rebuild Rebuild OS and create new generation -function os-rebuild { - echo "Rebuild OS" - sudo nixos-rebuild --flake ./os#nixos switch +function store { + function gc { + echo "Collecting garbage" + nix-store --gc --print-roots | egrep -v "^(/nix/var|/run/\w+-system|\{memory|/proc)" + } + function optimise { + echo "Optimizing nix-store. This may take a moment..." + nix-store --optimise + } + function search { + nix search nixpkgs $1 + } + ${@} } -## os-upgrade Upgrade channels and rebuild OS -function os-upgrade { - echo "Upgrade channels and rebuild OS" - sudo nixos-rebuild --upgrade --flake ./os#nixos switch -} - -## vm Build and run as VM -function vm { - echo "Build and run configuration as VM" - rm *.qcow2 - nixos-rebuild build-vm --flake ./os#nixos && result/bin/run-*-vm -} - -## -## ~> Store -## - -## store-gc Collecting garbage in nix-store -function store-gc { - echo "Collecting garbage" - nix-store --gc --print-roots | egrep -v "^(/nix/var|/run/\w+-system|\{memory|/proc)" -} - -## store-optimise Optimise nix-store -function store-optimise { - echo "Optimizing nix-store. This may take a moment..." - nix-store --optimise -} - -## search PACKAGE Search for package -function search { - nix search nixpkgs $1 -} - -## -## ~> Shell -## - -## shell NAME Run a nix-shell from ./shell/ function shell { - nix-shell ./shell/$1.nix + function run { + nix-shell ./shell/$1.nix + } + ${@} } ${@:-info}