nixos-config/scripts/export.fish

60 lines
1.8 KiB
Fish

#!/usr/bin/env fish
source scripts/shared.fish
logprintn "INFO" "blue" "creating directory $(pwd)/temp"
mkdir -p "temp"
set dircontent $(find "." -type f | grep -v ".git" | grep -v ".temp" | sort -z)
for i in $dircontent
if [ $i != "" ]
logprintn "INFO" "blue" "hashing file $i"
set ihash "$(sha1sum $i)"
echo "$ihash" >> "temp/directorylisthashed.txt"
end
end
if fish_is_root_user
logprintn "EXIT" "red" "running as root is not supported"
exit 0
else
set hash1 "$(cat temp/directorylisthashed.txt)"
set hash2 "$(cat temp/directorylisthashedprevious.txt)"
if [ "$hash1" != "$hash2" ]
set rpass "$(logprinti "root password" "p")"
if [ "$rpass" = "" ]
logprintn "EXIT" "red" "empty root password"
exit 0
end
echo "$rpass" | sudo -S printf ""
set rebuild "$(logprinti "trigger rebuild (Y/n)" "c")"
if [ "$rebuild" = "" ]
set rebuild "y"
end
set rebuild "$(string lower $rebuild)"
if [ "$rebuild" = "y" ]
sudo nixos-rebuild --flake $(pwd) switch
logprintn "INFO" "blue" "nixos-rebuild completed"
end
end
set gitpush "$(logprinti "update git (Y/n)" "c")"
if [ "$gitpush" = "" ]
set gitpush "y"
end
set gitpush "$(string lower $gitpush)"
if [ "$gitpush" = "y" ]
set cmessage "$(logprinti "commit message" "c")"
logprintn "INFO" "blue" "adding changes to git repo"
git add .
logprintn "INFO" "blue" "creating commit with message \"$cmessage\""
git commit -m "$cmessage"
logprintn "INFO" "blue" "pushing to external repository"
git push -q
end
end
cp -rf "temp/directorylisthashed.txt" "temp/directorylisthashedprevious.txt"
rm "temp/directorylisthashed.txt"