File tree 2 files changed +30
-8
lines changed
2 files changed +30
-8
lines changed Original file line number Diff line number Diff line change 8
8
TEMP_DIR=" /tmp"
9
9
fi
10
10
BACKUP_GIT_PATH=" ${TEMP_DIR%/ } /git_bak"
11
+
12
+ # Backup and mock the primary Git binary
11
13
sudo mv " ${ORIGINAL_GIT_PATH} " " ${BACKUP_GIT_PATH} "
12
14
# shellcheck disable=SC2016
13
15
echo -e ' #!/bin/sh\necho "MOCKED COMMAND: $0 $@"' | sudo tee " ${ORIGINAL_GIT_PATH} "
14
16
sudo chmod +x " ${ORIGINAL_GIT_PATH} "
15
- # shellcheck disable=SC2086
16
- echo " export ORIGINAL_GIT_PATH=\" ${ORIGINAL_GIT_PATH} \" " >> $BASH_ENV
17
- # shellcheck disable=SC2086
18
- echo " export BACKUP_GIT_PATH=\" ${BACKUP_GIT_PATH} \" " >> $BASH_ENV
17
+
18
+ # Check for macOS and mock Xcode's Git binary if it exists
19
+ if [[ " $( uname) " == " Darwin" ]]; then
20
+ XCODE_GIT_PATH=" $( xcode-select -p) /usr/bin/git"
21
+ if [[ -f " ${XCODE_GIT_PATH} " ]]; then
22
+ BACKUP_XCODE_GIT_PATH=" ${TEMP_DIR%/ } /xcode_git_bak"
23
+ sudo mv " ${XCODE_GIT_PATH} " " ${BACKUP_XCODE_GIT_PATH} "
24
+ sudo ln -s " ${ORIGINAL_GIT_PATH} " " ${XCODE_GIT_PATH} "
25
+ echo " export BACKUP_XCODE_GIT_PATH=\" ${BACKUP_XCODE_GIT_PATH} \" " >> " ${BASH_ENV} "
26
+ fi
27
+ fi
28
+
29
+
30
+ # Environment variables to restore original paths later
31
+ echo " export ORIGINAL_GIT_PATH=\" ${ORIGINAL_GIT_PATH} \" " >> " ${BASH_ENV} "
32
+ echo " export BACKUP_GIT_PATH=\" ${BACKUP_GIT_PATH} \" " >> " ${BASH_ENV} "
Original file line number Diff line number Diff line change 1
1
#! /bin/bash
2
2
set -eox pipefail
3
3
4
+ # Restore the primary Git binary
4
5
sudo mv " ${BACKUP_GIT_PATH} " " ${ORIGINAL_GIT_PATH} "
5
- # shellcheck disable=SC2086
6
- echo " unset ORIGINAL_GIT_PATH" >> $BASH_ENV
7
- # shellcheck disable=SC2086
8
- echo " unset BACKUP_GIT_PATH" >> $BASH_ENV
6
+
7
+ # Restore Xcode's Git binary if it was backed up
8
+ if [[ -n " ${BACKUP_XCODE_GIT_PATH} " ]]; then
9
+ XCODE_GIT_PATH=" $( xcode-select -p) /usr/bin/git"
10
+ sudo mv " ${BACKUP_XCODE_GIT_PATH} " " ${XCODE_GIT_PATH} "
11
+ echo " unset BACKUP_XCODE_GIT_PATH" >> " ${BASH_ENV} "
12
+ fi
13
+
14
+ # Clean up environment variables
15
+ echo " unset ORIGINAL_GIT_PATH" >> " ${BASH_ENV} "
16
+ echo " unset BACKUP_GIT_PATH" >> " ${BASH_ENV} "
You can’t perform that action at this time.
0 commit comments