Skip to content

Instantly share code, notes, and snippets.

@carlolars
Last active February 10, 2023 21:08
Show Gist options
  • Save carlolars/ed976078a66e7d57bb04f959270bdee3 to your computer and use it in GitHub Desktop.
Save carlolars/ed976078a66e7d57bb04f959270bdee3 to your computer and use it in GitHub Desktop.
Use bash from WSL as sh.exe for GitKraken (5.0.4) for Windows
@echo off
REM Make sure that the path to the script is correct!
@bash -l -c "~/bin/gitkraken-wsl-bash.sh %*"
#!/bin/bash
# Mount root for windows drives, default is /mnt/ but can be changed in /etc/wsl.conf
MOUNT_ROOT=/mnt/
# Read GitKraken's hook script and arguments from STDIN
read -r GITKRAKEN_CMD
# Cleanup the path to the script:
# - Replace two or more '\' in a row with a single '/'.
# - Replace the windows drive letter (C:) with the mount point for the drive (/mnt/c)
FIXED_CMD=$(echo $GITKRAKEN_CMD | sed 's_\\\{2,\}_/_g' | sed "s_\([A-Z]\)\:/_$MOUNT_ROOT\L\1/_g")
# Run the hook script
bash -c "$FIXED_CMD"
  1. Copy gitkraken-wsl-bash.bat and gitkraken-wsl-bash.sh, I put them in ~/bin.
  2. Make sure that the script path in the bat-file and MOUNT_ROOT in the sh-file are correct.
  3. Set gitkraken-wsl-bash.bat as 'Path to sh.exe' in GitKraken.
@Niksac
Copy link

Niksac commented Nov 2, 2021

@DAmNRelentless how did you get this to work with later versions of gitkraken?
I thought they used an internal git implementation instead of external commands?

@rlnt
Copy link

rlnt commented Nov 2, 2021

I put both files into the same directory, adjusted the path in the gitkraken-wsl-bash.bat and set my GitKraken path for the sh.exe to this batch file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment