11 TODO: yadm can use git-crypt and transcrypt
12 but it does so in a way that resholve 0.6.0
13 can't yet do anything smart about. It looks
14 like these are for interactive use, so the
15 main impact should just be that users still
16 need both of these packages in their profile
17 to support their use in yadm.
31 resholve.mkDerivation rec {
35 nativeBuildInputs = [ installShellFiles ];
37 src = fetchFromGitHub {
38 owner = "TheLocehiliosan";
41 hash = "sha256-VQhfRtg9wtquJGjhB8fFQqHIJ5GViMfNQQep13ZH5SE=";
49 install -Dt $out/bin yadm
55 installShellCompletion --cmd yadm \
56 --zsh completion/zsh/_yadm \
57 --bash completion/bash/yadm
62 scripts = [ "bin/yadm" ];
63 interpreter = "${bash}/bin/sh";
79 external = if stdenv.hostPlatform.isCygwin then [ ] else [ "cygpath" ];
82 "$GPG_PROGRAM" = [ "gpg" ];
83 "$OPENSSL_PROGRAM" = [ "openssl" ];
84 "$GIT_PROGRAM" = [ "git" ];
85 "$AWK_PROGRAM" = [ "awk" ];
87 # "$GIT_CRYPT_PROGRAM" = [ "git-crypt" ];
88 # "$TRANSCRYPT_PROGRAM" = [ "transcrypt" ];
89 "$J2CLI_PROGRAM" = [ "j2" ];
90 "$ESH_PROGRAM" = [ "esh" ];
91 # not in nixpkgs (yet)
92 # "$ENVTPL_PROGRAM" = [ "envtpl" ];
93 # "$LSB_RELEASE_PROGRAM" = [ "lsb_release" ];
96 "$YADM_COMMAND" = true; # internal cmds
97 "$template_cmd" = true; # dynamic, template-engine
98 "$SHELL" = true; # probably user env? unsure
99 "$hook_command" = true; # ~git hooks?
100 "exec" = [ "$YADM_BOOTSTRAP" ]; # yadm bootstrap script
103 "$ENVTPL_PROGRAM" = true;
104 "$LSB_RELEASE_PROGRAM" = true;
107 TODO: these should be dropped as fast as they can be dealt
108 with properly in binlore and/or resholve.
111 "cannot:${j2cli}/bin/j2"
112 "cannot:${esh}/bin/esh"
113 "cannot:${git}/bin/git"
114 "cannot:${gnupg}/bin/gpg"
120 minimal = runCommand "${pname}-test" { } ''
122 ${yadm}/bin/yadm init
127 homepage = "https://github.com/TheLocehiliosan/yadm";
128 description = "Yet Another Dotfiles Manager";
130 yadm is a dotfile management tool with 3 main features:
131 * Manages files across systems using a single Git repository.
132 * Provides a way to use alternate files on a specific OS or host.
133 * Supplies a method of encrypting confidential data so it can safely be stored in your repository.
135 changelog = "https://github.com/TheLocehiliosan/yadm/blob/${version}/CHANGES";
136 license = lib.licenses.gpl3Plus;
137 maintainers = with lib.maintainers; [ abathur ];
138 platforms = lib.platforms.unix;
139 mainProgram = "yadm";