mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-19 20:23:02 +00:00
git-worktree-switcher: init at 0.2.4 (#355484)
This commit is contained in:
commit
2e5a764eaf
@ -10519,6 +10519,18 @@
|
||||
githubId = 1476865;
|
||||
name = "jigglycrumb";
|
||||
};
|
||||
jiriks74 = {
|
||||
name = "Jiří Štefka";
|
||||
email = "jiri@stefka.eu";
|
||||
github = "jiriks74";
|
||||
githubId = 54378412;
|
||||
matrix = "@jiriks74:matrix.org";
|
||||
keys = [
|
||||
{
|
||||
fingerprint = "563AC7887FD6414714A6ACAC1D5E30D3DB2264DE";
|
||||
}
|
||||
];
|
||||
};
|
||||
jirkamarsik = {
|
||||
email = "jiri.marsik89@gmail.com";
|
||||
github = "jirkamarsik";
|
||||
|
@ -34,6 +34,8 @@
|
||||
|
||||
- [KanBoard](https://github.com/kanboard/kanboard), a project management tool that focuses on the Kanban methodology. Available as [services.kanboard](#opt-services.kanboard.enable).
|
||||
|
||||
- [git-worktree-switcher](https://github.com/mateusauler/git-worktree-switcher), switch between git worktrees with speed. Available as [programs.git-worktree-switcher](#opt-programs.git-worktree-switcher.enable)
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
## Backward Incompatibilities {#sec-release-25.05-incompatibilities}
|
||||
|
@ -207,6 +207,7 @@
|
||||
./programs/gdk-pixbuf.nix
|
||||
./programs/geary.nix
|
||||
./programs/git.nix
|
||||
./programs/git-worktree-switcher.nix
|
||||
./programs/gnome-disks.nix
|
||||
./programs/gnome-terminal.nix
|
||||
./programs/gnupg.nix
|
||||
|
40
nixos/modules/programs/git-worktree-switcher.nix
Normal file
40
nixos/modules/programs/git-worktree-switcher.nix
Normal file
@ -0,0 +1,40 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.programs.git-worktree-switcher;
|
||||
|
||||
initScript =
|
||||
shell:
|
||||
if (shell == "fish") then
|
||||
''
|
||||
${lib.getExe pkgs.git-worktree-switcher} init ${shell} | source
|
||||
''
|
||||
else
|
||||
''
|
||||
eval "$(${lib.getExe pkgs.git-worktree-switcher} init ${shell})"
|
||||
'';
|
||||
in
|
||||
{
|
||||
options = {
|
||||
programs.git-worktree-switcher = {
|
||||
enable = lib.mkEnableOption "git-worktree-switcher, switch between git worktrees with speed.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [ git-worktree-switcher ];
|
||||
|
||||
programs.bash.interactiveShellInit = initScript "bash";
|
||||
programs.zsh.interactiveShellInit = lib.optionalString config.programs.zsh.enable (
|
||||
initScript "zsh"
|
||||
);
|
||||
programs.fish.interactiveShellInit = lib.optionalString config.programs.fish.enable (
|
||||
initScript "fish"
|
||||
);
|
||||
};
|
||||
}
|
30
pkgs/by-name/gi/git-worktree-switcher/disable-update.patch
Normal file
30
pkgs/by-name/gi/git-worktree-switcher/disable-update.patch
Normal file
@ -0,0 +1,30 @@
|
||||
diff --git a/wt b/wt
|
||||
index 60999f2..5687822 100755
|
||||
--- a/wt
|
||||
+++ b/wt
|
||||
@@ -27,7 +27,6 @@ help_message() {
|
||||
echo -e "\twt: go to the main worktree"
|
||||
echo -e "\twt <worktree-name>: search for worktree names and change to that directory."
|
||||
echo -e "\twt names: list out only the git worktree names."
|
||||
- echo -e "\twt update: update to the latest release of worktree switcher."
|
||||
echo -e "\twt version: show the CLI version."
|
||||
echo -e "\twt init <shell>: print the init script for <shell>."
|
||||
echo -e "\twt help: shows this help message."
|
||||
@@ -163,9 +162,6 @@ case "${args[0]}" in
|
||||
names)
|
||||
worktree_list_names
|
||||
;;
|
||||
-update)
|
||||
- update
|
||||
- ;;
|
||||
help)
|
||||
help_message
|
||||
;;
|
||||
@@ -176,7 +172,6 @@ init)
|
||||
init
|
||||
;;
|
||||
*)
|
||||
- auto_check_update
|
||||
directory=$(git worktree list --porcelain 2> /dev/null | sed -n '/'"${arg:-.}"'/{s/^worktree\s*//p;q}')
|
||||
;;
|
||||
esac
|
60
pkgs/by-name/gi/git-worktree-switcher/package.nix
Normal file
60
pkgs/by-name/gi/git-worktree-switcher/package.nix
Normal file
@ -0,0 +1,60 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
makeWrapper,
|
||||
installShellFiles,
|
||||
git,
|
||||
jq,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "git-worktree-switcher";
|
||||
version = "0.2.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mateusauler";
|
||||
repo = "git-worktree-switcher";
|
||||
rev = "refs/tags/${finalAttrs.version}-fork";
|
||||
hash = "sha256-N+bDsLEUM6FWhyliUav2n5hwMa5EEuVPoIK+Cja0DxA=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
jq
|
||||
git
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
installShellFiles
|
||||
];
|
||||
|
||||
patches = [
|
||||
./disable-update.patch # Disable update and auto update functionality
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
|
||||
cp wt $out/bin
|
||||
wrapProgram $out/bin/wt --prefix PATH : ${
|
||||
lib.makeBinPath [
|
||||
git
|
||||
jq
|
||||
]
|
||||
}
|
||||
|
||||
installShellCompletion --zsh completions/_wt_completion
|
||||
installShellCompletion --bash completions/wt_completion
|
||||
installShellCompletion --fish completions/wt.fish
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/mateusauler/git-worktree-switcher";
|
||||
description = "Switch between git worktrees with speed.";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.all;
|
||||
mainProgram = "wt";
|
||||
maintainers = with lib.maintainers; [ jiriks74 ];
|
||||
};
|
||||
})
|
Loading…
Reference in New Issue
Block a user