#!/bin/bash

if [[ $EUID -ne 0 ]]; then
   echo "Ten skrypt musi być uruchomiony jako root. Użyj 'sudo'."
   exit 1
fi

echo -n "Podaj rozmiar pliku swap w GB: "
read ROZMIAR

if ! [[ "$ROZMIAR" =~ ^[0-9]+$ ]]; then
    echo "Błąd: Proszę podać prawidłową liczbę całkowitą."
    exit 1
fi

ROZMIAR_MB=$((ROZMIAR * 1024))

SWAPFILE="/swapfile"

fallocate -l ${ROZMIAR_MB}M $SWAPFILE
if [[ $? -ne 0 ]]; then
    echo "Błąd podczas tworzenia pliku swap."
    exit 1
fi

echo "Plik swap o rozmiarze ${ROZMIAR}GB został utworzony."

chmod 600 $SWAPFILE

mkswap $SWAPFILE
if [[ $? -ne 0 ]]; then
    echo "Błąd podczas konfigurowania pliku swap."
    exit 1
fi

swapon $SWAPFILE
if [[ $? -ne 0 ]]; then
    echo "Błąd podczas aktywowania pliku swap."
    exit 1
fi

echo "Plik swap został aktywowany."

if ! grep -q "$SWAPFILE" /etc/fstab; then
    echo "$SWAPFILE none swap sw 0 0" >> /etc/fstab
    echo "Plik swap został dodany do /etc/fstab."
else
    echo "Plik swap już istnieje w /etc/fstab."
fi

swapon --show

echo "Skrypt zakończony pomyślnie."
