diff options
author | Nikolay Amiantov <ab@fmap.me> | 2016-07-07 00:44:02 +0300 |
---|---|---|
committer | Nikolay Amiantov <ab@fmap.me> | 2016-07-12 22:22:29 +0300 |
commit | c69c76ca7efecba24aba555c2a03f933997d1fd5 (patch) | |
tree | 2087977cbda118df62f8055bd5631ed21da79305 /nixos/modules/system/boot/luksroot.nix | |
parent | a2d4235fe13292c7dce2e71963d0ed0f9c204436 (diff) | |
download | nixlib-c69c76ca7efecba24aba555c2a03f933997d1fd5.tar nixlib-c69c76ca7efecba24aba555c2a03f933997d1fd5.tar.gz nixlib-c69c76ca7efecba24aba555c2a03f933997d1fd5.tar.bz2 nixlib-c69c76ca7efecba24aba555c2a03f933997d1fd5.tar.lz nixlib-c69c76ca7efecba24aba555c2a03f933997d1fd5.tar.xz nixlib-c69c76ca7efecba24aba555c2a03f933997d1fd5.tar.zst nixlib-c69c76ca7efecba24aba555c2a03f933997d1fd5.zip |
nixos stage-1: try to quit plymouth if started on failure
Diffstat (limited to 'nixos/modules/system/boot/luksroot.nix')
-rw-r--r-- | nixos/modules/system/boot/luksroot.nix | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix index 8dad09c89207..15881b6d3714 100644 --- a/nixos/modules/system/boot/luksroot.nix +++ b/nixos/modules/system/boot/luksroot.nix @@ -36,7 +36,7 @@ let ${optionalString (header != null) "--header=${header}"} \ ${optionalString (keyFile != null) "--key-file=${keyFile} ${optionalString (keyFileSize != null) "--keyfile-size=${toString keyFileSize}"}"} \ > /.luksopen_args - cryptsetup-askpass + get_password "Enter LUKS Passphrase" cryptsetup-askpass rm /.luksopen_args } @@ -78,9 +78,7 @@ let for try in $(seq 3); do ${optionalString yubikey.twoFactor '' - echo -n "Enter two-factor passphrase: " - read -s k_user - echo + k_user="$(get_password "Enter two-factor passphrase" cat)" ''} if [ ! -z "$k_user" ]; then @@ -463,6 +461,26 @@ in ''} ''; + boot.initrd.preDeviceCommands = '' + get_password() { + local ret + local reply + local tty_stat + + tty_stat="$(stty -g)" + stty -echo + for i in `seq 1 3`; do + echo -n "$1: " + read reply + echo "$reply" | "$2" + if [ "$?" = "0" ]; then + break + fi + done + stty "$tty_stat" + } + ''; + boot.initrd.preLVMCommands = concatStrings (mapAttrsToList openCommand preLVM); boot.initrd.postDeviceCommands = concatStrings (mapAttrsToList openCommand postLVM); |