|
4 | 4 | programs.git = { |
5 | 5 | enable = true; |
6 | 6 |
|
7 | | - settings = { |
| 7 | + settings = let |
| 8 | + delta = lib.getExe pkgs.delta; |
| 9 | + git = lib.getExe config.programs.git.package; |
| 10 | + fzf = lib.getExe pkgs.fzf; |
| 11 | + gh = lib.getExe pkgs.gh; |
| 12 | + superprune = pkgs.writeShellScript "git-alias-superprune" '' |
| 13 | + echo 'Fetching remote then deleting branches that are gone. This may take a moment' |
| 14 | +
|
| 15 | + ${git} fetch -p |
| 16 | +
|
| 17 | + gone=$(git for-each-ref --format '%(refname) %(upstream:track)' refs/heads | awk '$2 == "[gone]" {sub("refs/heads/", "", $1); print $1}') |
| 18 | + for branch in $gone; do |
| 19 | + ${git} branch -D $branch; |
| 20 | + done; |
| 21 | + ''; |
| 22 | + co = pkgs.writeShellScript "git-alias-co" '' |
| 23 | + ${git} checkout "$(${git} branch --sort="-committerdate" | ${fzf} | tr -d '[:space:]')"; |
| 24 | + ''; |
| 25 | + wipe = pkgs.writeShellScript "git-alias-wipe" '' |
| 26 | + ${git} add . |
| 27 | + ${git} stash |
| 28 | + ''; |
| 29 | + in { |
8 | 30 | user.name = "Ethan Turkeltaub"; |
9 | 31 |
|
10 | | - alias = let |
11 | | - gitCommand = lib.getExe config.programs.git.package; |
12 | | - fzfCommand = lib.getExe pkgs.fzf; |
13 | | - ghCommand = lib.getExe pkgs.gh; |
14 | | - superprune = pkgs.writeShellScript "git-alias-superprune" '' |
15 | | - echo 'Fetching remote then deleting branches that are gone. This may take a moment' |
16 | | -
|
17 | | - ${gitCommand} fetch -p |
18 | | -
|
19 | | - gone=$(git for-each-ref --format '%(refname) %(upstream:track)' refs/heads | awk '$2 == "[gone]" {sub("refs/heads/", "", $1); print $1}') |
20 | | - for branch in $gone; do |
21 | | - ${gitCommand} branch -D $branch; |
22 | | - done; |
23 | | - ''; |
24 | | - co = pkgs.writeShellScript "git-alias-co" '' |
25 | | - ${gitCommand} checkout "$(${gitCommand} branch --sort="-committerdate" | ${fzfCommand} | tr -d '[:space:]')"; |
26 | | - ''; |
27 | | - wipe = pkgs.writeShellScript "git-alias-wipe" '' |
28 | | - ${gitCommand} add . |
29 | | - ${gitCommand} stash |
30 | | - ''; |
31 | | - in { |
| 32 | + alias = { |
32 | 33 | s = "status"; |
33 | 34 | superprune = "!sh ${superprune}"; |
34 | 35 | co = "!sh ${co}"; |
35 | 36 | wipe = "!sh ${wipe}"; |
36 | | - sync = "!${ghCommand} repo sync"; |
| 37 | + sync = "!${gh} repo sync"; |
37 | 38 | }; |
38 | 39 |
|
39 | | - extraConfig = let deltaCommand = lib.getExe pkgs.delta; |
40 | | - in { |
41 | | - core.pager = deltaCommand; |
42 | | - interactive.diffFilter = "${deltaCommand} --color-only"; |
43 | | - http = { sslCAinfo = "/etc/ssl/certs/ca-certificates.crt"; }; |
44 | | - color = { |
45 | | - status = "always"; |
46 | | - diff = "always"; |
47 | | - }; |
48 | | - init.defaultBranch = "main"; |
| 40 | + core.pager = delta; |
| 41 | + |
| 42 | + interactive.diffFilter = "${delta} --color-only"; |
| 43 | + |
| 44 | + http = { sslCAinfo = "/etc/ssl/certs/ca-certificates.crt"; }; |
| 45 | + |
| 46 | + color = { |
| 47 | + status = "always"; |
| 48 | + diff = "always"; |
49 | 49 | }; |
| 50 | + |
| 51 | + init.defaultBranch = "main"; |
50 | 52 | }; |
51 | 53 |
|
52 | 54 | ignores = [ "*~" "#*#" ".elc" ".#*" "flycheck_*.el" ".projectile" ]; |
|
0 commit comments