#!/bin/bash
# vtpack deb <version> <maintainer>
# vtpack targz <version>

source $(dirname $BASH_SOURCE)/vtcommon

make_dir(){
    mkdir linux-${kver}
    mkdir -p linux-${kver}/boot
    mkdir -p linux-${kver}/DEBIAN
    mkdir -p linux-${kver}/lib/modules


    cp -r -v /boot/Image-${kver} linux-${kver}/boot/Image-${kver}
    cp -r -v /boot/System.map-${kver} linux-${kver}/boot/System.map-${kver}
    cp -r -v /boot/config-${kver} linux-${kver}/boot/config-${kver}
    cp -r -v /boot/dtb-${kver} linux-${kver}/boot/dtb-${kver}
    cp -r -v /lib/modules/${kver} linux-${kver}/lib/modules/${kver}
}

make_deb(){
    make_dir

    cp -v /usr/share/velvettools/kpack/* "linux-${kver}/DEBIAN/"

    for file in linux-${kver}/DEBIAN/* ;do
        echo "PATCHING $file"

        if [ "$file" != "linux-${kver}/DEBIAN/control" ];then
            echo "making it executable."
            chmod +x $file
        fi

        sed -i "s/VERSION/${kver}/g" $file
        sed -i "s/ARCH/$(dpkg --print-architecture)/g" $file
        sed -i "s/MAINTAINER/$1/g" $file
    done

    echo "this might take a while, please be patient."
    dpkg-deb --root-owner-group --build linux-${kver}

    rm -rf linux-${kver}

    echo "maintainer specified: $1"
}

make_targz(){
    # lol 10+ lines vs oneliner :3
    tar cvzf "${kver}.tar.gz" "/boot/Image-${kver}" "/boot/System.map-${kver}" "/boot/config-${kver}" "/boot/dtb-${kver}" "/lib/modules/${kver}"
}

if [ "$#" == "0" ];then
    echo "Please specify what you want to build."
    echo "vtpack deb <version> <maintainer>"
    echo "vtpack targz <version>"
fi

get_kver "$2"

if [ "$1" == "deb" ];then 
    echo "Creating a deb"
    if [ "$3" != "" ];then
        make_deb "$3"
    else
        make_deb "$(logname)"
    fi

    arch=$(dpkg --print-architecture)

    mv linux-${kver}.deb linux-${kver}-1_$arch.deb -v
fi

if [ "$1" == "targz" ];then 
    echo "Creating a tar.gz"
    make_targz
fi

if [ "$1" == "dir" ];then 
    echo "Creating a dir"
    make_dir
fi
