diff --git a/os/dev/default.nix b/os/dev/default.nix index 690adf1..de80256 100644 --- a/os/dev/default.nix +++ b/os/dev/default.nix @@ -2,7 +2,39 @@ config, pkgs, ... -}: { +}: let + wantgunsbin_script = pkgs.writeShellScriptBin "pst" '' + #!/usr/bin/env bash + + URL="https://pastebin.dessa.dev" + + FILEPATH="$1" + FILENAME=$(basename -- "$FILEPATH") + EXTENSION="''${FILENAME##*.}" + + if [ ! -f $FILEPATH ]; then + # curl the file from the internet, given the id + # future regex for any wantsgunbin link: ^((http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b\/)?[0-9a-zA-Z]{5,}(\..*)?$ + if [[ $FILEPATH =~ ^(https:\/\/pastebin\.dessa\.dev\/)?[0-9a-zA-Z]{5,}(\..*)?$ ]]; then + OUT=$(mktemp) + echo $OUT + curl -sL https://pastebin.dessa.dev/$FILEPATH > $OUT + exit 0 + else + echo "File not found: $FILEPATH" + exit 1 + fi + fi + + RESPONSE=$(curl --data-binary @''${FILEPATH:-/dev/stdin} --url $URL) + PASTELINK="$URL$RESPONSE" + + [ -z "$EXTENSION" ] && echo $PASTELINK || echo $PASTELINK.$EXTENSION + ''; +in { + programs.zsh.shellAliases = { + pst = "${wantgunsbin_script}/bin/pst"; + }; home.packages = with pkgs.unstable; [ bruno just @@ -14,6 +46,7 @@ corepack cargo-watch rustup + go jetbrains.idea-community vscode