diff --git a/README.org b/README.org index c5489fe..1bc2177 100755 --- a/README.org +++ b/README.org @@ -11,7 +11,7 @@ A second try at NixOS, now that I have a better idea of what I'm doing. The effo * Inbox -* Principles +* Conventions ** User configuration @@ -22,8 +22,6 @@ In order of descending preference, user programs should be configured by... 3. ~home.file~ and similar. 4. Mutable symlinks using ~home.file~ and ~mkOutOfStoreSymlink~. -* Conventions - ** Repo structure *** =hosts/= @@ -93,6 +91,10 @@ On boot, ... - =/persist/users/«user»= :: Persistent files belonging to specific users. This differs from the persistent home directories in that files are not necessarily linked anywhere. +* ~sydnix-cli~ + +sydnix-cli is a command-line utility written in Clojure wrapping various sydnix-related scripts. + * Tasks ** Emacs diff --git a/scripts/sydnix/.envrc b/scripts/sydnix-cli/.envrc similarity index 100% rename from scripts/sydnix/.envrc rename to scripts/sydnix-cli/.envrc diff --git a/scripts/sydnix/.gitignore b/scripts/sydnix-cli/.gitignore similarity index 100% rename from scripts/sydnix/.gitignore rename to scripts/sydnix-cli/.gitignore diff --git a/scripts/sydnix/.projectile b/scripts/sydnix-cli/.projectile similarity index 100% rename from scripts/sydnix/.projectile rename to scripts/sydnix-cli/.projectile diff --git a/scripts/sydnix/deps-lock.json b/scripts/sydnix-cli/deps-lock.json similarity index 100% rename from scripts/sydnix/deps-lock.json rename to scripts/sydnix-cli/deps-lock.json diff --git a/scripts/sydnix/deps.edn b/scripts/sydnix-cli/deps.edn similarity index 94% rename from scripts/sydnix/deps.edn rename to scripts/sydnix-cli/deps.edn index 6bbf069..be03806 100644 --- a/scripts/sydnix/deps.edn +++ b/scripts/sydnix-cli/deps.edn @@ -18,4 +18,4 @@ :main-opts ["-m" "nrepl.cmdline" "--socket" ".nrepl/socket"]} :run - {:main-opts ["-m" "sydnix.main"]}}} + {:main-opts ["-m" "sydnix-cli.main"]}}} diff --git a/scripts/sydnix/flake.lock b/scripts/sydnix-cli/flake.lock similarity index 100% rename from scripts/sydnix/flake.lock rename to scripts/sydnix-cli/flake.lock diff --git a/scripts/sydnix/flake.nix b/scripts/sydnix-cli/flake.nix similarity index 53% rename from scripts/sydnix/flake.nix rename to scripts/sydnix-cli/flake.nix index a53ebb3..5bfc07c 100644 --- a/scripts/sydnix/flake.nix +++ b/scripts/sydnix-cli/flake.nix @@ -18,38 +18,32 @@ ]; }; - sydnix = pkgs.mkCljBin { - name = "msyds/sydnix"; - main-ns = "sydnix.main"; - projectSrc = ./.; + sydnix-cli-unwrapped = clj-nix.lib.mkCljApp { + pkgs = nixpkgs.legacyPackages.${system}; + modules = [ + { + name = "msyds/sydnix-cli"; + version = "1.0"; + main-ns = "sydnix-cli.main"; + projectSrc = ./.; - buildInputs = with pkgs; [ - asciidoctor + nativeImage = { + enable = true; + }; + # customJdk.enable = true; + } ]; - nativeBuildInputs = with pkgs; [ - makeWrapper - ]; - postInstall = '' - wrapProgram $out/bin/sydnix \ - --set ADOC_PROCESSOR "${pkgs.asciidoctor}/bin/asciidoctor" - ''; }; in { - packages.default = clj-nix.lib.mkCljApp { - pkgs = nixpkgs.legacyPackages.${system}; - modules = [ - { - name = "msyds/sydnix"; - version = "1.0"; - main-ns = "sydnix.main"; - projectSrc = ./.; - - nativeImage = { - enable = true; - }; - # customJdk.enable = true; - } - ]; + packages.default = pkgs.symlinkJoin { + name = "sydnix-cli"; + version = "0.0.0"; + paths = [ sydnix-cli-unwrapped ]; + nativeBuildInputs = [ pkgs.makeWrapper ]; + postInstall = '' + wrapProgram $out/bin/sydnix \ + --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.asciidoctor ]} + ''; }; devShells.default = pkgs.mkShell { diff --git a/scripts/sydnix/src/asciidoc/render.clj b/scripts/sydnix-cli/src/asciidoc/render.clj similarity index 100% rename from scripts/sydnix/src/asciidoc/render.clj rename to scripts/sydnix-cli/src/asciidoc/render.clj diff --git a/scripts/sydnix/src/asciidoc/types.clj b/scripts/sydnix-cli/src/asciidoc/types.clj similarity index 100% rename from scripts/sydnix/src/asciidoc/types.clj rename to scripts/sydnix-cli/src/asciidoc/types.clj diff --git a/scripts/sydnix/src/sydnix/cli_table.clj b/scripts/sydnix-cli/src/sydnix_cli/cli_table.clj similarity index 52% rename from scripts/sydnix/src/sydnix/cli_table.clj rename to scripts/sydnix-cli/src/sydnix_cli/cli_table.clj index f9beaec..170a19a 100644 --- a/scripts/sydnix/src/sydnix/cli_table.clj +++ b/scripts/sydnix-cli/src/sydnix_cli/cli_table.clj @@ -1,3 +1,3 @@ -(ns sydnix.cli-table) +(ns sydnix-cli.cli-table) (def *cli-table (atom nil)) diff --git a/scripts/sydnix/src/sydnix/commands/deps-lock.json b/scripts/sydnix-cli/src/sydnix_cli/commands/deps-lock.json similarity index 100% rename from scripts/sydnix/src/sydnix/commands/deps-lock.json rename to scripts/sydnix-cli/src/sydnix_cli/commands/deps-lock.json diff --git a/scripts/sydnix/src/sydnix/commands/help.clj b/scripts/sydnix-cli/src/sydnix_cli/commands/help.clj similarity index 80% rename from scripts/sydnix/src/sydnix/commands/help.clj rename to scripts/sydnix-cli/src/sydnix_cli/commands/help.clj index f8a6860..6ff5286 100644 --- a/scripts/sydnix/src/sydnix/commands/help.clj +++ b/scripts/sydnix-cli/src/sydnix_cli/commands/help.clj @@ -1,8 +1,7 @@ -(ns sydnix.commands.help +(ns sydnix-cli.commands.help (:require [babashka.process :as p] - [sydnix.mangen :as mangen])) - + [sydnix-cli.mangen :as mangen])) (defn adorn-with-help-option [wrapped-command-fn] (fn [{:keys [opts dispatch]}] @@ -26,7 +25,10 @@ (defn- wrap-command-fn [wrapped-fn] (fn [info] (if (:help (:opts info)) - (view-man-for-command (mangen/find-dispatched (:dispatch info))) + (do (mangen/render-docs-for-command + (mangen/find-dispatched (:dispatch info))) + #_ + (view-man-for-command (mangen/find-dispatched (:dispatch info)))) (when-not (nil? wrapped-fn) (wrapped-fn info))))) diff --git a/scripts/sydnix/src/sydnix/commands/rebuild.clj b/scripts/sydnix-cli/src/sydnix_cli/commands/rebuild.clj similarity index 87% rename from scripts/sydnix/src/sydnix/commands/rebuild.clj rename to scripts/sydnix-cli/src/sydnix_cli/commands/rebuild.clj index b12d4a2..12891ec 100644 --- a/scripts/sydnix/src/sydnix/commands/rebuild.clj +++ b/scripts/sydnix-cli/src/sydnix_cli/commands/rebuild.clj @@ -1,7 +1,7 @@ -(ns sydnix.commands.rebuild +(ns sydnix-cli.commands.rebuild (:require [clojure.java.shell :refer [sh]] - [sydnix.commands.help :refer [adorn-with-help-option*]])) + [sydnix-cli.commands.help :refer [adorn-with-help-option*]])) (def command-options-spec {:flake {:coerce :string diff --git a/scripts/sydnix/src/sydnix/commands/status.clj b/scripts/sydnix-cli/src/sydnix_cli/commands/status.clj similarity index 59% rename from scripts/sydnix/src/sydnix/commands/status.clj rename to scripts/sydnix-cli/src/sydnix_cli/commands/status.clj index 7a046f8..d96ac0a 100644 --- a/scripts/sydnix/src/sydnix/commands/status.clj +++ b/scripts/sydnix-cli/src/sydnix_cli/commands/status.clj @@ -1,6 +1,6 @@ -(ns sydnix.commands.status +(ns sydnix-cli.commands.status (:require - [sydnix.commands.help :refer [adorn-with-help-option*]])) + [sydnix-cli.commands.help :refer [adorn-with-help-option*]])) (defn- command-fn [opts] (prn opts)) diff --git a/scripts/sydnix/src/sydnix/commands/util.clj b/scripts/sydnix-cli/src/sydnix_cli/commands/util.clj similarity index 63% rename from scripts/sydnix/src/sydnix/commands/util.clj rename to scripts/sydnix-cli/src/sydnix_cli/commands/util.clj index 5d6a465..bff5eae 100644 --- a/scripts/sydnix/src/sydnix/commands/util.clj +++ b/scripts/sydnix-cli/src/sydnix_cli/commands/util.clj @@ -1,6 +1,6 @@ -(ns sydnix.commands.util +(ns sydnix-cli.commands.util (:require - [sydnix.commands.util.mangen :as cmd-util-mangen])) + [sydnix-cli.commands.util.mangen :as cmd-util-mangen])) (def commands [{:cmds ["util"] diff --git a/scripts/sydnix/src/sydnix/commands/util/mangen.clj b/scripts/sydnix-cli/src/sydnix_cli/commands/util/mangen.clj similarity index 86% rename from scripts/sydnix/src/sydnix/commands/util/mangen.clj rename to scripts/sydnix-cli/src/sydnix_cli/commands/util/mangen.clj index 48b91bb..8baadcf 100644 --- a/scripts/sydnix/src/sydnix/commands/util/mangen.clj +++ b/scripts/sydnix-cli/src/sydnix_cli/commands/util/mangen.clj @@ -1,15 +1,15 @@ -(ns sydnix.commands.util.mangen +(ns sydnix-cli.commands.util.mangen (:require [asciidoc.render] [babashka.fs :as fs] [babashka.process :as p] - [sydnix.mangen :as mangen] [clojure.java.io :as io] [clojure.spec.alpha :as s] [clojure.string :as str] - [sydnix.cli-table :refer [*cli-table]] - [sydnix.commands.help :refer [adorn-with-help-option*]] - [sydnix.prelude :as prelude])) + [sydnix-cli.mangen :as mangen] + [sydnix-cli.cli-table :refer [*cli-table]] + [sydnix-cli.commands.help :refer [adorn-with-help-option*]] + [sydnix-cli.prelude :as prelude])) (defn command-fn [{:keys [yes output-directory]}] (if (or yes diff --git a/scripts/sydnix/src/sydnix/main.clj b/scripts/sydnix-cli/src/sydnix_cli/main.clj similarity index 67% rename from scripts/sydnix/src/sydnix/main.clj rename to scripts/sydnix-cli/src/sydnix_cli/main.clj index 3112f9c..b0e6f7a 100755 --- a/scripts/sydnix/src/sydnix/main.clj +++ b/scripts/sydnix-cli/src/sydnix_cli/main.clj @@ -1,11 +1,11 @@ -(ns sydnix.main +(ns sydnix-cli.main (:require [babashka.cli :as cli] - [sydnix.cli-table :refer [*cli-table]] - [sydnix.commands.help :as cmd-help :refer [adorn-with-help-option*]] - [sydnix.commands.rebuild :as cmd-rebuild] - [sydnix.commands.status :as cmd-status] - [sydnix.commands.util :as cmd-util]) + [sydnix-cli.cli-table :refer [*cli-table]] + [sydnix-cli.commands.help :as cmd-help :refer [adorn-with-help-option*]] + [sydnix-cli.commands.rebuild :as cmd-rebuild] + [sydnix-cli.commands.status :as cmd-status] + [sydnix-cli.commands.util :as cmd-util]) (:gen-class)) (def real-cli-table diff --git a/scripts/sydnix/src/sydnix/mangen.clj b/scripts/sydnix-cli/src/sydnix_cli/mangen.clj similarity index 97% rename from scripts/sydnix/src/sydnix/mangen.clj rename to scripts/sydnix-cli/src/sydnix_cli/mangen.clj index fc104be..bfe3d1e 100644 --- a/scripts/sydnix/src/sydnix/mangen.clj +++ b/scripts/sydnix-cli/src/sydnix_cli/mangen.clj @@ -1,4 +1,4 @@ -(ns sydnix.mangen +(ns sydnix-cli.mangen (:require [asciidoc.render] [asciidoc.types] @@ -6,7 +6,7 @@ [babashka.process :as p] [clojure.spec.alpha :as s] [clojure.string :as str] - [sydnix.cli-table :refer [*cli-table]]) + [sydnix-cli.cli-table :refer [*cli-table]]) (:import [java.io BufferedReader PipedReader PipedWriter])) diff --git a/scripts/sydnix/src/sydnix/prelude.clj b/scripts/sydnix-cli/src/sydnix_cli/prelude.clj similarity index 95% rename from scripts/sydnix/src/sydnix/prelude.clj rename to scripts/sydnix-cli/src/sydnix_cli/prelude.clj index c7208a0..c892de4 100644 --- a/scripts/sydnix/src/sydnix/prelude.clj +++ b/scripts/sydnix-cli/src/sydnix_cli/prelude.clj @@ -1,4 +1,4 @@ -(ns sydnix.prelude +(ns sydnix-cli.prelude (:require [clojure.core.match :refer [match]]))