#!/bin/bash

# Use $1 to enable or disable

if [ "$1" = "enable" ]; then

    # Enable in mkinitramfs
    if ! grep -q "resume" <<< "$(grep -o 'HOOKS=".*"' /etc/mkinitcpio.conf)"; then
        sed -Ei 's/HOOKS=\((.*)\)/HOOKS=(\1 resume)/' /etc/mkinitcpio.conf
        mkinitcpio -P
    fi

    # Disable swap size verify before start systemd hibernate, because genarate swapfile after this verification
    # Before really hibernate have another verification
    mkdir -p /etc/systemd/system/systemd-logind.service.d/
    mkdir -p /etc/systemd/system/systemd-hibernate.service.d/
    echo '[Service]
Environment=SYSTEMD_BYPASS_HIBERNATION_MEMORY_CHECK=1' > /etc/systemd/system/systemd-logind.service.d/override.conf
    echo '[Service]
Environment=SYSTEMD_BYPASS_HIBERNATION_MEMORY_CHECK=1' > /etc/systemd/system/systemd-hibernate.service.d/override.conf

    # Enable services
    # Create file and hibernate
    systemctl enable make-swapfile-to-hibernate.service
    
    # Remove file after back from hibernate
    systemctl enable remove-swapfile-to-hibernate.service
    
elif [ "$1" = "disable" ]; then

    rm -f /etc/systemd/system/systemd-logind.service.d/override.conf
    rm -f /etc/systemd/system/systemd-hibernate.service.d/override.conf

    systemctl disable make-swapfile-to-hibernate.service
    systemctl disable remove-swapfile-to-hibernate.service
else

    echo "Use swapfile_to_hibernate enable or disable"
fi
