Add functions

This commit is contained in:
albert 2025-03-05 17:09:26 -08:00
parent 78c2c0e2ef
commit ce8e4e3f8b
Signed by: albert
GPG key ID: 3895DD267CA11BA9

View file

@ -0,0 +1,195 @@
{ ... }: {
programs.fish.functions = {
# GPG related functions
encrypt = ''
set output $argv-$(ddate).enc
gpg --encrypt --armor --output $output -r $PGP_KEY_ID "$argv" && echo "Encrypted: $argv -> $output"
'';
decrypt = ''
set output $(echo $argv | rev | cut -c16- | rev)
gpg --decrypt -r $PGP_KEY_ID --output $output $argv && echo "Decrypted: $argv -> $output"
'';
update_secrets = ''
pushd /etc/nixos/git
nix develop -c \
find secrets -name "*.yaml" -exec sops updatekeys {} \;
'';
restart-docker = ''
if [ (hostname) = "nuc-server" ]
pushd /Storage/Data/docker-compose/ifargle.com/
else
pushd /Storage/Data/docker-compose/sysctl.io/
end
docker stop $argv
docker rm $argv
git pull
docker compose up -d $argv
popd
'';
# Deploy-RS script
deploy-rs = ''
pushd /etc/nixos/git/
echo -en "Restarting DERP Relays.... "
echo -en "Osaka"
ssh -qA osaka-linode-01 "sudo systemctl restart podman-derp"
echo -en ", Frankfurt"
ssh -qA frankfurt-linode-01 "sudo systemctl restart podman-derp"
echo -en ", Milan"
ssh -qA milan-linode-01 "sudo systemctl restart podman-derp"
echo -e "... Done"
deploy -s
popd
'';
# Build ISOs/SD Card Images
nixos-build-all-images = ''
echo "Building Linode image..."
nixos-build-linode-img $argv
echo "Building Raspberry Pi image..."
nixos-build-pi-img $argv
echo "Building ISO Console image..."
nixos-build-console $argv
echo "Building ISO Desktop image..."
nixos-build-desktop $argv
ls -lah ~/ | grep nixos
'';
nixos-build-pi-img = ''
pushd /etc/nixos/git
git pull
nix build .#imageConfigurations.nixos-rpi4-img $argv
cp result/sd-image/nixos-sd-image* ~/.
rm -f result
popd
'';
nixos-build-linode-img = ''
pushd /etc/nixos/git
git pull
nix build .#imageConfigurations.nixos-linode-img $argv
cp result/nixos.img.gz ~/nixos-linode-$(ddate)-$(git rev-parse HEAD | cut -b 32-).img.gz
rm -f result
popd
'';
nixos-build-console = ''
pushd /etc/nixos/git
git pull
nix build .#imageConfigurations.nixos-iso-console $argv
cp result/iso/nixos.iso ~/nixos-console-$(ddate)-$(git rev-parse HEAD | cut -b 32-).iso
rm -f result
popd
'';
nixos-build-desktop = ''
pushd /etc/nixos/git
git pull
nix build .#imageConfigurations.nixos-iso-desktop $argv
cp result/iso/nixos.iso ~/nixos-desktop-$(ddate)-$(git rev-parse HEAD | cut -b 32-).iso
rm -f result
popd
'';
# NixOS Related
nix-clean-all = ''
echo -ne "Cleaning up home manager... "
systemctl --user start clean-home-manager.service 2> /dev/null
echo " done"
echo -ne "Optimizing the nix store... "
sudo nix-store --optimize 2> /dev/null
echo " done"
echo -ne "nix-store: Collecting Garbage..."
sudo nix-store --gc 2> /dev/null
echo " done"
echo -ne "Collecting garbage... "
sudo nix-collect-garbage -d 2> /dev/null
echo " done"
'';
# BTRFS Related
clean-boot-snapshots = ''
echo -en "Deleting boot snapshots...."
for i in $(sudo snapper -c root list | grep boot | awk {'print $1'} | head -n -4);
echo -en " $i,"
sudo snapper -c root delete $i;
end
echo "Remaining snapshots:"
sudo snapper -c root list
echo -e " done."
'';
clean-all-snapshots = ''
set subvolumes $(sudo snapper list-configs --column config | tail -n +3)
set types "timeline" "boot" "btrfs-backup"
set num_timeline "14"
set num_boot "5"
set num_btrfs_backup "5"
for volume in $subvolumes;
echo "Found Volume: $volume";
for type in $types;
set safe_type (string replace -a "-" "_" $type)
set type_num (eval "echo \$num_$safe_type")
echo " Retaining '$type_num' snapshots for volume '$volume' snaphsot type '$type'";
echo -en " Deleting snapshots.... "
set snapshots $(sudo snapper -c $volume list | grep $type | awk {'print $1'} | head -n -$type_num)
for snapshot in $snapshots
echo -en " $snapshot,"
sudo snapper -c $volume delete $snapshot
end
echo -e " done."
end;
echo " Remaining Snapshots in subvolume $volume"
sudo snapper -c $volume list
end
'';
clean-timeline-snapshots = ''
set subvolumes $(sudo snapper list-configs --column config | tail -n +3)
set types "timeline"
set num_timeline "14"
for volume in $subvolumes;
echo "Found Volume: $volume";
for type in $types;
set safe_type (string replace -a "-" "_" $type)
set type_num (eval "echo \$num_$safe_type")
echo " Retaining '$type_num' snapshots for volume '$volume' snaphsot type '$type'";
echo -en " Deleting snapshots.... "
set snapshots $(sudo snapper -c $volume list | grep $type | awk {'print $1'} | head -n -$type_num)
for snapshot in $snapshots
echo -en " $snapshot,"
sudo snapper -c $volume delete $snapshot
end
echo -e " done."
end;
echo " Remaining Snapshots in subvolume $volume"
sudo snapper -c $volume list
end
'';
clean-btrfs-backup-snapshots = ''
set subvolumes $(sudo snapper list-configs --column config | tail -n +3)
set types "btrfs-backup"
set num_btrfs_backup "5"
for volume in $subvolumes;
echo "Found Volume: $volume";
for type in $types;
set safe_type (string replace -a "-" "_" $type)
set type_num (eval "echo \$num_$safe_type")
echo " Retaining '$type_num' snapshots for volume '$volume' snaphsot type '$type'";
echo -en " Deleting snapshots.... "
set snapshots $(sudo snapper -c $volume list | grep $type | awk {'print $1'} | head -n -$type_num)
for snapshot in $snapshots
echo -en " $snapshot,"
sudo snapper -c $volume delete $snapshot
end
echo -e " done."
end;
echo " Remaining Snapshots in subvolume $volume"
sudo snapper -c $volume list
end
'';
};
}