summaryrefslogtreecommitdiff
path: root/pcr/mkinitcpio-openswap/openswap.hook
blob: 9a96ad4b3ced38f9d46c5be2cbed0de473c7e0fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
run_hook ()
{
    ## read openswap configurations
    source /openswap.conf

    ## Optional: To avoid race conditions
    x=0;
    while [ ! -b "$keyfile_device" ] && [ $x -le 10 ]; do
          x=$((x+1))
          sleep .2
    done
    ## End of optional

    if [ -z "$keyfile_device" ] || [ -z "$keyfile_filename" ]
    then
      ## case when no keyfile provided in configurations
      cryptsetup open $cryptsetup_options "$swap_device" "$crypt_swap_name"
    else
      ## case when keyfile is provided in configurations
      mkdir openswap_keymount
      mount $keyfile_device_mount_options "$keyfile_device" openswap_keymount
      cryptsetup open $cryptsetup_options --key-file "openswap_keymount/$keyfile_filename" "$swap_device" "$crypt_swap_name"
      umount openswap_keymount
    fi
}