From f1531fb4f3f8052181964d17891fbb3ce1f918f7 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 27 Oct 2022 00:02:49 +0200 Subject: add disko cli --- disko | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100755 disko (limited to 'disko') diff --git a/disko b/disko new file mode 100755 index 0000000..c5b9d49 --- /dev/null +++ b/disko @@ -0,0 +1,68 @@ +#!/usr/bin/env bash +set -euo pipefail +set -x + +readonly libexec_dir="${0%/*}" + +# mount was chosen as the default mode because it's less destructive +mode=mount +nix_args=() + +showUsage() { + cat <&2 + exit 1 +} + +## Main ## + +while [[ $# -gt 0 ]]; do + case "$1" in + -m | --mode) + mode=$2 + shift + ;; + --argstr | --arg) + nix_args+=("$1" "$2" "$3") + shift + shift + ;; + --help) + showUsage + exit 0 + ;; + *) + if [ -z ${disko_config+x} ] && [ -e $1 ]; then + disko_config=$1 + else + showUsage + fi + ;; + esac + shift +done + +if ! ([[ $mode = "create" ]] || [[ $mode = "mount" ]]); then + abort "mode must be either create or mount" +fi + +script=$(nix-build "${libexec_dir}"/cli.nix \ + --arg diskoFile "$disko_config" \ + --argstr mode "$mode" \ + "${nix_args[@]}" +) +exec "$script" -- cgit v1.2.3