diff options
| author | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2026-05-22 10:23:58 -0500 |
|---|---|---|
| committer | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2026-05-22 10:24:06 -0500 |
| commit | 35af4bab99da94845ebd6e9b2efae6a544d39b35 (patch) | |
| tree | 47c6f76b47f1012932729c9f693316df1512197a /tmux-tsunami/modules/installer.nix | |
| parent | 2e0c6ccbbc76cc36e92128aea44e4bdd4e5c3d0a (diff) | |
LOTS OF TEMP STUFF
Diffstat (limited to 'tmux-tsunami/modules/installer.nix')
| -rw-r--r-- | tmux-tsunami/modules/installer.nix | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tmux-tsunami/modules/installer.nix b/tmux-tsunami/modules/installer.nix new file mode 100644 index 0000000..9cff811 --- /dev/null +++ b/tmux-tsunami/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 + ''; +} |
