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
./ctl.sh
~> OS
Usage: ctl.sh <command> <subcommand>
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/
```

109
ctl.sh
View File

@@ -1,8 +1,26 @@
#!/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 {
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}