@prnv/tuck 1.7.0 → 1.8.0
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.
- package/README.md +44 -6
- package/dist/index.js +3955 -882
- package/dist/index.js.map +1 -1
- package/package.json +6 -1
package/README.md
CHANGED
|
@@ -27,22 +27,26 @@
|
|
|
27
27
|
- **Beautiful CLI** — Gorgeous prompts, spinners, and progress bars powered by @clack/prompts
|
|
28
28
|
- **Safe by default** — Creates backups before every operation, never overwrites without asking
|
|
29
29
|
- **Git-native** — Uses Git under the hood but hides the complexity
|
|
30
|
-
- **Cross-platform** — Works on macOS and
|
|
30
|
+
- **Cross-platform** — Works on macOS, Linux, and Windows
|
|
31
31
|
|
|
32
32
|
## Installation
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
# npm
|
|
35
|
+
# npm (all platforms)
|
|
36
36
|
npm install -g @prnv/tuck
|
|
37
37
|
|
|
38
|
-
# Homebrew (macOS/Linux)
|
|
39
|
-
brew install
|
|
38
|
+
# Homebrew (macOS/Linux) - coming soon
|
|
39
|
+
brew install pranav-karra-3301/tap/tuck
|
|
40
40
|
|
|
41
|
-
# pnpm
|
|
41
|
+
# pnpm (all platforms)
|
|
42
42
|
pnpm add -g @prnv/tuck
|
|
43
43
|
|
|
44
|
-
# yarn
|
|
44
|
+
# yarn (all platforms)
|
|
45
45
|
yarn global add @prnv/tuck
|
|
46
|
+
|
|
47
|
+
# Windows (PowerShell)
|
|
48
|
+
npm install -g @prnv/tuck
|
|
49
|
+
# Or download the binary from GitHub Releases
|
|
46
50
|
```
|
|
47
51
|
|
|
48
52
|
## Quick Start
|
|
@@ -210,6 +214,40 @@ Configure tuck via `~/.tuck/.tuckrc.json` or `tuck config wizard`:
|
|
|
210
214
|
- **copy** (default) — Files are copied. Run `tuck sync` to update the repo.
|
|
211
215
|
- **symlink** — Files are symlinked. Changes are instant but require more care.
|
|
212
216
|
|
|
217
|
+
## Windows Support
|
|
218
|
+
|
|
219
|
+
tuck fully supports Windows with platform-specific handling:
|
|
220
|
+
|
|
221
|
+
### Detected Windows Dotfiles
|
|
222
|
+
|
|
223
|
+
| Category | Files |
|
|
224
|
+
|----------|-------|
|
|
225
|
+
| **Shell** | PowerShell profiles (`Microsoft.PowerShell_profile.ps1`) |
|
|
226
|
+
| **Terminal** | Windows Terminal settings, ConEmu/Cmder configs |
|
|
227
|
+
| **Editors** | VS Code, Cursor, Neovim (in `%LOCALAPPDATA%`) |
|
|
228
|
+
| **Git** | `.gitconfig`, `.gitignore_global` |
|
|
229
|
+
| **SSH** | SSH config in `%USERPROFILE%\.ssh` |
|
|
230
|
+
| **Misc** | WSL config (`.wslconfig`), Docker, Kubernetes |
|
|
231
|
+
|
|
232
|
+
### Windows-Specific Behavior
|
|
233
|
+
|
|
234
|
+
- **Symlinks**: On Windows, tuck uses directory junctions (don't require admin privileges) or falls back to copying files
|
|
235
|
+
- **Permissions**: Unix-style file permissions (chmod) don't apply on Windows; tuck handles this gracefully
|
|
236
|
+
- **Paths**: Windows environment variables (`%APPDATA%`, `%LOCALAPPDATA%`, `%USERPROFILE%`) are automatically expanded
|
|
237
|
+
- **Hooks**: tuck uses PowerShell Core (`pwsh`) or Windows PowerShell for hook execution
|
|
238
|
+
|
|
239
|
+
### PowerShell Profile Merging
|
|
240
|
+
|
|
241
|
+
tuck supports smart merging for PowerShell profiles with preserve markers:
|
|
242
|
+
|
|
243
|
+
```powershell
|
|
244
|
+
# In your PowerShell profile, mark local-only sections:
|
|
245
|
+
<# tuck:preserve #>
|
|
246
|
+
# Machine-specific aliases
|
|
247
|
+
Set-Alias code "C:\Program Files\Microsoft VS Code\Code.exe"
|
|
248
|
+
<# /tuck:preserve #>
|
|
249
|
+
```
|
|
250
|
+
|
|
213
251
|
## Security
|
|
214
252
|
|
|
215
253
|
tuck is designed with security in mind:
|