refactor ctl.sh

This commit is contained in:
2023-07-22 19:08:47 +02:00
parent e01fc0be4c
commit 20fd2b839c
2 changed files with 74 additions and 57 deletions

View File

@@ -9,20 +9,24 @@ Run `ctl.sh` to see the list of commands to manage the system.
```bash ```bash
./ctl.sh ./ctl.sh
~> OS Usage: ctl.sh <command> <subcommand>
os-test Rebuild and test OS without creating a new generation ~> os
os-rebuild Rebuild OS and create new generation
os-upgrade Upgrade channels and rebuild 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 vm Build and run as VM
~> Store ~> store
store-gc Collecting garbage in nix-store gc Collecting garbage in nix-store
store-optimise Optimise nix-store optimise Optimise nix-store
search PACKAGE Search for package search PACKAGE Search for package
~> Shell ~> shell
shell NAME Run a nix-shell from ./shell/ run NAME Run a nix-shell from ./shell/
``` ```

109
ctl.sh
View File

@@ -1,8 +1,26 @@
#!/usr/bin/env bash #!/usr/bin/env bash
## ##
## ~> OS ##Usage: ctl.sh <command> <subcommand>
## ##
## ~> 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 { function info {
clear clear
@@ -11,58 +29,53 @@ function info {
sed -n 's/^##//p' ctl.sh sed -n 's/^##//p' ctl.sh
} }
## os-test Rebuild and test OS without creating a new generation function os {
function os-test { function test {
sudo nixos-rebuild --flake ./os#nixos 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 store {
function os-rebuild { function gc {
echo "Rebuild OS" echo "Collecting garbage"
sudo nixos-rebuild --flake ./os#nixos switch 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 { function shell {
nix-shell ./shell/$1.nix function run {
nix-shell ./shell/$1.nix
}
${@}
} }
${@:-info} ${@:-info}