refactor: Delete unused scripts

This commit is contained in:
Madeleine Sydney
2025-05-06 11:35:47 -06:00
parent c97f569f17
commit f173ab4c0b
25 changed files with 0 additions and 2738 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
src:/home/crumb/.m2/repository/cider/cider-nrepl/0.52.0/cider-nrepl-0.52.0.jar:/home/crumb/.m2/repository/http-kit/http-kit/2.8.0/http-kit-2.8.0.jar:/home/crumb/.m2/repository/nrepl/nrepl/1.3.1/nrepl-1.3.1.jar:/home/crumb/.m2/repository/org/babashka/cli/0.8.62/cli-0.8.62.jar:/home/crumb/.m2/repository/org/clojars/pntblnk/clj-ldap/0.0.17/clj-ldap-0.0.17.jar:/home/crumb/.m2/repository/org/clojure/clojure/1.12.0/clojure-1.12.0.jar:/home/crumb/.m2/repository/cider/orchard/0.30.0/orchard-0.30.0.jar:/home/crumb/.m2/repository/mx/cider/logjam/0.3.0/logjam-0.3.0.jar:/home/crumb/.m2/repository/com/unboundid/unboundid-ldapsdk/5.1.1/unboundid-ldapsdk-5.1.1.jar:/home/crumb/.m2/repository/org/clojure/core.specs.alpha/0.4.74/core.specs.alpha-0.4.74.jar:/home/crumb/.m2/repository/org/clojure/spec.alpha/0.5.238/spec.alpha-0.5.238.jar

View File

@@ -1,4 +0,0 @@
-m
nrepl.cmdline
--middleware
[cider.nrepl/cider-middleware]

View File

@@ -1,19 +0,0 @@
#!/usr/bin/env bash
set -e
if [[ ! -d "/persist/dots/scripts/ldap-nginx-plumber" ]]; then
echo "Cannot find source directory; Did you move it?"
echo "(Looking for "/persist/dots/scripts/ldap-nginx-plumber")"
echo 'Cannot force reload with this script - use "direnv reload" manually and then try again'
exit 1
fi
# rebuild the cache forcefully
_nix_direnv_force_reload=1 direnv exec "/persist/dots/scripts/ldap-nginx-plumber" true
# Update the mtime for .envrc.
# This will cause direnv to reload again - but without re-building.
touch "/persist/dots/scripts/ldap-nginx-plumber/.envrc"
# Also update the timestamp of whatever profile_rc we have.
# This makes sure that we know we are up to date.
touch -r "/persist/dots/scripts/ldap-nginx-plumber/.envrc" "/persist/dots/scripts/ldap-nginx-plumber/.direnv"/*.rc

View File

@@ -1 +0,0 @@
/nix/store/00h3wlz1w78g0lcpmp8fbd7rbsrd3rj4-source

View File

@@ -1 +0,0 @@
/nix/store/01x5k4nlxcpyd85nnr0b9gm89rm8ff4x-source

View File

@@ -1 +0,0 @@
/nix/store/60sn02zhawl3kwn0r515zff3h6hg6ydz-source

View File

@@ -1 +0,0 @@
/nix/store/kdynjy1mbgkdg4p196v9gx6ljpf7q4nk-source

View File

@@ -1 +0,0 @@
/nix/store/mb39v682m1xmknld5igi9jhwcs2hzygi-source

View File

@@ -1 +0,0 @@
/nix/store/ngbb9br4mgjzy8b51a0qdyhlyq9c0mnx-source

View File

@@ -1 +0,0 @@
/nix/store/spa690gs3z1l1zmw4j2jkikva1y6wix4-source

View File

@@ -1 +0,0 @@
/nix/store/vl10fnq09vj8w8mg04wd5v28wgjhzvvm-source

View File

@@ -1 +0,0 @@
/nix/store/wxjsfgkkd93fwqn1g49srpj9gms656wn-source

View File

@@ -1 +0,0 @@
/nix/store/yj1wxm9hh8610iyzqnz75kvs6xl8j3my-source

View File

@@ -1 +0,0 @@
/nix/store/333wlbwbqw13ck7djq0a3wmaik3v9m6l-nix-shell-env

View File

@@ -1 +0,0 @@
use flake

View File

@@ -1,10 +0,0 @@
result
.nrepl
.nrepl-port
.cpcache/
.cache/
.lsp/
.clj-kondo
.cpcache
.lsp
.nrepl

View File

@@ -1,7 +0,0 @@
{:tasks
{:requires ([babashka.process :as p])
update-lockfile
{:doc "Update the clj-nix lockfile"
:task (let [r (p/sh {:out :inherit :err :inherit}
"nix run github:jlesquembre/clj-nix#deps-lock")]
(System/exit (:exit r)))}}}

View File

@@ -1,241 +0,0 @@
{
"lock-version": 4,
"git-deps": [],
"mvn-deps": [
{
"mvn-path": "cider/cider-nrepl/0.50.2/cider-nrepl-0.50.2.jar",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-tbnqZSyOG3J9fd1m4dapUi+nHjtaQJeLV4a/VC5YJPs="
},
{
"mvn-path": "cider/cider-nrepl/0.50.2/cider-nrepl-0.50.2.pom",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-pcCaxUODbWDLN1avACS4514owHqNuz4GSCm6trWVADs="
},
{
"mvn-path": "cider/orchard/0.27.2/orchard-0.27.2.jar",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-Jsgqu5d32ltq8zEWWEA/HJ4fTRedJBxVvbVwHcuNe+E="
},
{
"mvn-path": "cider/orchard/0.27.2/orchard-0.27.2.pom",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-eUGmk2TB2JzLpi2p+Ge//udJO7t/o339YCaPNt7KFek="
},
{
"mvn-path": "com/unboundid/unboundid-ldapsdk/5.1.1/unboundid-ldapsdk-5.1.1.jar",
"mvn-repo": "https://repo1.maven.org/maven2/",
"hash": "sha256-pDQyAxsORZLswWwh04LPvdn5jVAvFn9+/oaXq09Efrk="
},
{
"mvn-path": "com/unboundid/unboundid-ldapsdk/5.1.1/unboundid-ldapsdk-5.1.1.pom",
"mvn-repo": "https://repo1.maven.org/maven2/",
"hash": "sha256-w6xcAY5WK8G4gm92pX0qY7sf0uKzCo8m7dSBPrEvztg="
},
{
"mvn-path": "hiccup/hiccup/2.0.0-RC4/hiccup-2.0.0-RC4.jar",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-VtAuPgpdoRcPVQRru4WiMAs1JBCTCCpD2/4Uma0wuLo="
},
{
"mvn-path": "hiccup/hiccup/2.0.0-RC4/hiccup-2.0.0-RC4.pom",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-ORP6o0LGyU6d1wnqWUpTl+JptPAdFPjBRxHBVXxoZH0="
},
{
"mvn-path": "http-kit/http-kit/2.8.0/http-kit-2.8.0.jar",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-xJbmqG/sRrN0PcOZ7chy4USW2IioTQTByE3qoe0gg60="
},
{
"mvn-path": "http-kit/http-kit/2.8.0/http-kit-2.8.0.pom",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-RLTLjpPU9rJiwE7Qdx1w3WbnbUXX/HVYIGcaYmVcVDk="
},
{
"mvn-path": "mx/cider/logjam/0.3.0/logjam-0.3.0.jar",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-h1moSv+GjTrjwDEil7l6psf7j5NUK39llkv5kT9K4J8="
},
{
"mvn-path": "mx/cider/logjam/0.3.0/logjam-0.3.0.pom",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-k9fFPsmXKX/14Z92LgY8cFtCu8jmbBE/DCbyRWK1D6Q="
},
{
"mvn-path": "nrepl/nrepl/1.1.1/nrepl-1.1.1.jar",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-P2jHLbYCXN4hKfwc7o5aL9/jYCTo6NAfo04tc3SL2gk="
},
{
"mvn-path": "nrepl/nrepl/1.1.1/nrepl-1.1.1.pom",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-KayXZRYA/ZpRur3UBfhjhi29S9Zt2sfQ5+vRQGznYwQ="
},
{
"mvn-path": "org/babashka/cli/0.8.62/cli-0.8.62.jar",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-/Y+i9wLRyvXCgB1D/qnZyZ05p0/jFwe6FYiDyIWlm7E="
},
{
"mvn-path": "org/babashka/cli/0.8.62/cli-0.8.62.pom",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-O3xHZ+YB2KirU9VMGeECp7XEoomB8WI3Qh9YpoeqMxc="
},
{
"mvn-path": "org/clojars/pntblnk/clj-ldap/0.0.17/clj-ldap-0.0.17.jar",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-d+ygGVO56kwcrLssTcym1P3PsFmOq3UlqYgkHL025nI="
},
{
"mvn-path": "org/clojars/pntblnk/clj-ldap/0.0.17/clj-ldap-0.0.17.pom",
"mvn-repo": "https://repo.clojars.org/",
"hash": "sha256-DpL90WPauoqhSf2UH5BFHY2DLo+NtNsWOlToM7LZALw="
},
{
"mvn-path": "org/clojure/clojure/1.10.3/clojure-1.10.3.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-fxJHLa7Y9rUXSYqqKrE6ViR1w+31FHjkWBzHYemJeaM="
},
{
"mvn-path": "org/clojure/clojure/1.10.3/clojure-1.10.3.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-GJwAxDNAdJai+7DsyzeQjJSVXZHq0b5IFWdE7MGBbZQ="
},
{
"mvn-path": "org/clojure/clojure/1.11.0/clojure-1.11.0.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-PiH6daB+yd278bK1A1bPGAcQ0DmN6qT0TpHNYwRVWUc="
},
{
"mvn-path": "org/clojure/clojure/1.11.0/clojure-1.11.0.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-SQjMS0yeYsmoFJb5PLWsb2lBd8xkXc87jOXkkavOHro="
},
{
"mvn-path": "org/clojure/clojure/1.11.1/clojure-1.11.1.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-I4G26UI6tGUVFFWUSQPROlYkPWAGuRlK/Bv0+HEMtN4="
},
{
"mvn-path": "org/clojure/clojure/1.11.1/clojure-1.11.1.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-IMRaGr7b2L4grvk2BQrjGgjBZ0CzL4dAuIOM3pb/y4o="
},
{
"mvn-path": "org/clojure/clojure/1.11.2/clojure-1.11.2.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-iPqZkT1pIs+39kn1xGdQOHfLb8yMwW02948mSAhLqZc="
},
{
"mvn-path": "org/clojure/clojure/1.11.2/clojure-1.11.2.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-FzbP/xCV4dT+/raogrut9ttB7+MV8pbw/aMtt//EExE="
},
{
"mvn-path": "org/clojure/clojure/1.11.3/clojure-1.11.3.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-nDBUCTKOK5boXdK160t1gQxnt2unCuTQ9t3pvPtVsbc="
},
{
"mvn-path": "org/clojure/clojure/1.11.3/clojure-1.11.3.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-DA2+Ge4NKpxXMQzr3dNWRD8NFlFMQmBHsGLjpXwNuK0="
},
{
"mvn-path": "org/clojure/clojure/1.11.4/clojure-1.11.4.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-/H/xtmENDjSUp1zBHvgYEL2kAqwVcBL+TjuJlYbPQTM="
},
{
"mvn-path": "org/clojure/clojure/1.11.4/clojure-1.11.4.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-a6YADmhI+Cw5y5tJqyqmo6Vi9MJNUrMeUZCuZJXwwwk="
},
{
"mvn-path": "org/clojure/clojure/1.12.0/clojure-1.12.0.jar",
"mvn-repo": "https://repo1.maven.org/maven2/",
"hash": "sha256-xFMzAGRBoFnqn9sTQfxsH0C5IaENzNgmZTEeSKA4R2M="
},
{
"mvn-path": "org/clojure/clojure/1.12.0/clojure-1.12.0.pom",
"mvn-repo": "https://repo1.maven.org/maven2/",
"hash": "sha256-KfRiqonLl2RXWEGKXwjUwagrc1yW569JgX0WqpuQgVA="
},
{
"mvn-path": "org/clojure/core.specs.alpha/0.2.56/core.specs.alpha-0.2.56.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-/PRCveArBKhj8vzFjuaiowxM8Mlw99q4VjTwq3ERZrY="
},
{
"mvn-path": "org/clojure/core.specs.alpha/0.2.56/core.specs.alpha-0.2.56.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-AarxdIP/HHSCySoHKV1+e8bjszIt9EsptXONAg/wB0A="
},
{
"mvn-path": "org/clojure/core.specs.alpha/0.2.62/core.specs.alpha-0.2.62.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-Bu6owHC75FwVhWfkQ0OWgbyMRukSNBT4G/oyukLWy8g="
},
{
"mvn-path": "org/clojure/core.specs.alpha/0.2.62/core.specs.alpha-0.2.62.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-F3i70Ti9GFkLgFS+nZGdG+toCfhbduXGKFtn1Ad9MA4="
},
{
"mvn-path": "org/clojure/core.specs.alpha/0.4.74/core.specs.alpha-0.4.74.jar",
"mvn-repo": "https://repo1.maven.org/maven2/",
"hash": "sha256-63OsCM9JuoQMiLpnvu8RM2ylVDM9lAiAjXiUbg/rnds="
},
{
"mvn-path": "org/clojure/core.specs.alpha/0.4.74/core.specs.alpha-0.4.74.pom",
"mvn-repo": "https://repo1.maven.org/maven2/",
"hash": "sha256-M0EOuKpz1S2Vez3G4KZfOZisBiPL2BPZDDPm5onEJCk="
},
{
"mvn-path": "org/clojure/pom.contrib/0.3.0/pom.contrib-0.3.0.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-fxgrOypUPgV0YL+T/8XpzvasUn3xoTdqfZki6+ee8Rk="
},
{
"mvn-path": "org/clojure/pom.contrib/1.1.0/pom.contrib-1.1.0.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-EOzku1+YKQENwWVh9C67g7ry9HYFtR+RBbkvPKoIlxU="
},
{
"mvn-path": "org/clojure/pom.contrib/1.2.0/pom.contrib-1.2.0.pom",
"mvn-repo": "https://repo1.maven.org/maven2/",
"hash": "sha256-CRbXpBVYuVAKQnyIb6KYJ6zlJZIGvjrTPmTilvwaYRE="
},
{
"mvn-path": "org/clojure/spec.alpha/0.2.194/spec.alpha-0.2.194.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-z2iZ+YUpjGSxPqEplGrZAo3uja3w6rmuGORVAn04JJw="
},
{
"mvn-path": "org/clojure/spec.alpha/0.2.194/spec.alpha-0.2.194.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-WhHw4eizwFLmUcSYxpRbRNs1Nb8sGHGf3PZd8fiLE+Y="
},
{
"mvn-path": "org/clojure/spec.alpha/0.3.218/spec.alpha-0.3.218.jar",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-Z+yJjrVcZqlXpVJ53YXRN2u5lL2HZosrDeHrO5foquA="
},
{
"mvn-path": "org/clojure/spec.alpha/0.3.218/spec.alpha-0.3.218.pom",
"mvn-repo": "https://repo.maven.apache.org/maven2/",
"hash": "sha256-bY3hTDrIdXYMX/kJVi/5hzB3AxxquTnxyxOeFp/pB1g="
},
{
"mvn-path": "org/clojure/spec.alpha/0.5.238/spec.alpha-0.5.238.jar",
"mvn-repo": "https://repo1.maven.org/maven2/",
"hash": "sha256-lM2ZtupjlkHzevSGCmQ7btOZ7lqL5dcXz/C2Y8jXUHc="
},
{
"mvn-path": "org/clojure/spec.alpha/0.5.238/spec.alpha-0.5.238.pom",
"mvn-repo": "https://repo1.maven.org/maven2/",
"hash": "sha256-PLp+DcwIXEzpLd3/6iJhJP+sF4vnm9A3m1suMKlpy+o="
}
]
}

View File

@@ -1,13 +0,0 @@
{:deps {org.clojure/clojure {:mvn/version "1.12.0"}
org.babashka/cli {:mvn/version "0.8.62"}
http-kit/http-kit {:mvn/version "2.8.0"}
org.clojars.pntblnk/clj-ldap {:mvn/version "0.0.17"}
hiccup/hiccup {:mvn/version "2.0.0-RC4"}}
:paths ["src"]
:aliases
{:cider
{:extra-deps {cider/cider-nrepl {:mvn/version "0.50.2"}}
:main-opts ["-m" "nrepl.cmdline"
"--middleware" "[cider.nrepl/cider-middleware]"]}
:run
{:main-opts ["-m" "ldap-nginx-plumber.main"]}}}

View File

@@ -1,171 +0,0 @@
{
"nodes": {
"clj-nix": {
"inputs": {
"devshell": "devshell",
"nix-fetcher-data": "nix-fetcher-data",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1738969798,
"narHash": "sha256-yHUAph4easuun343wEEJXC4qsftl9vRy+CqLkORkeKI=",
"owner": "jlesquembre",
"repo": "clj-nix",
"rev": "7b314a06743ef400beb921d3559482741d19bf3f",
"type": "github"
},
"original": {
"owner": "jlesquembre",
"repo": "clj-nix",
"type": "github"
}
},
"devshell": {
"inputs": {
"nixpkgs": [
"clj-nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1728330715,
"narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
"owner": "numtide",
"repo": "devshell",
"rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1719745305,
"narHash": "sha256-xwgjVUpqSviudEkpQnioeez1Uo2wzrsMaJKJClh+Bls=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "c3c5ecc05edc7dafba779c6c1a61cd08ac6583e9",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nix-fetcher-data": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": [
"clj-nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1728229178,
"narHash": "sha256-p5Fx880uBYstIsbaDYN7sECJT11oHxZQKtHgMAVblWA=",
"owner": "jlesquembre",
"repo": "nix-fetcher-data",
"rev": "f3a73c34d28db49ef90fd7872a142bfe93120e55",
"type": "github"
},
"original": {
"owner": "jlesquembre",
"repo": "nix-fetcher-data",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1728492678,
"narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1717284937,
"narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1739866667,
"narHash": "sha256-EO1ygNKZlsAC9avfcwHkKGMsmipUk1Uc0TbrEZpkn64=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "73cf49b8ad837ade2de76f87eb53fc85ed5d4680",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"clj-nix": "clj-nix",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_2"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

View File

@@ -1,47 +0,0 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
clj-nix.url = "github:jlesquembre/clj-nix";
};
outputs = { self, ... }@inputs:
inputs.flake-utils.lib.eachDefaultSystem (system:
let pkgs = import inputs.nixpkgs {
inherit system;
overlays = [
inputs.clj-nix.overlays.default
];
};
in {
packages = rec {
ldap-nginx-plumber = inputs.clj-nix.lib.mkCljApp {
pkgs = inputs.nixpkgs.legacyPackages.${system};
modules = [
{
name = "msyds/ldap-nginx-plumber";
version = "1.0.0";
main-ns = "ldap-nginx-plumber.main";
projectSrc = ./.;
nativeImage = {
# Disable for faster build times.
# enable = true;
};
}
];
};
default = ldap-nginx-plumber;
};
devShells.default = pkgs.mkShell {
packages = with pkgs; [
clojure-lsp
cljfmt
clojure
babashka
];
};
});
}

View File

@@ -1 +0,0 @@
/nix/store/4ir60qbhfgrf1r9xa1dnig13x4clhir0-ldap-nginx-plumber-1.0.0

View File

@@ -1,123 +0,0 @@
(ns ldap-nginx-plumber.main
(:require [clojure.spec.alpha :as spec]
[clojure.string :as str]
[org.httpkit.server :as http]
[clj-ldap.client :as ldap]
[babashka.cli :as cli]
[clojure.pprint :refer [pprint]])
(:import [java.util Base64]
[java.nio.charset StandardCharsets])
(:gen-class))
(defn- port? [x]
(and (nat-int? x)
(<= 0 x 65535)))
(def cli-spec
{:spec
{:port {:coerce :int
:desc "Port to listen on"
:alias :p
:validate port?
:require true}
:base-dn {:coerce :string
:desc "Base DN for LDAP searches"
:require true}
:ldap-host {:coerce :string
:require true}
:ldap-port {:coerce :int
:validate port?
:default 389}
:bind-dn {:coerce :string
:require true}
:bind-password {:coerce :string
:require true}}})
(def ^:dynamic *opts*)
(defonce ldap-connection-pool
(atom nil))
(defn- base64->utf8 [base64]
(try (-> (.decode (Base64/getDecoder) base64)
(String. StandardCharsets/UTF_8))
(catch java.lang.IllegalArgumentException _))
nil)
(defn- response [status & {:as more}]
(apply merge
{:status status
:headers {"Content-Type" "text/plain"}}
more))
(defn- consultant-app [req]
(printf "\n%s received request:\n" (.toString (java.util.Date.)))
(pprint req)
(try
(if-let [[_ user pass] (some->> (get-in [req :headers] "Authorization")
str/lower-case
(re-matches #"basic ([a-zA-Z0-9+/=]+)")
second
base64->utf8
(re-matches #"([^:]+):(.*)"))]
(response 200 :body "yay!")
(response
401
:headers {"WWW-Authenticate" "Basic realm=\"Restricted\""
"Cache-Control" "no-cache"}))
(catch Exception e
(println "`consultant-app` threw an error:")
(prn e)
(response 500))))
(defonce consultant-server (atom nil))
(defn- stop-consultant! []
(when @consultant-server
;; Graceful shutdown: wait 100ms for existing requests to be finished.
;; :timeout is optional, when no timeout, stop immediately.
(http/server-stop! @consultant-server {:timeout 100})
(reset! consultant-server nil)))
(defn- start-consultant [& {:keys [port] :as opts}]
(binding [*opts* opts]
(if @consultant-server
(throw (ex-info "Refusing to start the server whilst a previous lingers" {}))
(reset! consultant-server
(http/run-server #'consultant-app
{:port port
:legacy-return-value? false})))))
(defn- connect-to-ldap
[& {:keys [ldap-host ldap-port bind-dn bind-password]}]
(reset! ldap-connection-pool
(or @ldap-connection-pool
(ldap/connect {:host {:address ldap-host
:port ldap-port}
:max-connections 8
:bind-dn bind-dn
:password bind-password}))))
(defn- main* [& opts]
(and (apply connect-to-ldap opts)
(apply start-consultant opts)))
(comment
(let [ask (let [base-dn "dc=identify,dc=deertopia,dc=net"]
(consultant-app {:port 8080 :ldap-host "192.168.68.79" :ldap-port 3890
:base-dn base-dn
:bind-dn (str "uid=nginx-bind-user,ou=people," base-dn)
:bind-password "secret123"}))]
(ask {})))
(comment ; Start on :8080
(let [base-dn "dc=identify,dc=deertopia,dc=net"]
(main* :port 8080 :ldap-host "192.168.68.79" :ldap-port 3890 :base-dn base-dn
:bind-dn (str "uid=nginx-bind-user,ou=people," base-dn)
:bind-password "secret123")))
(comment ; Shutdown
(stop-consultant!))
(defn -main [& args]
(main* (cli/parse-opts args cli-spec)))