diff options
| author | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2026-07-15 06:54:33 -0500 |
|---|---|---|
| committer | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2026-07-15 06:54:33 -0500 |
| commit | 8b990276c5e9abccd772694b1f7232d8b49b634c (patch) | |
| tree | 23f4c3713c538f435354270de2005475c50955d0 /modules/installer.nix | |
initial commit
Diffstat (limited to 'modules/installer.nix')
| -rw-r--r-- | modules/installer.nix | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/modules/installer.nix b/modules/installer.nix new file mode 100644 index 0000000..9cff811 --- /dev/null +++ b/modules/installer.nix @@ -0,0 +1,38 @@ +{pkgs, ...}: let + tsunamiLib = { + scriptPath = f: "$HOME/.config/tmux/scripts/${f}.sh"; + filePath = f: "$HOME/.config/tmux/files/${f}"; + }; + config = pkgs.lib.evalModules { + modules = + [ + {_module.args = {inherit pkgs tsunamiLib;};} + ] + ++ (pkgs.lib.filesystem.listFilesRecursive ./common); + }; + + moduleConfig = pkgs.writeText "tsunami-installer-config.json" (builtins.toJSON { + inherit (config.config.tsunami) scripts files confs; + }); +in { + mkInstaller = + pkgs.runCommand "tsunami-installer" { + buildInputs = [pkgs.jq]; + } '' + mkdir -p $out + { + cat ${moduleConfig} | jq -r ' + (.scripts | to_entries[] | "cat <<\"EOF\" > $HOME/.config/tmux/scripts/\(.key).sh\n\(.value)\nEOF\n"), + (.files | to_entries[] | "cat <<\"EOF\" > $HOME/.config/tmux/files/\(.key)\n\(.value)\nEOF\n"), + (.confs | to_entries[] | "cat <<\"EOF\" > $HOME/.config/tmux/conf.d/\(.key).conf\n\(.value)\nEOF\n") + ' + printf ' + cat <<EOF > $HOME/.config/tmux/tmux.conf + run-shell "find $out/conf.d -print0 | xargs -0 -n1 tmux source-file" + EOF + ' + } > $out/tsunami-installer + + chmod +x $out/tsunami-installer + ''; +} |
