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

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}