60 lines
1.8 KiB
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"
|
|
|