Merge pull request #81 from nrdxp/flk-up

shell: add `flk up` command
This commit is contained in:
Timothy DeHerrera 2021-01-11 18:01:24 -07:00 committed by GitHub
commit 5558959869
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 7 deletions

2
.gitignore vendored
View file

@ -1,2 +1,4 @@
result result
up
hosts/up-*
.direnv .direnv

View file

@ -104,12 +104,9 @@ for ease of use. Once inside:
# This will setup nix-command and pull in the needed tools # This will setup nix-command and pull in the needed tools
nix-shell # or `direnv allow` if you prefer nix-shell # or `direnv allow` if you prefer
# quick way to setup your fileSystems (assuming they are partioned): # use nixos-generate-config to generate a basic config for your system
sudo mount /dev/<install-drive> /mnt # edit hosts/up-$(hostname).nix to modify.
nixos-generate-config --root /mnt --show-hardware-config > hosts/yourConfig.nix flk up
# Edit your config to add a bootloader
$EDITOR hosts/yourConfig.nix
# The following should work fine for EFI systems. # The following should work fine for EFI systems.
# boot.loader.systemd-boot.enable = true; # boot.loader.systemd-boot.enable = true;
@ -125,6 +122,15 @@ flk install yourConfig # deploys hosts/yourConfig.nix
flk yourConfig switch flk yourConfig switch
``` ```
### Note on `flk up`:
While the `up` sub-command is provided as a convenience to quickly set up and
install a "fresh" NixOS system on current hardware, committing these files is
discouraged.
They are placed in the git staging area automatically because they would be
invisible to the flake otherwise, but it is best to move what you need from
them directly into your hosts file and commit that instead.
## Build an ISO ## Build an ISO
You can make an ISO and customize it by modifying the [niximg](./hosts/niximg.nix) You can make an ISO and customize it by modifying the [niximg](./hosts/niximg.nix)

View file

@ -16,7 +16,17 @@ let
flk = pkgs.writeShellScriptBin "flk" '' flk = pkgs.writeShellScriptBin "flk" ''
if [[ -z "$1" ]]; then if [[ -z "$1" ]]; then
echo "Usage: $(basename "$0") [ iso | install {host} | {host} [switch|boot|test] ]" echo "Usage: $(basename "$0") [ iso | up | install {host} | {host} [switch|boot|test] ]"
elif [[ "$1" == "up" ]]; then
mkdir -p up
hostname=$(hostname)
nixos-generate-config --dir up/$hostname
echo \
"{
imports = [ ../up/$hostname/configuration.nix ];
}" > hosts/up-$hostname.nix
git add -f up/$hostname
git add -f hosts/up-$hostname.nix
elif [[ "$1" == "iso" ]]; then elif [[ "$1" == "iso" ]]; then
nix build $DEVSHELL_ROOT#nixosConfigurations.niximg.${build}.isoImage "${"\${@:2}"}" nix build $DEVSHELL_ROOT#nixosConfigurations.niximg.${build}.isoImage "${"\${@:2}"}"
elif [[ "$1" == "install" ]]; then elif [[ "$1" == "install" ]]; then