From 9786eb8672213344d8d1b7bdef12bc94510b20db Mon Sep 17 00:00:00 2001 From: outremonde Date: Tue, 10 Jun 2025 20:32:00 -0400 Subject: initialized repository Former-commit-id: 84647f22b951a957b2b83885b612115d473f6626 --- pkgs/setup-manager/setup.nu | 55 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 pkgs/setup-manager/setup.nu (limited to 'pkgs/setup-manager/setup.nu') diff --git a/pkgs/setup-manager/setup.nu b/pkgs/setup-manager/setup.nu new file mode 100644 index 0000000..46ab637 --- /dev/null +++ b/pkgs/setup-manager/setup.nu @@ -0,0 +1,55 @@ +# Aims of this program: +# +# Subcommands: +# - sync system {system name?}: rebuild system +# - sync user {home name?}: rebuild home +# - sync all {system @ home name?}: rebuild home and system +# - update: update the flake +# - vm {system name}: create and run a test vm +# - repl: open a nix repl with flake inputs +# - gc {what to remove?}: collect garbage + +# Settings +let flake_dir = "~/Sync/setup/" | path expand + +def "main" [] {} + +# +-------------------------+ +# | Syncronization Commands | +# +-------------------------+ + +# Syncronize the system with its config. +def "main sync system" [ + sys?: string # The name of the system config to syncronize. +] { + if ($sys == null) {let sys = (hostname)} + sudo nixos-rebuild switch --flake $"($flake_dir)#($sys)" +} + +# Syncronize the userland with its config. +def "main sync user" [ + usr?: string # The name of the user config to syncronize. +] {} + +# Syncronize both the system and the userland with their configs. +def "main sync all" [ + usr_sys?: string # The name of the user and system configs to syncronize. In the format "user@system". +] {} + +# +----------------+ +# | Other Commands | +# +----------------+ + +# Update the flake lock file according to its inputs. +def "main update" [] {} + +# Create and run a test VM based on a system config. +def "main vm" [ + sys: string # The system config to base the VM on. +] {} + +# Open a nix REPL including flake inputs. +def "main repl" [] {} + +# Garbage collect the system. +def "main gc" [] {} -- cgit v1.2.3