@fredlackey/devutils 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/README.md +5 -5
  2. package/package.json +1 -1
  3. package/src/commands/install.js +374 -36
  4. package/src/installs/adobe-creative-cloud.js +527 -25
  5. package/src/installs/adobe-creative-cloud.md +605 -0
  6. package/src/installs/appcleaner.js +303 -26
  7. package/src/installs/appcleaner.md +699 -0
  8. package/src/installs/apt-transport-https.js +390 -0
  9. package/src/installs/apt-transport-https.md +678 -0
  10. package/src/installs/atomicparsley.js +624 -26
  11. package/src/installs/atomicparsley.md +795 -0
  12. package/src/installs/aws-cli.js +779 -26
  13. package/src/installs/aws-cli.md +727 -0
  14. package/src/installs/balena-etcher.js +688 -26
  15. package/src/installs/balena-etcher.md +761 -0
  16. package/src/installs/bambu-studio.js +912 -26
  17. package/src/installs/bambu-studio.md +780 -0
  18. package/src/installs/bash-completion.js +554 -23
  19. package/src/installs/bash-completion.md +833 -0
  20. package/src/installs/bash.js +399 -26
  21. package/src/installs/bash.md +993 -0
  22. package/src/installs/beyond-compare.js +585 -26
  23. package/src/installs/beyond-compare.md +813 -0
  24. package/src/installs/build-essential.js +511 -26
  25. package/src/installs/build-essential.md +977 -0
  26. package/src/installs/ca-certificates.js +618 -0
  27. package/src/installs/ca-certificates.md +937 -0
  28. package/src/installs/caffeine.js +490 -26
  29. package/src/installs/caffeine.md +839 -0
  30. package/src/installs/camtasia.js +577 -25
  31. package/src/installs/camtasia.md +762 -0
  32. package/src/installs/chatgpt.js +458 -26
  33. package/src/installs/chatgpt.md +814 -0
  34. package/src/installs/chocolatey.js +447 -0
  35. package/src/installs/chocolatey.md +661 -0
  36. package/src/installs/chrome-canary.js +472 -26
  37. package/src/installs/chrome-canary.md +641 -0
  38. package/src/installs/chromium.js +645 -26
  39. package/src/installs/chromium.md +838 -0
  40. package/src/installs/claude-code.js +558 -26
  41. package/src/installs/claude-code.md +1173 -0
  42. package/src/installs/curl.js +361 -26
  43. package/src/installs/curl.md +714 -0
  44. package/src/installs/cursor.js +561 -26
  45. package/src/installs/cursor.md +970 -0
  46. package/src/installs/dbschema.js +674 -26
  47. package/src/installs/dbschema.md +925 -0
  48. package/src/installs/dependencies.md +435 -0
  49. package/src/installs/development-tools.js +600 -0
  50. package/src/installs/development-tools.md +977 -0
  51. package/src/installs/docker.js +1010 -25
  52. package/src/installs/docker.md +1109 -0
  53. package/src/installs/drawio.js +1001 -26
  54. package/src/installs/drawio.md +795 -0
  55. package/src/installs/elmedia-player.js +328 -25
  56. package/src/installs/elmedia-player.md +556 -0
  57. package/src/installs/ffmpeg.js +870 -25
  58. package/src/installs/ffmpeg.md +852 -0
  59. package/src/installs/file.js +464 -0
  60. package/src/installs/file.md +987 -0
  61. package/src/installs/gemini-cli.js +793 -26
  62. package/src/installs/gemini-cli.md +1153 -0
  63. package/src/installs/git.js +382 -26
  64. package/src/installs/git.md +907 -0
  65. package/src/installs/gitego.js +931 -26
  66. package/src/installs/gitego.md +1172 -0
  67. package/src/installs/go.js +913 -26
  68. package/src/installs/go.md +958 -0
  69. package/src/installs/google-chrome.js +801 -25
  70. package/src/installs/google-chrome.md +862 -0
  71. package/src/installs/gpg.js +412 -73
  72. package/src/installs/gpg.md +1056 -0
  73. package/src/installs/homebrew.js +1015 -26
  74. package/src/installs/homebrew.md +988 -0
  75. package/src/installs/imageoptim.js +950 -26
  76. package/src/installs/imageoptim.md +1119 -0
  77. package/src/installs/installers.json +2297 -0
  78. package/src/installs/jq.js +382 -26
  79. package/src/installs/jq.md +809 -0
  80. package/src/installs/keyboard-maestro.js +701 -26
  81. package/src/installs/keyboard-maestro.md +825 -0
  82. package/src/installs/latex.js +771 -26
  83. package/src/installs/latex.md +1095 -0
  84. package/src/installs/lftp.js +338 -26
  85. package/src/installs/lftp.md +907 -0
  86. package/src/installs/lsb-release.js +346 -0
  87. package/src/installs/lsb-release.md +814 -0
  88. package/src/installs/messenger.js +829 -26
  89. package/src/installs/messenger.md +900 -0
  90. package/src/installs/microsoft-office.js +550 -26
  91. package/src/installs/microsoft-office.md +760 -0
  92. package/src/installs/microsoft-teams.js +782 -25
  93. package/src/installs/microsoft-teams.md +886 -0
  94. package/src/installs/node.js +886 -26
  95. package/src/installs/node.md +1153 -0
  96. package/src/installs/nordpass.js +698 -26
  97. package/src/installs/nordpass.md +921 -0
  98. package/src/installs/nvm.js +977 -26
  99. package/src/installs/nvm.md +1057 -0
  100. package/src/installs/openssh.js +734 -64
  101. package/src/installs/openssh.md +1056 -0
  102. package/src/installs/pandoc.js +644 -26
  103. package/src/installs/pandoc.md +1036 -0
  104. package/src/installs/pinentry.js +492 -26
  105. package/src/installs/pinentry.md +1142 -0
  106. package/src/installs/pngyu.js +851 -26
  107. package/src/installs/pngyu.md +896 -0
  108. package/src/installs/postman.js +781 -26
  109. package/src/installs/postman.md +940 -0
  110. package/src/installs/procps.js +425 -0
  111. package/src/installs/procps.md +851 -0
  112. package/src/installs/safari-tech-preview.js +355 -25
  113. package/src/installs/safari-tech-preview.md +533 -0
  114. package/src/installs/sfnt2woff.js +640 -26
  115. package/src/installs/sfnt2woff.md +795 -0
  116. package/src/installs/shellcheck.js +463 -26
  117. package/src/installs/shellcheck.md +1005 -0
  118. package/src/installs/slack.js +722 -25
  119. package/src/installs/slack.md +865 -0
  120. package/src/installs/snagit.js +566 -25
  121. package/src/installs/snagit.md +844 -0
  122. package/src/installs/software-properties-common.js +372 -0
  123. package/src/installs/software-properties-common.md +805 -0
  124. package/src/installs/spotify.js +858 -25
  125. package/src/installs/spotify.md +901 -0
  126. package/src/installs/studio-3t.js +803 -26
  127. package/src/installs/studio-3t.md +918 -0
  128. package/src/installs/sublime-text.js +780 -25
  129. package/src/installs/sublime-text.md +914 -0
  130. package/src/installs/superwhisper.js +687 -25
  131. package/src/installs/superwhisper.md +630 -0
  132. package/src/installs/tailscale.js +727 -26
  133. package/src/installs/tailscale.md +1100 -0
  134. package/src/installs/tar.js +389 -0
  135. package/src/installs/tar.md +946 -0
  136. package/src/installs/termius.js +780 -26
  137. package/src/installs/termius.md +844 -0
  138. package/src/installs/terraform.js +761 -26
  139. package/src/installs/terraform.md +899 -0
  140. package/src/installs/tidal.js +752 -25
  141. package/src/installs/tidal.md +864 -0
  142. package/src/installs/tmux.js +328 -26
  143. package/src/installs/tmux.md +1030 -0
  144. package/src/installs/tree.js +393 -26
  145. package/src/installs/tree.md +833 -0
  146. package/src/installs/unzip.js +460 -0
  147. package/src/installs/unzip.md +879 -0
  148. package/src/installs/vim.js +403 -26
  149. package/src/installs/vim.md +1040 -0
  150. package/src/installs/vlc.js +803 -26
  151. package/src/installs/vlc.md +927 -0
  152. package/src/installs/vscode.js +825 -26
  153. package/src/installs/vscode.md +1002 -0
  154. package/src/installs/wget.js +415 -0
  155. package/src/installs/wget.md +791 -0
  156. package/src/installs/whatsapp.js +710 -25
  157. package/src/installs/whatsapp.md +854 -0
  158. package/src/installs/winpty.js +352 -0
  159. package/src/installs/winpty.md +620 -0
  160. package/src/installs/woff2.js +535 -26
  161. package/src/installs/woff2.md +977 -0
  162. package/src/installs/wsl.js +572 -0
  163. package/src/installs/wsl.md +699 -0
  164. package/src/installs/xcode-clt.js +520 -0
  165. package/src/installs/xcode-clt.md +351 -0
  166. package/src/installs/xcode.js +542 -26
  167. package/src/installs/xcode.md +573 -0
  168. package/src/installs/yarn.js +806 -26
  169. package/src/installs/yarn.md +1074 -0
  170. package/src/installs/yq.js +636 -26
  171. package/src/installs/yq.md +944 -0
  172. package/src/installs/yt-dlp.js +683 -26
  173. package/src/installs/yt-dlp.md +946 -0
  174. package/src/installs/yum-utils.js +297 -0
  175. package/src/installs/yum-utils.md +648 -0
  176. package/src/installs/zoom.js +740 -25
  177. package/src/installs/zoom.md +884 -0
  178. package/src/scripts/README.md +567 -45
  179. package/src/scripts/STATUS.md +208 -0
  180. package/src/scripts/afk.js +395 -7
  181. package/src/scripts/backup-all.js +731 -9
  182. package/src/scripts/backup-source.js +711 -8
  183. package/src/scripts/brewd.js +373 -7
  184. package/src/scripts/brewi.js +505 -9
  185. package/src/scripts/brewr.js +512 -9
  186. package/src/scripts/brews.js +462 -9
  187. package/src/scripts/brewu.js +488 -7
  188. package/src/scripts/c.js +185 -7
  189. package/src/scripts/ccurl.js +325 -8
  190. package/src/scripts/certbot-crontab-init.js +488 -8
  191. package/src/scripts/certbot-init.js +641 -9
  192. package/src/scripts/ch.js +339 -7
  193. package/src/scripts/claude-danger.js +253 -8
  194. package/src/scripts/clean-dev.js +419 -8
  195. package/src/scripts/clear-dns-cache.js +525 -7
  196. package/src/scripts/clone.js +417 -7
  197. package/src/scripts/code-all.js +420 -7
  198. package/src/scripts/count-files.js +195 -8
  199. package/src/scripts/count-folders.js +195 -8
  200. package/src/scripts/count.js +248 -8
  201. package/src/scripts/d.js +203 -7
  202. package/src/scripts/datauri.js +373 -8
  203. package/src/scripts/delete-files.js +363 -7
  204. package/src/scripts/docker-clean.js +410 -8
  205. package/src/scripts/dp.js +426 -7
  206. package/src/scripts/e.js +375 -9
  207. package/src/scripts/empty-trash.js +497 -7
  208. package/src/scripts/evm.js +428 -9
  209. package/src/scripts/fetch-github-repos.js +441 -10
  210. package/src/scripts/get-channel.js +329 -8
  211. package/src/scripts/get-course.js +384 -11
  212. package/src/scripts/get-dependencies.js +290 -9
  213. package/src/scripts/get-folder.js +783 -10
  214. package/src/scripts/get-tunes.js +411 -10
  215. package/src/scripts/get-video.js +352 -9
  216. package/src/scripts/git-backup.js +561 -9
  217. package/src/scripts/git-clone.js +477 -9
  218. package/src/scripts/git-pup.js +303 -7
  219. package/src/scripts/git-push.js +380 -8
  220. package/src/scripts/h.js +607 -9
  221. package/src/scripts/hide-desktop-icons.js +483 -7
  222. package/src/scripts/hide-hidden-files.js +522 -7
  223. package/src/scripts/install-dependencies-from.js +440 -9
  224. package/src/scripts/ips.js +647 -10
  225. package/src/scripts/iso.js +354 -8
  226. package/src/scripts/killni.js +561 -7
  227. package/src/scripts/ll.js +451 -8
  228. package/src/scripts/local-ip.js +310 -8
  229. package/src/scripts/m.js +508 -8
  230. package/src/scripts/map.js +293 -8
  231. package/src/scripts/mkd.js +287 -7
  232. package/src/scripts/ncu-update-all.js +441 -8
  233. package/src/scripts/nginx-init.js +702 -12
  234. package/src/scripts/npmi.js +366 -7
  235. package/src/scripts/o.js +495 -8
  236. package/src/scripts/org-by-date.js +321 -7
  237. package/src/scripts/p.js +208 -7
  238. package/src/scripts/packages.js +313 -8
  239. package/src/scripts/path.js +209 -7
  240. package/src/scripts/ports.js +582 -8
  241. package/src/scripts/q.js +290 -8
  242. package/src/scripts/refresh-files.js +378 -10
  243. package/src/scripts/remove-smaller-files.js +500 -8
  244. package/src/scripts/rename-files-with-date.js +517 -9
  245. package/src/scripts/resize-image.js +523 -9
  246. package/src/scripts/rm-safe.js +653 -8
  247. package/src/scripts/s.js +525 -9
  248. package/src/scripts/set-git-public.js +349 -7
  249. package/src/scripts/show-desktop-icons.js +459 -7
  250. package/src/scripts/show-hidden-files.js +456 -7
  251. package/src/scripts/tpa.js +265 -8
  252. package/src/scripts/tpo.js +264 -7
  253. package/src/scripts/u.js +489 -7
  254. package/src/scripts/vpush.js +422 -8
  255. package/src/scripts/y.js +267 -7
  256. package/src/utils/common/os.js +94 -2
  257. package/src/utils/ubuntu/apt.js +13 -7
  258. package/src/utils/windows/choco.js +82 -26
  259. package/src/utils/windows/winget.js +89 -27
@@ -0,0 +1,1172 @@
1
+ # Installing gitego
2
+
3
+ ## Overview
4
+
5
+ gitego is a Git identity manager and automatic profile switcher that eliminates the risk of committing to a repository with the wrong user identity. It allows you to define separate profiles for work, personal projects, and clients, then automatically switches between them based on your working directory.
6
+
7
+ Key features include:
8
+
9
+ - **Automatic profile switching**: Configure profiles to activate automatically when you enter a specific directory
10
+ - **Unified identity management**: A single profile manages your commit author (user.name, email), authentication method (SSH keys), and API token (PAT)
11
+ - **Secure credential storage**: Personal Access Tokens are stored in your operating system's native keychain (macOS Keychain, Windows Credential Manager, or Linux Secret Service), never in plaintext configuration files
12
+ - **Cross-platform support**: Works natively on macOS, Windows, and Linux
13
+
14
+ gitego uses Git's `includeIf` directive for identity switching and acts as a Git credential helper for HTTPS authentication.
15
+
16
+ ## Dependencies
17
+
18
+ ### macOS (Homebrew)
19
+ - **Required:**
20
+ - `homebrew` - Install from https://brew.sh
21
+ - `git` - Install via `brew install git` (usually pre-installed with Xcode Command Line Tools)
22
+ - **Optional:** None
23
+ - **Auto-installed:**
24
+ - `go` (version 1.24+) - Automatically installed via `brew install go` if not present or version is too old
25
+
26
+ ### Ubuntu (APT/Snap)
27
+ - **Required:**
28
+ - `git` - Install via `sudo apt-get install -y git`
29
+ - `wget` - Install via `sudo apt-get install -y wget` (usually pre-installed)
30
+ - **Optional:** None
31
+ - **Auto-installed:**
32
+ - Go 1.24+ - Downloaded directly from https://go.dev/dl/go1.24.0.linux-amd64.tar.gz and installed to /usr/local/go
33
+ - `libsecret-1-0` - Installed via `sudo apt-get install -y libsecret-1-0` for secure PAT storage
34
+
35
+ ### Raspberry Pi OS (APT/Snap)
36
+ - **Required:**
37
+ - `git` - Install via `sudo apt-get install -y git`
38
+ - `wget` - Install via `sudo apt-get install -y wget` (usually pre-installed)
39
+ - **Optional:** None
40
+ - **Auto-installed:**
41
+ - Go 1.24+ - Downloaded directly from https://go.dev/dl/ (arm64 or armv6l variant based on detected architecture) and installed to /usr/local/go
42
+ - `libsecret-1-0` - Installed via `sudo apt-get install -y libsecret-1-0` for secure PAT storage
43
+
44
+ ### Amazon Linux (DNF/YUM)
45
+ - **Required:**
46
+ - `git` - Install via `sudo dnf install -y git` (AL2023) or `sudo yum install -y git` (AL2)
47
+ - **Optional:** None
48
+ - **Auto-installed:**
49
+ - `wget` - Installed via `sudo dnf install -y wget` or `sudo yum install -y wget` if not present
50
+ - Go 1.24+ - Downloaded directly from https://go.dev/dl/go1.24.0.linux-amd64.tar.gz and installed to /usr/local/go
51
+ - `libsecret` - Attempted installation via `sudo dnf install -y libsecret` or `sudo yum install -y libsecret` for secure PAT storage (may fail on headless servers, which is expected)
52
+
53
+ ### Windows (Chocolatey/winget)
54
+ - **Required:**
55
+ - `git` - Install via `choco install git -y` or `winget install --id Git.Git --silent`
56
+ - `chocolatey` OR `winget` - At least one package manager must be installed. Install Chocolatey from https://chocolatey.org/install
57
+ - **Optional:** None
58
+ - **Auto-installed:**
59
+ - `go` (version 1.24+) - Installed via `choco install golang` or `winget install --id GoLang.Go` if not present or version is too old
60
+
61
+ ### Git Bash (Manual/Portable)
62
+ - **Required:**
63
+ - `git` - Install Git for Windows from https://git-scm.com/downloads
64
+ - `go` (version 1.24+) - Must be pre-installed on Windows via `choco install golang -y` or `winget install --id GoLang.Go --silent`
65
+ - **Optional:** None
66
+ - **Auto-installed:** None (Git Bash inherits Windows environment, so dependencies must be installed on Windows first)
67
+
68
+ ## Prerequisites
69
+
70
+ Before installing gitego on any platform, ensure:
71
+
72
+ 1. **Git installed and configured** - gitego manages Git identities, so Git must be present
73
+ 2. **Internet connectivity** - Required to download Go and gitego
74
+ 3. **Terminal/shell access** - All installation is performed via command line
75
+
76
+ **Critical Requirement**: Go 1.24 or later must be installed. gitego is a Go application installed via `go install`. Each platform section below includes Go installation steps.
77
+
78
+ ## Platform-Specific Installation
79
+
80
+ ### macOS (Homebrew)
81
+
82
+ #### Prerequisites
83
+
84
+ - macOS 10.15 (Catalina) or later
85
+ - Homebrew package manager installed
86
+ - Git installed (included with macOS Command Line Tools)
87
+
88
+ If Homebrew is not installed, install it first (this command is non-interactive after initial installation):
89
+
90
+ ```bash
91
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
92
+ ```
93
+
94
+ #### Installation Steps
95
+
96
+ **Step 1: Install Go**
97
+
98
+ Install Go using Homebrew:
99
+
100
+ ```bash
101
+ brew install --quiet go
102
+ ```
103
+
104
+ Verify Go is installed and meets the version requirement:
105
+
106
+ ```bash
107
+ go version
108
+ ```
109
+
110
+ Expected output should show Go 1.24 or later.
111
+
112
+ **Step 2: Ensure Go bin directory is in PATH**
113
+
114
+ Add the Go bin directory to your PATH by adding this line to your shell profile. For zsh (default on modern macOS):
115
+
116
+ ```bash
117
+ echo 'export PATH="$PATH:$HOME/go/bin"' >> ~/.zshrc && source ~/.zshrc
118
+ ```
119
+
120
+ For bash:
121
+
122
+ ```bash
123
+ echo 'export PATH="$PATH:$HOME/go/bin"' >> ~/.bash_profile && source ~/.bash_profile
124
+ ```
125
+
126
+ **Step 3: Install gitego**
127
+
128
+ Install gitego using Go's package manager:
129
+
130
+ ```bash
131
+ go install github.com/bgreenwell/gitego@latest
132
+ ```
133
+
134
+ **Step 4: Configure Git to use gitego as credential helper**
135
+
136
+ Clear any existing credential helpers and set gitego as the primary handler:
137
+
138
+ ```bash
139
+ git config --global credential.helper ""
140
+ git config --global --add credential.helper "!gitego credential"
141
+ ```
142
+
143
+ #### Verification
144
+
145
+ Confirm gitego is installed:
146
+
147
+ ```bash
148
+ gitego --version
149
+ ```
150
+
151
+ Expected output:
152
+
153
+ ```
154
+ gitego version 0.1.1
155
+ ```
156
+
157
+ Test the credential helper configuration:
158
+
159
+ ```bash
160
+ git config --global --get-all credential.helper
161
+ ```
162
+
163
+ Expected output:
164
+
165
+ ```
166
+ !gitego credential
167
+ ```
168
+
169
+ #### Troubleshooting
170
+
171
+ **Problem**: `gitego: command not found`
172
+
173
+ **Solution**: The Go bin directory is not in your PATH. Verify the PATH includes `~/go/bin`:
174
+
175
+ ```bash
176
+ echo $PATH | tr ':' '\n' | grep go
177
+ ```
178
+
179
+ If not present, add it to your shell profile:
180
+
181
+ ```bash
182
+ echo 'export PATH="$PATH:$HOME/go/bin"' >> ~/.zshrc && source ~/.zshrc
183
+ ```
184
+
185
+ **Problem**: `go install` fails with version error
186
+
187
+ **Solution**: Your Go version is too old. Update Go:
188
+
189
+ ```bash
190
+ brew upgrade go
191
+ ```
192
+
193
+ **Problem**: Credential helper not working
194
+
195
+ **Solution**: Verify the configuration is correct:
196
+
197
+ ```bash
198
+ git config --global --get-all credential.helper
199
+ ```
200
+
201
+ If multiple entries exist, clear and reconfigure:
202
+
203
+ ```bash
204
+ git config --global --unset-all credential.helper
205
+ git config --global credential.helper ""
206
+ git config --global --add credential.helper "!gitego credential"
207
+ ```
208
+
209
+ ---
210
+
211
+ ### Ubuntu/Debian (APT)
212
+
213
+ #### Prerequisites
214
+
215
+ - Ubuntu 20.04 or later, or Debian 11 (Bullseye) or later
216
+ - sudo privileges
217
+ - Git installed
218
+
219
+ Install Git if not present:
220
+
221
+ ```bash
222
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
223
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git
224
+ ```
225
+
226
+ #### Installation Steps
227
+
228
+ **Step 1: Install Go**
229
+
230
+ The version of Go in Ubuntu/Debian repositories is often outdated. Download and install Go directly from the official source to ensure you have version 1.24 or later:
231
+
232
+ ```bash
233
+ # Download Go 1.24 (adjust version as needed for newer releases)
234
+ wget -q https://go.dev/dl/go1.24.0.linux-amd64.tar.gz -O /tmp/go.tar.gz
235
+
236
+ # Remove any existing Go installation and extract new version
237
+ sudo rm -rf /usr/local/go
238
+ sudo tar -C /usr/local -xzf /tmp/go.tar.gz
239
+
240
+ # Clean up downloaded archive
241
+ rm /tmp/go.tar.gz
242
+ ```
243
+
244
+ **Step 2: Configure PATH**
245
+
246
+ Add Go to your PATH:
247
+
248
+ ```bash
249
+ echo 'export PATH="$PATH:/usr/local/go/bin:$HOME/go/bin"' >> ~/.bashrc && source ~/.bashrc
250
+ ```
251
+
252
+ Verify Go is installed correctly:
253
+
254
+ ```bash
255
+ go version
256
+ ```
257
+
258
+ Expected output should show Go 1.24 or later.
259
+
260
+ **Step 3: Install gitego**
261
+
262
+ Install gitego using Go's package manager:
263
+
264
+ ```bash
265
+ go install github.com/bgreenwell/gitego@latest
266
+ ```
267
+
268
+ **Step 4: Configure Git to use gitego as credential helper**
269
+
270
+ Clear any existing credential helpers and set gitego as the primary handler:
271
+
272
+ ```bash
273
+ git config --global credential.helper ""
274
+ git config --global --add credential.helper "!gitego credential"
275
+ ```
276
+
277
+ **Step 5: Install libsecret for secure credential storage**
278
+
279
+ gitego uses the Linux Secret Service for secure PAT storage. Install the required library:
280
+
281
+ ```bash
282
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libsecret-1-0
283
+ ```
284
+
285
+ #### Verification
286
+
287
+ Confirm gitego is installed:
288
+
289
+ ```bash
290
+ gitego --version
291
+ ```
292
+
293
+ Expected output:
294
+
295
+ ```
296
+ gitego version 0.1.1
297
+ ```
298
+
299
+ Test the credential helper configuration:
300
+
301
+ ```bash
302
+ git config --global --get-all credential.helper
303
+ ```
304
+
305
+ Expected output:
306
+
307
+ ```
308
+ !gitego credential
309
+ ```
310
+
311
+ #### Troubleshooting
312
+
313
+ **Problem**: `gitego: command not found`
314
+
315
+ **Solution**: The Go bin directory is not in your PATH. Add it:
316
+
317
+ ```bash
318
+ echo 'export PATH="$PATH:/usr/local/go/bin:$HOME/go/bin"' >> ~/.bashrc && source ~/.bashrc
319
+ ```
320
+
321
+ **Problem**: Go version is too old
322
+
323
+ **Solution**: The system Go package is outdated. Remove it and install from official tarball:
324
+
325
+ ```bash
326
+ sudo DEBIAN_FRONTEND=noninteractive apt-get remove -y golang-go
327
+ wget -q https://go.dev/dl/go1.24.0.linux-amd64.tar.gz -O /tmp/go.tar.gz
328
+ sudo rm -rf /usr/local/go
329
+ sudo tar -C /usr/local -xzf /tmp/go.tar.gz
330
+ rm /tmp/go.tar.gz
331
+ ```
332
+
333
+ **Problem**: Secure credential storage fails
334
+
335
+ **Solution**: Ensure you have a running secret service (like GNOME Keyring):
336
+
337
+ ```bash
338
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y gnome-keyring
339
+ ```
340
+
341
+ ---
342
+
343
+ ### Raspberry Pi OS (APT)
344
+
345
+ #### Prerequisites
346
+
347
+ - Raspberry Pi OS (64-bit recommended) - Bookworm or Bullseye
348
+ - Raspberry Pi 3B+ or later (64-bit capable hardware)
349
+ - sudo privileges
350
+ - Git installed
351
+
352
+ First, verify your architecture:
353
+
354
+ ```bash
355
+ uname -m
356
+ ```
357
+
358
+ - `aarch64` = 64-bit (use arm64 Go binary)
359
+ - `armv7l` = 32-bit (use armv6l Go binary)
360
+
361
+ Install Git if not present:
362
+
363
+ ```bash
364
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
365
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git
366
+ ```
367
+
368
+ #### Installation Steps
369
+
370
+ **Step 1: Install Go**
371
+
372
+ Download the appropriate Go binary for your Raspberry Pi architecture.
373
+
374
+ **For 64-bit Raspberry Pi OS (aarch64):**
375
+
376
+ ```bash
377
+ wget -q https://go.dev/dl/go1.24.0.linux-arm64.tar.gz -O /tmp/go.tar.gz
378
+ sudo rm -rf /usr/local/go
379
+ sudo tar -C /usr/local -xzf /tmp/go.tar.gz
380
+ rm /tmp/go.tar.gz
381
+ ```
382
+
383
+ **For 32-bit Raspberry Pi OS (armv7l):**
384
+
385
+ ```bash
386
+ wget -q https://go.dev/dl/go1.24.0.linux-armv6l.tar.gz -O /tmp/go.tar.gz
387
+ sudo rm -rf /usr/local/go
388
+ sudo tar -C /usr/local -xzf /tmp/go.tar.gz
389
+ rm /tmp/go.tar.gz
390
+ ```
391
+
392
+ **Step 2: Configure PATH**
393
+
394
+ Add Go to your PATH:
395
+
396
+ ```bash
397
+ echo 'export PATH="$PATH:/usr/local/go/bin:$HOME/go/bin"' >> ~/.bashrc && source ~/.bashrc
398
+ ```
399
+
400
+ Verify Go is installed correctly:
401
+
402
+ ```bash
403
+ go version
404
+ ```
405
+
406
+ Expected output should show Go 1.24 or later.
407
+
408
+ **Step 3: Install gitego**
409
+
410
+ Install gitego using Go's package manager:
411
+
412
+ ```bash
413
+ go install github.com/bgreenwell/gitego@latest
414
+ ```
415
+
416
+ **Note**: Compilation on Raspberry Pi may take several minutes due to limited processing power.
417
+
418
+ **Step 4: Configure Git to use gitego as credential helper**
419
+
420
+ Clear any existing credential helpers and set gitego as the primary handler:
421
+
422
+ ```bash
423
+ git config --global credential.helper ""
424
+ git config --global --add credential.helper "!gitego credential"
425
+ ```
426
+
427
+ **Step 5: Install libsecret for secure credential storage**
428
+
429
+ ```bash
430
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libsecret-1-0
431
+ ```
432
+
433
+ #### Verification
434
+
435
+ Confirm gitego is installed:
436
+
437
+ ```bash
438
+ gitego --version
439
+ ```
440
+
441
+ Expected output:
442
+
443
+ ```
444
+ gitego version 0.1.1
445
+ ```
446
+
447
+ #### Troubleshooting
448
+
449
+ **Problem**: `go install` fails with "exec format error"
450
+
451
+ **Solution**: You downloaded the wrong architecture binary. Check your architecture with `uname -m` and download the correct Go tarball (arm64 for aarch64, armv6l for armv7l).
452
+
453
+ **Problem**: Compilation is extremely slow or fails with out of memory
454
+
455
+ **Solution**: Raspberry Pi has limited resources. Increase swap space:
456
+
457
+ ```bash
458
+ sudo fallocate -l 2G /swapfile
459
+ sudo chmod 600 /swapfile
460
+ sudo mkswap /swapfile
461
+ sudo swapon /swapfile
462
+ ```
463
+
464
+ Then retry the installation.
465
+
466
+ **Problem**: `gitego: command not found`
467
+
468
+ **Solution**: Ensure Go bin directory is in PATH:
469
+
470
+ ```bash
471
+ echo 'export PATH="$PATH:/usr/local/go/bin:$HOME/go/bin"' >> ~/.bashrc && source ~/.bashrc
472
+ ```
473
+
474
+ ---
475
+
476
+ ### Amazon Linux (DNF/YUM)
477
+
478
+ #### Prerequisites
479
+
480
+ - Amazon Linux 2023 (AL2023) or Amazon Linux 2 (AL2)
481
+ - sudo privileges
482
+ - Git installed
483
+
484
+ Install Git if not present:
485
+
486
+ ```bash
487
+ # For Amazon Linux 2023
488
+ sudo dnf install -y git
489
+
490
+ # For Amazon Linux 2
491
+ sudo yum install -y git
492
+ ```
493
+
494
+ #### Installation Steps
495
+
496
+ **Step 1: Install Go**
497
+
498
+ The Go version in Amazon Linux repositories may be outdated. Download and install Go directly from the official source:
499
+
500
+ ```bash
501
+ wget -q https://go.dev/dl/go1.24.0.linux-amd64.tar.gz -O /tmp/go.tar.gz
502
+ sudo rm -rf /usr/local/go
503
+ sudo tar -C /usr/local -xzf /tmp/go.tar.gz
504
+ rm /tmp/go.tar.gz
505
+ ```
506
+
507
+ **Step 2: Configure PATH**
508
+
509
+ Add Go to your PATH:
510
+
511
+ ```bash
512
+ echo 'export PATH="$PATH:/usr/local/go/bin:$HOME/go/bin"' >> ~/.bashrc && source ~/.bashrc
513
+ ```
514
+
515
+ Verify Go is installed correctly:
516
+
517
+ ```bash
518
+ go version
519
+ ```
520
+
521
+ Expected output should show Go 1.24 or later.
522
+
523
+ **Step 3: Install gitego**
524
+
525
+ Install gitego using Go's package manager:
526
+
527
+ ```bash
528
+ go install github.com/bgreenwell/gitego@latest
529
+ ```
530
+
531
+ **Step 4: Configure Git to use gitego as credential helper**
532
+
533
+ Clear any existing credential helpers and set gitego as the primary handler:
534
+
535
+ ```bash
536
+ git config --global credential.helper ""
537
+ git config --global --add credential.helper "!gitego credential"
538
+ ```
539
+
540
+ **Step 5: Install libsecret for secure credential storage (optional)**
541
+
542
+ For secure PAT storage on headless servers, install libsecret:
543
+
544
+ ```bash
545
+ # For Amazon Linux 2023
546
+ sudo dnf install -y libsecret
547
+
548
+ # For Amazon Linux 2
549
+ sudo yum install -y libsecret
550
+ ```
551
+
552
+ **Note**: On headless servers without a graphical environment, the secret service may not be available. In this case, gitego will still function for identity switching, but PAT storage may require alternative configuration.
553
+
554
+ #### Verification
555
+
556
+ Confirm gitego is installed:
557
+
558
+ ```bash
559
+ gitego --version
560
+ ```
561
+
562
+ Expected output:
563
+
564
+ ```
565
+ gitego version 0.1.1
566
+ ```
567
+
568
+ Test the credential helper configuration:
569
+
570
+ ```bash
571
+ git config --global --get-all credential.helper
572
+ ```
573
+
574
+ Expected output:
575
+
576
+ ```
577
+ !gitego credential
578
+ ```
579
+
580
+ #### Troubleshooting
581
+
582
+ **Problem**: `gitego: command not found`
583
+
584
+ **Solution**: The Go bin directory is not in your PATH. Add it:
585
+
586
+ ```bash
587
+ echo 'export PATH="$PATH:/usr/local/go/bin:$HOME/go/bin"' >> ~/.bashrc && source ~/.bashrc
588
+ ```
589
+
590
+ **Problem**: `wget: command not found`
591
+
592
+ **Solution**: Install wget:
593
+
594
+ ```bash
595
+ # For Amazon Linux 2023
596
+ sudo dnf install -y wget
597
+
598
+ # For Amazon Linux 2
599
+ sudo yum install -y wget
600
+ ```
601
+
602
+ **Problem**: Secret service not available on headless server
603
+
604
+ **Solution**: gitego still works for identity switching without a secret service. For PAT management on headless servers, consider using SSH keys instead, or configure a headless secret service like `pass`.
605
+
606
+ ---
607
+
608
+ ### Windows (Chocolatey/winget)
609
+
610
+ #### Prerequisites
611
+
612
+ - Windows 10 version 1809 or later, or Windows 11
613
+ - Administrator PowerShell or Command Prompt
614
+ - Git for Windows installed
615
+ - Chocolatey or winget package manager
616
+
617
+ If Git is not installed, install it first:
618
+
619
+ ```powershell
620
+ choco install git -y
621
+ ```
622
+
623
+ Or with winget:
624
+
625
+ ```powershell
626
+ winget install --id Git.Git --silent --accept-package-agreements --accept-source-agreements
627
+ ```
628
+
629
+ #### Installation Steps
630
+
631
+ **Step 1: Install Go**
632
+
633
+ Using Chocolatey (run in Administrator PowerShell):
634
+
635
+ ```powershell
636
+ choco install golang -y
637
+ ```
638
+
639
+ Using winget:
640
+
641
+ ```powershell
642
+ winget install --id GoLang.Go --silent --accept-package-agreements --accept-source-agreements
643
+ ```
644
+
645
+ **Step 2: Refresh environment variables**
646
+
647
+ Close and reopen your terminal, or in PowerShell run:
648
+
649
+ ```powershell
650
+ $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
651
+ ```
652
+
653
+ Verify Go is installed:
654
+
655
+ ```powershell
656
+ go version
657
+ ```
658
+
659
+ Expected output should show Go 1.24 or later.
660
+
661
+ **Step 3: Install gitego**
662
+
663
+ Install gitego using Go's package manager:
664
+
665
+ ```powershell
666
+ go install github.com/bgreenwell/gitego@latest
667
+ ```
668
+
669
+ **Step 4: Add Go bin to PATH**
670
+
671
+ The Go bin directory needs to be in your PATH. Add it permanently:
672
+
673
+ ```powershell
674
+ $gopath = [System.Environment]::GetEnvironmentVariable("GOPATH", "User")
675
+ if (-not $gopath) { $gopath = "$env:USERPROFILE\go" }
676
+ $binPath = "$gopath\bin"
677
+ $currentPath = [System.Environment]::GetEnvironmentVariable("Path", "User")
678
+ if ($currentPath -notlike "*$binPath*") {
679
+ [System.Environment]::SetEnvironmentVariable("Path", "$currentPath;$binPath", "User")
680
+ }
681
+ ```
682
+
683
+ Close and reopen your terminal for the PATH change to take effect.
684
+
685
+ **Step 5: Configure Git to use gitego as credential helper**
686
+
687
+ Clear any existing credential helpers and set gitego as the primary handler:
688
+
689
+ ```powershell
690
+ git config --global credential.helper ""
691
+ git config --global --add credential.helper "!gitego credential"
692
+ ```
693
+
694
+ #### Verification
695
+
696
+ Confirm gitego is installed:
697
+
698
+ ```powershell
699
+ gitego --version
700
+ ```
701
+
702
+ Expected output:
703
+
704
+ ```
705
+ gitego version 0.1.1
706
+ ```
707
+
708
+ Test the credential helper configuration:
709
+
710
+ ```powershell
711
+ git config --global --get-all credential.helper
712
+ ```
713
+
714
+ Expected output:
715
+
716
+ ```
717
+ !gitego credential
718
+ ```
719
+
720
+ #### Troubleshooting
721
+
722
+ **Problem**: `gitego: The term 'gitego' is not recognized`
723
+
724
+ **Solution**: The Go bin directory is not in your PATH. Add it and restart your terminal:
725
+
726
+ ```powershell
727
+ $gopath = "$env:USERPROFILE\go"
728
+ $binPath = "$gopath\bin"
729
+ [System.Environment]::SetEnvironmentVariable("Path", "$env:Path;$binPath", "User")
730
+ ```
731
+
732
+ Then close and reopen PowerShell.
733
+
734
+ **Problem**: `go install` fails with network error
735
+
736
+ **Solution**: Check your internet connection and proxy settings. If behind a corporate proxy:
737
+
738
+ ```powershell
739
+ $env:HTTP_PROXY = "http://proxy.example.com:8080"
740
+ $env:HTTPS_PROXY = "http://proxy.example.com:8080"
741
+ go install github.com/bgreenwell/gitego@latest
742
+ ```
743
+
744
+ **Problem**: Go version is outdated
745
+
746
+ **Solution**: Update Go using Chocolatey:
747
+
748
+ ```powershell
749
+ choco upgrade golang -y
750
+ ```
751
+
752
+ Or with winget:
753
+
754
+ ```powershell
755
+ winget upgrade --id GoLang.Go
756
+ ```
757
+
758
+ ---
759
+
760
+ ### WSL (Ubuntu)
761
+
762
+ #### Prerequisites
763
+
764
+ - Windows 10 version 2004 or higher, or Windows 11
765
+ - WSL 2 enabled with Ubuntu distribution installed
766
+ - sudo privileges within WSL
767
+ - Git installed in WSL
768
+
769
+ Verify you are running WSL 2:
770
+
771
+ ```bash
772
+ wsl.exe --list --verbose
773
+ ```
774
+
775
+ Your Ubuntu distribution should show "2" in the VERSION column.
776
+
777
+ Install Git if not present:
778
+
779
+ ```bash
780
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
781
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y git
782
+ ```
783
+
784
+ #### Installation Steps
785
+
786
+ **Step 1: Install Go**
787
+
788
+ Download and install Go from the official source:
789
+
790
+ ```bash
791
+ wget -q https://go.dev/dl/go1.24.0.linux-amd64.tar.gz -O /tmp/go.tar.gz
792
+ sudo rm -rf /usr/local/go
793
+ sudo tar -C /usr/local -xzf /tmp/go.tar.gz
794
+ rm /tmp/go.tar.gz
795
+ ```
796
+
797
+ **Step 2: Configure PATH**
798
+
799
+ Add Go to your PATH:
800
+
801
+ ```bash
802
+ echo 'export PATH="$PATH:/usr/local/go/bin:$HOME/go/bin"' >> ~/.bashrc && source ~/.bashrc
803
+ ```
804
+
805
+ Verify Go is installed correctly:
806
+
807
+ ```bash
808
+ go version
809
+ ```
810
+
811
+ Expected output should show Go 1.24 or later.
812
+
813
+ **Step 3: Install gitego**
814
+
815
+ Install gitego using Go's package manager:
816
+
817
+ ```bash
818
+ go install github.com/bgreenwell/gitego@latest
819
+ ```
820
+
821
+ **Step 4: Configure Git to use gitego as credential helper**
822
+
823
+ Clear any existing credential helpers and set gitego as the primary handler:
824
+
825
+ ```bash
826
+ git config --global credential.helper ""
827
+ git config --global --add credential.helper "!gitego credential"
828
+ ```
829
+
830
+ **Step 5: Configure credential storage for WSL**
831
+
832
+ WSL does not have a native secret service running by default. Install and configure pass for credential storage:
833
+
834
+ ```bash
835
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y pass gnupg
836
+ ```
837
+
838
+ Generate a GPG key for pass (follow the prompts):
839
+
840
+ ```bash
841
+ gpg --batch --gen-key <<EOF
842
+ Key-Type: RSA
843
+ Key-Length: 4096
844
+ Name-Real: gitego
845
+ Name-Email: gitego@localhost
846
+ Expire-Date: 0
847
+ %no-protection
848
+ EOF
849
+ ```
850
+
851
+ Initialize pass with the generated key:
852
+
853
+ ```bash
854
+ pass init "gitego"
855
+ ```
856
+
857
+ #### Verification
858
+
859
+ Confirm gitego is installed:
860
+
861
+ ```bash
862
+ gitego --version
863
+ ```
864
+
865
+ Expected output:
866
+
867
+ ```
868
+ gitego version 0.1.1
869
+ ```
870
+
871
+ Test the credential helper configuration:
872
+
873
+ ```bash
874
+ git config --global --get-all credential.helper
875
+ ```
876
+
877
+ Expected output:
878
+
879
+ ```
880
+ !gitego credential
881
+ ```
882
+
883
+ #### Troubleshooting
884
+
885
+ **Problem**: `gitego: command not found`
886
+
887
+ **Solution**: Ensure Go bin directory is in PATH:
888
+
889
+ ```bash
890
+ echo 'export PATH="$PATH:/usr/local/go/bin:$HOME/go/bin"' >> ~/.bashrc && source ~/.bashrc
891
+ ```
892
+
893
+ **Problem**: WSL 1 compatibility issues
894
+
895
+ **Solution**: Upgrade to WSL 2:
896
+
897
+ ```powershell
898
+ wsl --set-version Ubuntu 2
899
+ ```
900
+
901
+ **Problem**: Secret storage errors
902
+
903
+ **Solution**: Ensure pass is properly initialized:
904
+
905
+ ```bash
906
+ pass init "$(gpg --list-keys --keyid-format LONG | grep -A1 pub | tail -1 | awk '{print $1}')"
907
+ ```
908
+
909
+ ---
910
+
911
+ ### Git Bash (Windows)
912
+
913
+ #### Prerequisites
914
+
915
+ - Windows 10 or Windows 11 (64-bit)
916
+ - Git Bash installed (comes with Git for Windows)
917
+ - Go installed on Windows (see Windows section)
918
+
919
+ Git Bash inherits the Windows PATH, so if Go and gitego are installed on Windows, they will be available in Git Bash automatically.
920
+
921
+ #### Installation Steps
922
+
923
+ **Step 1: Install Go on Windows**
924
+
925
+ If Go is not already installed, install it using Chocolatey from an Administrator PowerShell:
926
+
927
+ ```powershell
928
+ choco install golang -y
929
+ ```
930
+
931
+ Or with winget:
932
+
933
+ ```powershell
934
+ winget install --id GoLang.Go --silent --accept-package-agreements --accept-source-agreements
935
+ ```
936
+
937
+ **Step 2: Install gitego**
938
+
939
+ Open Git Bash and install gitego:
940
+
941
+ ```bash
942
+ go install github.com/bgreenwell/gitego@latest
943
+ ```
944
+
945
+ **Step 3: Add Go bin to PATH**
946
+
947
+ If gitego is not found after installation, add the Go bin directory to your Git Bash profile:
948
+
949
+ ```bash
950
+ echo 'export PATH="$PATH:$HOME/go/bin"' >> ~/.bashrc && source ~/.bashrc
951
+ ```
952
+
953
+ **Step 4: Configure Git to use gitego as credential helper**
954
+
955
+ Clear any existing credential helpers and set gitego as the primary handler:
956
+
957
+ ```bash
958
+ git config --global credential.helper ""
959
+ git config --global --add credential.helper "!gitego credential"
960
+ ```
961
+
962
+ #### Verification
963
+
964
+ Confirm gitego is installed:
965
+
966
+ ```bash
967
+ gitego --version
968
+ ```
969
+
970
+ Expected output:
971
+
972
+ ```
973
+ gitego version 0.1.1
974
+ ```
975
+
976
+ Test the credential helper configuration:
977
+
978
+ ```bash
979
+ git config --global --get-all credential.helper
980
+ ```
981
+
982
+ Expected output:
983
+
984
+ ```
985
+ !gitego credential
986
+ ```
987
+
988
+ #### Troubleshooting
989
+
990
+ **Problem**: `gitego: command not found`
991
+
992
+ **Solution**: Add the Go bin directory to your PATH:
993
+
994
+ ```bash
995
+ echo 'export PATH="$PATH:$HOME/go/bin:/c/Users/$USER/go/bin"' >> ~/.bashrc && source ~/.bashrc
996
+ ```
997
+
998
+ **Problem**: `go: command not found`
999
+
1000
+ **Solution**: Go is not installed or not in PATH. Install Go on Windows first (see Windows section), then restart Git Bash.
1001
+
1002
+ **Problem**: Credential helper not working
1003
+
1004
+ **Solution**: Verify the Git configuration:
1005
+
1006
+ ```bash
1007
+ git config --global --list | grep credential
1008
+ ```
1009
+
1010
+ Reconfigure if needed:
1011
+
1012
+ ```bash
1013
+ git config --global --unset-all credential.helper
1014
+ git config --global credential.helper ""
1015
+ git config --global --add credential.helper "!gitego credential"
1016
+ ```
1017
+
1018
+ ---
1019
+
1020
+ ## Post-Installation Configuration
1021
+
1022
+ After installing gitego on any platform, complete these configuration steps.
1023
+
1024
+ ### Create Your First Profile
1025
+
1026
+ Create a default profile with your primary Git identity:
1027
+
1028
+ ```bash
1029
+ gitego add personal --name "Your Name" --email "you@example.com" --username "your-github-username"
1030
+ ```
1031
+
1032
+ Set it as the global default:
1033
+
1034
+ ```bash
1035
+ gitego use personal
1036
+ ```
1037
+
1038
+ ### Create Additional Profiles
1039
+
1040
+ Create profiles for different contexts:
1041
+
1042
+ ```bash
1043
+ # Work profile with SSH key
1044
+ gitego add work --name "Your Name" --email "you@company.com" --username "work-username" --ssh-key ~/.ssh/id_work
1045
+
1046
+ # Client profile with Personal Access Token
1047
+ gitego add client --name "Your Name" --email "you@client.com" --username "client-username" --pat "ghp_YourPATHere"
1048
+ ```
1049
+
1050
+ ### Configure Auto-Switching
1051
+
1052
+ Set up automatic profile switching based on directory:
1053
+
1054
+ ```bash
1055
+ gitego auto ~/work/ work
1056
+ gitego auto ~/personal/ personal
1057
+ gitego auto ~/clients/abc/ client
1058
+ ```
1059
+
1060
+ ### Install Pre-Commit Hook (Optional)
1061
+
1062
+ Add a safety hook to prevent commits with the wrong identity:
1063
+
1064
+ ```bash
1065
+ cd /path/to/your/repo
1066
+ gitego install-hook
1067
+ ```
1068
+
1069
+ ### Verify Configuration
1070
+
1071
+ Check the current effective Git identity:
1072
+
1073
+ ```bash
1074
+ gitego status
1075
+ ```
1076
+
1077
+ List all configured profiles:
1078
+
1079
+ ```bash
1080
+ gitego list
1081
+ ```
1082
+
1083
+ ---
1084
+
1085
+ ## Common Issues
1086
+
1087
+ ### Issue: "error: cannot run gitego credential: No such file or directory"
1088
+
1089
+ **Symptoms**: Git operations fail with credential helper errors.
1090
+
1091
+ **Solution**: gitego is not in your PATH. Verify the installation:
1092
+
1093
+ ```bash
1094
+ which gitego
1095
+ ```
1096
+
1097
+ If not found, add the Go bin directory to your PATH (see platform-specific instructions above).
1098
+
1099
+ ### Issue: Profile not switching automatically
1100
+
1101
+ **Symptoms**: `gitego status` shows the wrong profile when in a configured directory.
1102
+
1103
+ **Solution**: Verify auto-switching rules:
1104
+
1105
+ ```bash
1106
+ gitego list
1107
+ ```
1108
+
1109
+ Ensure the directory path in the auto rule matches your actual directory structure. The path must be an exact prefix match.
1110
+
1111
+ ### Issue: PAT not being used for HTTPS operations
1112
+
1113
+ **Symptoms**: Git prompts for username/password despite PAT being configured.
1114
+
1115
+ **Solution**: Verify the credential helper is configured:
1116
+
1117
+ ```bash
1118
+ git config --global --get-all credential.helper
1119
+ ```
1120
+
1121
+ If gitego is not listed, reconfigure:
1122
+
1123
+ ```bash
1124
+ git config --global credential.helper ""
1125
+ git config --global --add credential.helper "!gitego credential"
1126
+ ```
1127
+
1128
+ ### Issue: SSH key not being used
1129
+
1130
+ **Symptoms**: Git uses wrong SSH key for operations.
1131
+
1132
+ **Solution**: gitego manages SSH key selection via GIT_SSH_COMMAND. Verify the profile has an SSH key configured:
1133
+
1134
+ ```bash
1135
+ gitego list
1136
+ ```
1137
+
1138
+ If the ssh-key field is empty, add one:
1139
+
1140
+ ```bash
1141
+ gitego edit profile-name --ssh-key ~/.ssh/id_correct_key
1142
+ ```
1143
+
1144
+ ### Issue: "secret service not available" on Linux
1145
+
1146
+ **Symptoms**: PAT storage fails on headless Linux systems.
1147
+
1148
+ **Solution**: Install and configure a secret service. For systems with GNOME:
1149
+
1150
+ ```bash
1151
+ sudo apt-get install -y gnome-keyring
1152
+ ```
1153
+
1154
+ For headless systems, use pass:
1155
+
1156
+ ```bash
1157
+ sudo apt-get install -y pass gnupg
1158
+ gpg --gen-key
1159
+ pass init "your-gpg-key-id"
1160
+ ```
1161
+
1162
+ ---
1163
+
1164
+ ## References
1165
+
1166
+ - [gitego GitHub Repository](https://github.com/bgreenwell/gitego)
1167
+ - [Go Installation Documentation](https://go.dev/doc/install)
1168
+ - [Git Credential Helpers Documentation](https://git-scm.com/docs/gitcredentials)
1169
+ - [Git Conditional Includes Documentation](https://git-scm.com/docs/git-config#_conditional_includes)
1170
+ - [Homebrew Go Formula](https://formulae.brew.sh/formula/go)
1171
+ - [Chocolatey Go Package](https://community.chocolatey.org/packages/golang)
1172
+ - [winget Go Package](https://winget.run/pkg/GoLang/Go)