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