Compare commits
2 commits
5f017e6a4e
...
2d2bdcf955
Author | SHA1 | Date | |
---|---|---|---|
|
2d2bdcf955 | ||
|
5d0c0b9757 |
72
common/puter/puter.bash
Normal file
72
common/puter/puter.bash
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
progname=$0
|
||||||
|
|
||||||
|
error() {
|
||||||
|
for line in "$@"; do
|
||||||
|
printf '%s\n' "$progname: $line" 1>&2
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
args=$(getopt --options f --longoptions=flake: --name "$progname" -- "$@")
|
||||||
|
|
||||||
|
eval set -- "$args"
|
||||||
|
|
||||||
|
flake=git+https://forgejo@tea.wrz.one/lukas/puter.git#$(hostname)
|
||||||
|
flags=(
|
||||||
|
--refresh
|
||||||
|
--use-remote-sudo
|
||||||
|
--no-write-lock-file
|
||||||
|
)
|
||||||
|
while true; do
|
||||||
|
case $1 in
|
||||||
|
(-f | --flake)
|
||||||
|
flake=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
(-v | --verbose)
|
||||||
|
flags+=(--verbose)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
(--)
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if (( $# == 0 )); then
|
||||||
|
error 'a subcommand is required'
|
||||||
|
fi
|
||||||
|
|
||||||
|
subcommand=$1
|
||||||
|
|
||||||
|
case $subcommand in
|
||||||
|
(s | switch)
|
||||||
|
shift
|
||||||
|
|
||||||
|
if (( $# > 0 )); then
|
||||||
|
error 'too many arguments'
|
||||||
|
fi
|
||||||
|
|
||||||
|
nixos-rebuild switch "${flags[@]}" --flake "$flake"
|
||||||
|
;;
|
||||||
|
(b | boot)
|
||||||
|
shift
|
||||||
|
|
||||||
|
if (( $# > 0 )); then
|
||||||
|
error 'too many arguments'
|
||||||
|
fi
|
||||||
|
|
||||||
|
nixos-rebuild boot "${flags[@]}" --flake "$flake"
|
||||||
|
;;
|
||||||
|
(*)
|
||||||
|
error 'invalid subcommand'
|
||||||
|
;;
|
||||||
|
esac
|
13
common/puter/puter.nix
Normal file
13
common/puter/puter.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{pkgs, ...}: let
|
||||||
|
puter = pkgs.writeShellScriptBin {
|
||||||
|
name = "puter";
|
||||||
|
runtimeInputs = [
|
||||||
|
pkgs.nixos-rebuild
|
||||||
|
];
|
||||||
|
text = builtins.readFile ./puter.bash;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
environment.systemPackages = [
|
||||||
|
puter
|
||||||
|
];
|
||||||
|
}
|
24
flake.lock
24
flake.lock
|
@ -405,11 +405,11 @@
|
||||||
},
|
},
|
||||||
"hardware": {
|
"hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734954597,
|
"lastModified": 1735388221,
|
||||||
"narHash": "sha256-QIhd8/0x30gEv8XEE1iAnrdMlKuQ0EzthfDR7Hwl+fk=",
|
"narHash": "sha256-e5IOgjQf0SZcFCEV/gMGrsI0gCJyqOKShBQU0iiM3Kg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "def1d472c832d77885f174089b0d34854b007198",
|
"rev": "7c674c6734f61157e321db595dbfcd8523e04e19",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -570,11 +570,11 @@
|
||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735263434,
|
"lastModified": 1735362320,
|
||||||
"narHash": "sha256-5Bn1c2sWzedpGV+PNfXtoainQ3uUKkx/v7T3N6lKKms=",
|
"narHash": "sha256-nNPTwaTLwMFX4Y0ugxwubIw2LJ+qt2g2FrwBVjRr1zI=",
|
||||||
"owner": "lilyinstarlight",
|
"owner": "lilyinstarlight",
|
||||||
"repo": "nixos-cosmic",
|
"repo": "nixos-cosmic",
|
||||||
"rev": "e5fdfe023742172ec0e7af0ca6d88362228d14b7",
|
"rev": "7da43ac24467b538ae5f07117709665b189887fd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -753,11 +753,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_9": {
|
"nixpkgs_9": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734649271,
|
"lastModified": 1735291276,
|
||||||
"narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=",
|
"narHash": "sha256-NYVcA06+blsLG6wpAbSPTCyLvxD/92Hy4vlY9WxFI1M=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507",
|
"rev": "634fd46801442d760e09493a794c4f15db2d0cbb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -790,11 +790,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1735180071,
|
"lastModified": 1735266518,
|
||||||
"narHash": "sha256-ceUDFBsLf5Cz3GlhQAdaJsEfi5s1MDjDsO9VvPFoKAE=",
|
"narHash": "sha256-2XkWYGgT+911gOLjgBj+8W8ZJk6P0qHJNz8RfKgT/5o=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "550e1f10be4a504747a7894c35e887e61235763b",
|
"rev": "e0b3654b716098b47f3643c65fbb75ef49c033e1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
Loading…
Reference in a new issue