diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..4eae39b --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1747542820, + "narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "292fa7d4f6519c074f0a50394dbbe69859bb6043", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..adf2c92 --- /dev/null +++ b/flake.nix @@ -0,0 +1,39 @@ +{ + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + }; + + outputs = + { self, nixpkgs }: + let + pkgs = nixpkgs.legacyPackages.x86_64-linux; + in + with pkgs; + { + devShells.x86_64-linux.default = mkShell { + buildInputs = with python312Packages; [ + hy + (buildPythonPackage rec { + pname = "hyrule"; + version = "1.0.0"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-SZyFjXNs6thVWhKbajYelY0DoRYqrcCQcdKMNC5t6Og="; + }; + + propagatedBuildInputs = [ + pip + wheel + hy + ]; + }) + bleach + pyaml + requests + requests_toolbelt + validators + ]; + }; + }; +} diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..979b2c7 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,7 @@ +hy>=1 +hyrule>=1 +bleach>=6.2.0 +pyaml>=25.1.0 +requests>=2.32.3 +requests-toolbelt>=1 +validators>=0.34.0 diff --git a/srv/content/file_io.hy b/srv/content/file_io.hy index d11f4ca..e1a31fd 100644 --- a/srv/content/file_io.hy +++ b/srv/content/file_io.hy @@ -6,27 +6,27 @@ (setv (get hy-env "PATH") (+ (get hy-env "PATH") ":./www/site/scripts")) -(defn execute-bash [data] - (sub r"\$\[(.*?)\]" (fn [sequence] - (. (check-output (.group sequence 1) :shell True :executable "/bin/bash" :env hy-env) (decode) (strip))) +(defn execute-bash [data] + (sub r"\$\[(.*?)\]" (fn [sequence] + (. (check-output (.group sequence 1) :shell True :executable "bash" :env hy-env) (decode) (strip))) data)) (defn parse-html-file [path #** kwargs] (with [f (open path "r")] (setv data (.read f))) - + (for [[k v] (.items kwargs)] (setv data (.replace data f"{"{"}{k}{"}"}" (str v)))) - + (execute-bash data)) (defn send-raw-file [path] (setv [mime-type _] (guess-type path)) - + (when (not mime-type) (setv mime-type "text/plain")) - + (with [f (open path "rb")] (setv data (.read f))) - + (return #({"Content-Type" mime-type "Cache-Control" "max-age=300, stale-while-revalidate=3600"} data))) diff --git a/www/build.sh b/www/build.sh index 2f221d5..915f0f1 100755 --- a/www/build.sh +++ b/www/build.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash mkdir data (cd src; hy build.hy) rm -rf site/html diff --git a/www/src/scripts/execute-bash b/www/src/scripts/execute-bash index 446b3e7..c06484f 100755 --- a/www/src/scripts/execute-bash +++ b/www/src/scripts/execute-bash @@ -8,4 +8,4 @@ (setv env hy-env) (setv (get env "PATH") (+ (get hy-env "PATH") ":./scripts")) -(print (sub r"\$\[(.*?)\]" (fn [sequence] (. (check-output (.group sequence 1) :shell True :executable "/bin/bash" :env env) (decode) (strip))) (with [fp (open (get argv 1) "r")] (.read fp)))) +(print (sub r"\$\[(.*?)\]" (fn [sequence] (. (check-output (.group sequence 1) :shell True :executable "bash" :env env) (decode) (strip))) (with [fp (open (get argv 1) "r")] (.read fp)))) diff --git a/www/src/scripts/img-caption b/www/src/scripts/img-caption index 08d6ab3..7e24fa2 100755 --- a/www/src/scripts/img-caption +++ b/www/src/scripts/img-caption @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash path=$1 caption=$2 diff --git a/www/src/scripts/syntax-hl b/www/src/scripts/syntax-hl index 061056d..2e146b5 100755 --- a/www/src/scripts/syntax-hl +++ b/www/src/scripts/syntax-hl @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash tmpfile=$(mktemp) timeout 0.6s nvim "$1" -c "set nonu | set nornu" -c "autocmd LspAttach * execute 'TOhtml | w! ${tmpfile} | qa!'" >/dev/null || nvim "$1" -c "set nonu | set nornu" -c "TOhtml | w! ${tmpfile} | qa!" >/dev/null