]> TLD Linux GIT Repositories - packages/dracut.git/blob - crypttab-keyscript.patch
- updated to 059
[packages/dracut.git] / crypttab-keyscript.patch
1 diff -urpa dracut-048.orig/modules.d/90crypt/cryptroot-ask.sh dracut-048/modules.d/90crypt/cryptroot-ask.sh
2 --- dracut-048.orig/modules.d/90crypt/cryptroot-ask.sh  2018-07-06 08:37:51.000000000 +0000
3 +++ dracut-048/modules.d/90crypt/cryptroot-ask.sh       2018-07-21 14:44:47.121435253 +0000
4 @@ -106,6 +106,9 @@ while [ $# -gt 0 ]; do
5          header=*)
6              cryptsetupopts="${cryptsetupopts} --${1}"
7              ;;
8 +        keyscript=*)
9 +            keyscript=${1##keyscript=}
10 +            ;;
11      esac
12      shift
13  done
14 @@ -163,6 +166,14 @@ else
15      done
16  fi
17  
18 +if [ ! -z "$keyscript" -a -x "$keyscript" ]; then
19 +    info "Executing keyscript $keyscript"
20 +    eval $keyscript
21 +    if [ $? -eq 0 ]; then
22 +        ask_passphrase=0
23 +    fi
24 +fi
25 +
26  if [ $ask_passphrase -ne 0 ]; then
27      luks_open="$(command -v cryptsetup) $cryptsetupopts luksOpen"
28      _timeout=$(getargs "rd.luks.timeout")
29 diff -urpa dracut-048.orig/modules.d/90crypt/module-setup.sh dracut-048/modules.d/90crypt/module-setup.sh
30 --- dracut-048.orig/modules.d/90crypt/module-setup.sh   2018-07-06 08:37:51.000000000 +0000
31 +++ dracut-048/modules.d/90crypt/module-setup.sh        2018-07-21 14:44:47.121435253 +0000
32 @@ -97,10 +97,26 @@ install() {
33                          forceentry="yes"
34                          break
35                          ;;
36 +                    keyscript=*)
37 +                        keyscript=${1##keyscript=}
38 +                        break
39 +                        ;;
40                  esac
41                  shift
42              done
43  
44 +            if [ ! -z "${keyscript}" ]; then
45 +                if [ -x "${keyscript}" ]; then
46 +                    if [ ! -d "${initdir}/etc/keyscripts" ]; then
47 +                        mkdir "${initdir}/etc/keyscripts" 2>/dev/null
48 +                    fi
49 +                    inst_script "${keyscript}" /etc/keyscripts/${keyscript##*/}
50 +                    _luksoptions=${_luksoptions/${keyscript%%=*}/\/etc\/keyscripts\/${keyscript##*/}}
51 +                else
52 +                    dwarning "Missing keyscript referenced in crypttab: ${keyscript}"
53 +                fi
54 +            fi
55 +
56              # include the entry regardless
57              if [ "${forceentry}" = "yes" ]; then
58                  echo "$_mapper $_dev $_luksfile $_luksoptions"