@prnv/tuck 1.7.0 → 1.9.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 +56 -7
- package/dist/index.js +10827 -6589
- package/dist/index.js.map +1 -1
- package/package.json +9 -2
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
|
|
@@ -124,6 +128,17 @@ tuck restore --all
|
|
|
124
128
|
| `tuck config remote` | Configure git provider (GitHub/GitLab/local) |
|
|
125
129
|
| `tuck config wizard` | Interactive configuration setup |
|
|
126
130
|
|
|
131
|
+
### Diagnostics
|
|
132
|
+
|
|
133
|
+
| Command | Description |
|
|
134
|
+
| --------------- | ---------------------------------------------------- |
|
|
135
|
+
| `tuck doctor` | Run repository health and safety diagnostics |
|
|
136
|
+
|
|
137
|
+
`tuck doctor` flags:
|
|
138
|
+
- `--json`: Machine-readable output for CI
|
|
139
|
+
- `--strict`: Treat warnings as non-zero exit
|
|
140
|
+
- `--category <env|repo|manifest|security|hooks>`: Run one check group
|
|
141
|
+
|
|
127
142
|
## How It Works
|
|
128
143
|
|
|
129
144
|
tuck stores your dotfiles in `~/.tuck`, organized by category:
|
|
@@ -208,7 +223,41 @@ Configure tuck via `~/.tuck/.tuckrc.json` or `tuck config wizard`:
|
|
|
208
223
|
### File Strategies
|
|
209
224
|
|
|
210
225
|
- **copy** (default) — Files are copied. Run `tuck sync` to update the repo.
|
|
211
|
-
- **symlink** —
|
|
226
|
+
- **symlink** — tuck copies the file into the repo, then replaces the original path with a symlink to the repo file. Changes are instant, but this modifies your home dotfile paths.
|
|
227
|
+
|
|
228
|
+
## Windows Support
|
|
229
|
+
|
|
230
|
+
tuck fully supports Windows with platform-specific handling:
|
|
231
|
+
|
|
232
|
+
### Detected Windows Dotfiles
|
|
233
|
+
|
|
234
|
+
| Category | Files |
|
|
235
|
+
|----------|-------|
|
|
236
|
+
| **Shell** | PowerShell profiles (`Microsoft.PowerShell_profile.ps1`) |
|
|
237
|
+
| **Terminal** | Windows Terminal settings, ConEmu/Cmder configs |
|
|
238
|
+
| **Editors** | VS Code, Cursor, Neovim (in `%LOCALAPPDATA%`) |
|
|
239
|
+
| **Git** | `.gitconfig`, `.gitignore_global` |
|
|
240
|
+
| **SSH** | SSH config in `%USERPROFILE%\.ssh` |
|
|
241
|
+
| **Misc** | WSL config (`.wslconfig`), Docker, Kubernetes |
|
|
242
|
+
|
|
243
|
+
### Windows-Specific Behavior
|
|
244
|
+
|
|
245
|
+
- **Symlinks**: On Windows, tuck uses directory junctions (don't require admin privileges) or falls back to copying files
|
|
246
|
+
- **Permissions**: Unix-style file permissions (chmod) don't apply on Windows; tuck handles this gracefully
|
|
247
|
+
- **Paths**: Windows environment variables (`%APPDATA%`, `%LOCALAPPDATA%`, `%USERPROFILE%`) are automatically expanded
|
|
248
|
+
- **Hooks**: tuck uses PowerShell Core (`pwsh`) or Windows PowerShell for hook execution
|
|
249
|
+
|
|
250
|
+
### PowerShell Profile Merging
|
|
251
|
+
|
|
252
|
+
tuck supports smart merging for PowerShell profiles with preserve markers:
|
|
253
|
+
|
|
254
|
+
```powershell
|
|
255
|
+
# In your PowerShell profile, mark local-only sections:
|
|
256
|
+
<# tuck:preserve #>
|
|
257
|
+
# Machine-specific aliases
|
|
258
|
+
Set-Alias code "C:\Program Files\Microsoft VS Code\Code.exe"
|
|
259
|
+
<# /tuck:preserve #>
|
|
260
|
+
```
|
|
212
261
|
|
|
213
262
|
## Security
|
|
214
263
|
|