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
}
