@fredlackey/devutils 0.0.18 → 0.0.19
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 +32 -150
- package/package.json +5 -82
- package/bin/dev.js +0 -16
- package/files/README.md +0 -0
- package/files/claude/.claude/commands/setup-context.md +0 -3
- package/files/monorepos/_archive/README.md +0 -36
- package/files/monorepos/_legacy/README.md +0 -36
- package/files/monorepos/ai-docs/README.md +0 -33
- package/files/monorepos/apps/README.md +0 -24
- package/files/monorepos/docs/README.md +0 -40
- package/files/monorepos/packages/README.md +0 -25
- package/files/monorepos/research/README.md +0 -29
- package/files/monorepos/scripts/README.md +0 -24
- package/src/cli.js +0 -72
- package/src/commands/README.md +0 -41
- package/src/commands/configure.js +0 -199
- package/src/commands/identity.js +0 -1630
- package/src/commands/ignore.js +0 -247
- package/src/commands/install.js +0 -526
- package/src/commands/setup.js +0 -246
- package/src/commands/status.js +0 -223
- package/src/commands/update.js +0 -142
- package/src/commands/version.js +0 -100
- package/src/completion.js +0 -284
- package/src/constants.js +0 -45
- package/src/ignore/claude-code.txt +0 -10
- package/src/ignore/docker.txt +0 -18
- package/src/ignore/linux.txt +0 -23
- package/src/ignore/macos.txt +0 -36
- package/src/ignore/node.txt +0 -55
- package/src/ignore/terraform.txt +0 -37
- package/src/ignore/vscode.txt +0 -18
- package/src/ignore/windows.txt +0 -35
- package/src/index.js +0 -0
- package/src/installs/README.md +0 -399
- package/src/installs/adobe-creative-cloud.js +0 -546
- package/src/installs/adobe-creative-cloud.md +0 -605
- package/src/installs/appcleaner.js +0 -321
- package/src/installs/appcleaner.md +0 -699
- package/src/installs/apt-transport-https.js +0 -390
- package/src/installs/apt-transport-https.md +0 -678
- package/src/installs/atomicparsley.js +0 -642
- package/src/installs/atomicparsley.md +0 -795
- package/src/installs/aws-cli.js +0 -797
- package/src/installs/aws-cli.md +0 -727
- package/src/installs/balena-etcher.js +0 -710
- package/src/installs/balena-etcher.md +0 -761
- package/src/installs/bambu-studio.js +0 -1143
- package/src/installs/bambu-studio.md +0 -780
- package/src/installs/bash-completion.js +0 -575
- package/src/installs/bash-completion.md +0 -833
- package/src/installs/bash.js +0 -417
- package/src/installs/bash.md +0 -993
- package/src/installs/beyond-compare.js +0 -603
- package/src/installs/beyond-compare.md +0 -813
- package/src/installs/brave-browser.js +0 -968
- package/src/installs/brave-browser.md +0 -650
- package/src/installs/build-essential.js +0 -529
- package/src/installs/build-essential.md +0 -977
- package/src/installs/ca-certificates.js +0 -618
- package/src/installs/ca-certificates.md +0 -937
- package/src/installs/caffeine.js +0 -508
- package/src/installs/caffeine.md +0 -839
- package/src/installs/camtasia.js +0 -596
- package/src/installs/camtasia.md +0 -762
- package/src/installs/chatgpt.js +0 -476
- package/src/installs/chatgpt.md +0 -814
- package/src/installs/chocolatey.js +0 -456
- package/src/installs/chocolatey.md +0 -661
- package/src/installs/chrome-canary.js +0 -419
- package/src/installs/chrome-canary.md +0 -641
- package/src/installs/chromium.js +0 -667
- package/src/installs/chromium.md +0 -838
- package/src/installs/claude-code.js +0 -576
- package/src/installs/claude-code.md +0 -1173
- package/src/installs/cloudflare-warp.js +0 -900
- package/src/installs/cloudflare-warp.md +0 -1047
- package/src/installs/comet-browser.js +0 -588
- package/src/installs/comet-browser.md +0 -731
- package/src/installs/curl.js +0 -379
- package/src/installs/curl.md +0 -714
- package/src/installs/cursor.js +0 -579
- package/src/installs/cursor.md +0 -970
- package/src/installs/dbeaver.js +0 -924
- package/src/installs/dbeaver.md +0 -939
- package/src/installs/dbschema.js +0 -692
- package/src/installs/dbschema.md +0 -925
- package/src/installs/dependencies.md +0 -453
- package/src/installs/development-tools.js +0 -600
- package/src/installs/development-tools.md +0 -977
- package/src/installs/docker.js +0 -1029
- package/src/installs/docker.md +0 -1109
- package/src/installs/drawio.js +0 -1019
- package/src/installs/drawio.md +0 -795
- package/src/installs/elmedia-player.js +0 -347
- package/src/installs/elmedia-player.md +0 -556
- package/src/installs/ffmpeg.js +0 -889
- package/src/installs/ffmpeg.md +0 -852
- package/src/installs/file.js +0 -464
- package/src/installs/file.md +0 -987
- package/src/installs/gemini-cli.js +0 -811
- package/src/installs/gemini-cli.md +0 -1153
- package/src/installs/git.js +0 -400
- package/src/installs/git.md +0 -907
- package/src/installs/gitego.js +0 -949
- package/src/installs/gitego.md +0 -1172
- package/src/installs/go.js +0 -931
- package/src/installs/go.md +0 -958
- package/src/installs/google-antigravity.js +0 -913
- package/src/installs/google-antigravity.md +0 -1075
- package/src/installs/google-chrome.js +0 -833
- package/src/installs/google-chrome.md +0 -862
- package/src/installs/gpg.js +0 -480
- package/src/installs/gpg.md +0 -1056
- package/src/installs/homebrew.js +0 -1028
- package/src/installs/homebrew.md +0 -988
- package/src/installs/imageoptim.js +0 -968
- package/src/installs/imageoptim.md +0 -1119
- package/src/installs/installers.json +0 -4032
- package/src/installs/installers.json.tmp +0 -3953
- package/src/installs/jq.js +0 -400
- package/src/installs/jq.md +0 -809
- package/src/installs/keyboard-maestro.js +0 -719
- package/src/installs/keyboard-maestro.md +0 -825
- package/src/installs/kiro.js +0 -864
- package/src/installs/kiro.md +0 -1015
- package/src/installs/latex.js +0 -789
- package/src/installs/latex.md +0 -1095
- package/src/installs/lftp.js +0 -356
- package/src/installs/lftp.md +0 -907
- package/src/installs/lsb-release.js +0 -346
- package/src/installs/lsb-release.md +0 -814
- package/src/installs/messenger.js +0 -847
- package/src/installs/messenger.md +0 -900
- package/src/installs/microsoft-office.js +0 -568
- package/src/installs/microsoft-office.md +0 -760
- package/src/installs/microsoft-teams.js +0 -801
- package/src/installs/microsoft-teams.md +0 -886
- package/src/installs/moom.js +0 -326
- package/src/installs/moom.md +0 -570
- package/src/installs/node.js +0 -904
- package/src/installs/node.md +0 -1153
- package/src/installs/nordpass.js +0 -716
- package/src/installs/nordpass.md +0 -921
- package/src/installs/nordvpn.js +0 -892
- package/src/installs/nordvpn.md +0 -1052
- package/src/installs/nvm.js +0 -995
- package/src/installs/nvm.md +0 -1057
- package/src/installs/ohmyzsh.js +0 -529
- package/src/installs/ohmyzsh.md +0 -1094
- package/src/installs/openssh.js +0 -804
- package/src/installs/openssh.md +0 -1056
- package/src/installs/pandoc.js +0 -662
- package/src/installs/pandoc.md +0 -1036
- package/src/installs/parallels-desktop.js +0 -431
- package/src/installs/parallels-desktop.md +0 -446
- package/src/installs/pinentry.js +0 -510
- package/src/installs/pinentry.md +0 -1142
- package/src/installs/pngyu.js +0 -869
- package/src/installs/pngyu.md +0 -896
- package/src/installs/postman.js +0 -799
- package/src/installs/postman.md +0 -940
- package/src/installs/procps.js +0 -425
- package/src/installs/procps.md +0 -851
- package/src/installs/safari-tech-preview.js +0 -374
- package/src/installs/safari-tech-preview.md +0 -533
- package/src/installs/sfnt2woff.js +0 -658
- package/src/installs/sfnt2woff.md +0 -795
- package/src/installs/shellcheck.js +0 -481
- package/src/installs/shellcheck.md +0 -1005
- package/src/installs/slack.js +0 -741
- package/src/installs/slack.md +0 -865
- package/src/installs/snagit.js +0 -585
- package/src/installs/snagit.md +0 -844
- package/src/installs/software-properties-common.js +0 -372
- package/src/installs/software-properties-common.md +0 -805
- package/src/installs/spotify.js +0 -877
- package/src/installs/spotify.md +0 -901
- package/src/installs/studio-3t.js +0 -823
- package/src/installs/studio-3t.md +0 -918
- package/src/installs/sublime-text.js +0 -804
- package/src/installs/sublime-text.md +0 -914
- package/src/installs/superwhisper.js +0 -706
- package/src/installs/superwhisper.md +0 -630
- package/src/installs/tailscale.js +0 -745
- package/src/installs/tailscale.md +0 -1100
- package/src/installs/tar.js +0 -389
- package/src/installs/tar.md +0 -946
- package/src/installs/termius.js +0 -798
- package/src/installs/termius.md +0 -844
- package/src/installs/terraform.js +0 -779
- package/src/installs/terraform.md +0 -899
- package/src/installs/tfenv.js +0 -778
- package/src/installs/tfenv.md +0 -1091
- package/src/installs/tidal.js +0 -771
- package/src/installs/tidal.md +0 -864
- package/src/installs/tmux.js +0 -346
- package/src/installs/tmux.md +0 -1030
- package/src/installs/tree.js +0 -411
- package/src/installs/tree.md +0 -833
- package/src/installs/unzip.js +0 -460
- package/src/installs/unzip.md +0 -879
- package/src/installs/vim.js +0 -421
- package/src/installs/vim.md +0 -1040
- package/src/installs/vlc.js +0 -821
- package/src/installs/vlc.md +0 -927
- package/src/installs/vscode.js +0 -843
- package/src/installs/vscode.md +0 -1002
- package/src/installs/wget.js +0 -420
- package/src/installs/wget.md +0 -791
- package/src/installs/whatsapp.js +0 -729
- package/src/installs/whatsapp.md +0 -854
- package/src/installs/winpty.js +0 -352
- package/src/installs/winpty.md +0 -620
- package/src/installs/woff2.js +0 -553
- package/src/installs/woff2.md +0 -977
- package/src/installs/wsl.js +0 -572
- package/src/installs/wsl.md +0 -699
- package/src/installs/xcode-clt.js +0 -520
- package/src/installs/xcode-clt.md +0 -351
- package/src/installs/xcode.js +0 -560
- package/src/installs/xcode.md +0 -573
- package/src/installs/yarn.js +0 -824
- package/src/installs/yarn.md +0 -1074
- package/src/installs/yq.js +0 -654
- package/src/installs/yq.md +0 -944
- package/src/installs/yt-dlp.js +0 -701
- package/src/installs/yt-dlp.md +0 -946
- package/src/installs/yum-utils.js +0 -297
- package/src/installs/yum-utils.md +0 -648
- package/src/installs/zoom.js +0 -759
- package/src/installs/zoom.md +0 -884
- package/src/installs/zsh.js +0 -455
- package/src/installs/zsh.md +0 -1008
- package/src/scripts/README.md +0 -617
- package/src/scripts/STATUS.md +0 -208
- package/src/scripts/afk.js +0 -411
- package/src/scripts/backup-all.js +0 -746
- package/src/scripts/backup-source.js +0 -727
- package/src/scripts/brewd.js +0 -389
- package/src/scripts/brewi.js +0 -520
- package/src/scripts/brewr.js +0 -527
- package/src/scripts/brews.js +0 -477
- package/src/scripts/brewu.js +0 -504
- package/src/scripts/c.js +0 -201
- package/src/scripts/ccurl.js +0 -341
- package/src/scripts/certbot-crontab-init.js +0 -504
- package/src/scripts/certbot-init.js +0 -657
- package/src/scripts/ch.js +0 -355
- package/src/scripts/claude-danger.js +0 -268
- package/src/scripts/clean-dev.js +0 -435
- package/src/scripts/clear-dns-cache.js +0 -541
- package/src/scripts/clone.js +0 -435
- package/src/scripts/code-all.js +0 -437
- package/src/scripts/count-files.js +0 -211
- package/src/scripts/count-folders.js +0 -211
- package/src/scripts/count.js +0 -264
- package/src/scripts/d.js +0 -219
- package/src/scripts/datauri.js +0 -389
- package/src/scripts/delete-files.js +0 -380
- package/src/scripts/docker-clean.js +0 -426
- package/src/scripts/dp.js +0 -442
- package/src/scripts/e.js +0 -390
- package/src/scripts/empty-trash.js +0 -513
- package/src/scripts/evm.js +0 -444
- package/src/scripts/fetch-github-repos.js +0 -456
- package/src/scripts/get-channel.js +0 -345
- package/src/scripts/get-course.js +0 -399
- package/src/scripts/get-dependencies.js +0 -306
- package/src/scripts/get-folder.js +0 -799
- package/src/scripts/get-tunes.js +0 -426
- package/src/scripts/get-video.js +0 -367
- package/src/scripts/git-backup.js +0 -577
- package/src/scripts/git-clone.js +0 -493
- package/src/scripts/git-pup.js +0 -319
- package/src/scripts/git-push.js +0 -396
- package/src/scripts/h.js +0 -622
- package/src/scripts/hide-desktop-icons.js +0 -499
- package/src/scripts/hide-hidden-files.js +0 -538
- package/src/scripts/install-dependencies-from.js +0 -456
- package/src/scripts/ips.js +0 -663
- package/src/scripts/iso.js +0 -370
- package/src/scripts/killni.js +0 -577
- package/src/scripts/ll.js +0 -467
- package/src/scripts/local-ip.js +0 -325
- package/src/scripts/m.js +0 -524
- package/src/scripts/map.js +0 -309
- package/src/scripts/mkd.js +0 -351
- package/src/scripts/ncu-update-all.js +0 -457
- package/src/scripts/nginx-init.js +0 -718
- package/src/scripts/npmi.js +0 -382
- package/src/scripts/o.js +0 -511
- package/src/scripts/org-by-date.js +0 -338
- package/src/scripts/p.js +0 -224
- package/src/scripts/packages.js +0 -330
- package/src/scripts/path.js +0 -225
- package/src/scripts/ports.js +0 -597
- package/src/scripts/q.js +0 -305
- package/src/scripts/refresh-files.js +0 -394
- package/src/scripts/remove-smaller-files.js +0 -516
- package/src/scripts/rename-files-with-date.js +0 -533
- package/src/scripts/resize-image.js +0 -539
- package/src/scripts/rm-safe.js +0 -669
- package/src/scripts/s.js +0 -540
- package/src/scripts/set-git-public.js +0 -365
- package/src/scripts/show-desktop-icons.js +0 -475
- package/src/scripts/show-hidden-files.js +0 -472
- package/src/scripts/tpa.js +0 -280
- package/src/scripts/tpo.js +0 -280
- package/src/scripts/u.js +0 -505
- package/src/scripts/vpush.js +0 -437
- package/src/scripts/y.js +0 -283
- package/src/utils/README.md +0 -95
- package/src/utils/common/apps.js +0 -143
- package/src/utils/common/display.js +0 -157
- package/src/utils/common/network.js +0 -185
- package/src/utils/common/os.js +0 -294
- package/src/utils/common/package-manager.js +0 -301
- package/src/utils/common/privileges.js +0 -138
- package/src/utils/common/shell.js +0 -261
- package/src/utils/macos/apps.js +0 -228
- package/src/utils/macos/brew.js +0 -315
- package/src/utils/ubuntu/apt.js +0 -307
- package/src/utils/ubuntu/desktop.js +0 -292
- package/src/utils/ubuntu/snap.js +0 -344
- package/src/utils/ubuntu/systemd.js +0 -286
- package/src/utils/windows/choco.js +0 -465
- package/src/utils/windows/env.js +0 -246
- package/src/utils/windows/registry.js +0 -269
- package/src/utils/windows/shell.js +0 -240
- package/src/utils/windows/winget.js +0 -489
package/README.md
CHANGED
|
@@ -1,182 +1,64 @@
|
|
|
1
1
|
# DevUtils CLI
|
|
2
2
|
|
|
3
|
-
> **
|
|
4
|
-
> - Use it as-is and provide feedback
|
|
5
|
-
> - Participate in development
|
|
6
|
-
> - Watch for future releases (v0.1.0 for beta, v1.0.0 for stable)
|
|
7
|
-
> - [Reach out](#contact) with questions or suggestions
|
|
3
|
+
> **Rebuild in Progress (v0.0.19)** — This project is being restructured from the ground up. The previous version (v0.0.18) tried to do too much too fast. The new approach is config-driven, user-driven, and machine-aware. If you're looking for the old code, it's been preserved in the `_rebuild/` directory.
|
|
8
4
|
|
|
9
|
-
|
|
5
|
+
## What Happened
|
|
10
6
|
|
|
11
|
-
|
|
7
|
+
The original DevUtils CLI was built as a rigid, opinionated toolkit. It assumed a specific workflow, shipped dozens of global scripts, and tried to be everything to everyone out of the gate. After real-world usage and feedback, it became clear that this approach wouldn't hold up. It was too prescriptive, too fragile across environments, and too hard for users to adapt to their own needs.
|
|
12
8
|
|
|
13
|
-
|
|
14
|
-
- New laptop? Spend a day installing tools and configuring dotfiles
|
|
15
|
-
- Switch between work and personal projects? Juggle SSH keys and git configs
|
|
16
|
-
- Help a teammate set up their environment? Walk them through 50 different steps
|
|
17
|
-
- Work on macOS at home, Linux in prod? Remember two sets of commands
|
|
9
|
+
## What's Changing
|
|
18
10
|
|
|
19
|
-
|
|
11
|
+
The new version takes a fundamentally different approach:
|
|
20
12
|
|
|
21
|
-
|
|
22
|
-
npm install -g @fredlackey/devutils
|
|
23
|
-
dev setup
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
That's it. DevUtils CLI detects your operating system and installs everything you need. Your configuration travels with you.
|
|
27
|
-
|
|
28
|
-
## Installation
|
|
29
|
-
|
|
30
|
-
### If You Have Node.js Installed
|
|
31
|
-
|
|
32
|
-
If you already have Node.js 18+ on your machine, install DevUtils CLI as a global npm package:
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
npm install -g @fredlackey/devutils
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### Fresh Machine (No Node.js)
|
|
39
|
-
|
|
40
|
-
For a fresh machine without Node.js, run the bootstrap script. It installs everything you need: build tools, nvm, Node.js LTS, and DevUtils CLI.
|
|
41
|
-
|
|
42
|
-
**macOS:**
|
|
43
|
-
```bash
|
|
44
|
-
bash -c "$(curl -LsS https://raw.github.com/fredlackey/devutils-cli/main/setup.sh)"
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
**Ubuntu / Debian / Raspberry Pi OS:**
|
|
48
|
-
```bash
|
|
49
|
-
bash -c "$(wget -qO - https://raw.github.com/fredlackey/devutils-cli/main/setup.sh)"
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
**Amazon Linux / RHEL / Fedora:**
|
|
53
|
-
```bash
|
|
54
|
-
bash -c "$(curl -LsS https://raw.github.com/fredlackey/devutils-cli/main/setup.sh)"
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
The script is interactive by default. For automated/CI environments, add `--no-prompt`:
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
bash -c "$(curl -LsS https://raw.github.com/fredlackey/devutils-cli/main/setup.sh)" -- --no-prompt
|
|
61
|
-
```
|
|
13
|
+
### Config-Based, Not Opinion-Based
|
|
62
14
|
|
|
63
|
-
|
|
15
|
+
Instead of shipping a fixed set of behaviors, DevUtils will be driven by user configuration. You tell it what matters to you, and it adapts.
|
|
64
16
|
|
|
65
|
-
|
|
66
|
-
# Install essential tools (git, ssh, gpg, etc.)
|
|
67
|
-
dev setup
|
|
17
|
+
### User Onboarding
|
|
68
18
|
|
|
69
|
-
|
|
70
|
-
dev configure
|
|
19
|
+
The first run walks you through a lightweight onboarding process. It learns who you are, what tools you care about, and how your machine is set up. No assumptions.
|
|
71
20
|
|
|
72
|
-
|
|
73
|
-
dev install vscode
|
|
74
|
-
dev install docker
|
|
75
|
-
dev install node
|
|
76
|
-
```
|
|
21
|
+
### Machine-Aware Profiles
|
|
77
22
|
|
|
78
|
-
|
|
23
|
+
Configuration is scoped to the machine you're on. A laptop, a server, and a VM can each have their own rules without conflicting.
|
|
79
24
|
|
|
80
|
-
###
|
|
25
|
+
### Rule-Based Behavior
|
|
81
26
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
dev install node
|
|
87
|
-
dev install vscode
|
|
88
|
-
```
|
|
27
|
+
Users define rules for folders, tools, and workflows. DevUtils enforces those rules rather than imposing its own. For example:
|
|
28
|
+
- "This folder always uses this git identity"
|
|
29
|
+
- "This machine should have these tools installed"
|
|
30
|
+
- "Run these checks when I open a new terminal"
|
|
89
31
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
### Git Identity Management
|
|
93
|
-
|
|
94
|
-
Manage multiple git identities for work, personal, and client projects:
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
# Create identities with SSH and GPG keys
|
|
98
|
-
dev identity add work --email you@company.com
|
|
99
|
-
dev identity add personal --email you@gmail.com
|
|
100
|
-
|
|
101
|
-
# Link identities to folders - commits automatically use the right credentials
|
|
102
|
-
dev identity link work ~/work
|
|
103
|
-
dev identity link personal ~/personal https://github.com/yourusername
|
|
104
|
-
```
|
|
32
|
+
### Temporary Workspace
|
|
105
33
|
|
|
106
|
-
|
|
34
|
+
DevUtils sets up a managed workspace inside the user's home directory for staging, caching, and intermediate state. Nothing touches system-level paths unless you ask for it.
|
|
107
35
|
|
|
108
|
-
|
|
36
|
+
## Installation
|
|
109
37
|
|
|
110
38
|
```bash
|
|
111
|
-
|
|
112
|
-
dev ignore macos # Add .DS_Store and friends
|
|
113
|
-
dev ignore vscode # Add .vscode/ patterns
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
Patterns are managed in sections—run it twice and it won't duplicate.
|
|
117
|
-
|
|
118
|
-
### Portable Configuration
|
|
119
|
-
|
|
120
|
-
Your `~/.devutils` file stores your preferences:
|
|
121
|
-
|
|
122
|
-
```json
|
|
123
|
-
{
|
|
124
|
-
"user": {
|
|
125
|
-
"name": "Jane Developer",
|
|
126
|
-
"email": "jane@example.com"
|
|
127
|
-
},
|
|
128
|
-
"identities": {
|
|
129
|
-
"work": { "email": "jane@company.com", "sshKey": "~/.ssh/id_ed25519_work" },
|
|
130
|
-
"personal": { "email": "jane@gmail.com", "sshKey": "~/.ssh/id_ed25519_personal" }
|
|
131
|
-
}
|
|
132
|
-
}
|
|
39
|
+
npm install -g @fredlackey/devutils
|
|
133
40
|
```
|
|
134
41
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
## Supported Platforms
|
|
138
|
-
|
|
139
|
-
| Platform | Package Manager |
|
|
140
|
-
|----------|-----------------|
|
|
141
|
-
| macOS | Homebrew |
|
|
142
|
-
| Ubuntu | APT / Snap |
|
|
143
|
-
| Raspberry Pi OS | APT / Snap |
|
|
144
|
-
| Amazon Linux | DNF / YUM |
|
|
145
|
-
| Windows | Chocolatey / winget |
|
|
146
|
-
| Git Bash | Manual / Portable |
|
|
42
|
+
> The CLI is published but actively being rebuilt. Expect breaking changes until v0.1.0.
|
|
147
43
|
|
|
148
|
-
##
|
|
44
|
+
## Previous Version
|
|
149
45
|
|
|
150
|
-
|
|
151
|
-
|---------|-------------|
|
|
152
|
-
| `dev setup` | Install essential development tools |
|
|
153
|
-
| `dev configure` | Set up your developer profile |
|
|
154
|
-
| `dev install <tool>` | Install a tool (cross-platform) |
|
|
155
|
-
| `dev identity add` | Create a new git identity with keys |
|
|
156
|
-
| `dev identity link` | Link an identity to a folder or remote |
|
|
157
|
-
| `dev identity unlink` | Remove a folder link |
|
|
158
|
-
| `dev ignore <tech>` | Add .gitignore patterns |
|
|
159
|
-
| `dev status` | Show current configuration |
|
|
46
|
+
The v0.0.18 codebase (commands, scripts, installers, utilities) has been moved to `_rebuild/` and is preserved for reference. Useful patterns and utilities will be pulled forward into the new architecture as needed.
|
|
160
47
|
|
|
161
|
-
##
|
|
48
|
+
## Roadmap
|
|
162
49
|
|
|
163
|
-
-
|
|
164
|
-
-
|
|
165
|
-
-
|
|
166
|
-
-
|
|
167
|
-
|
|
168
|
-
## Contributing
|
|
169
|
-
|
|
170
|
-
Contributions welcome! Feel free to open issues or submit pull requests.
|
|
50
|
+
- [ ] User onboarding flow
|
|
51
|
+
- [ ] Config file schema (`~/.devutils/config.json`)
|
|
52
|
+
- [ ] Machine profile detection and storage
|
|
53
|
+
- [ ] Rule engine for folder and tool behaviors
|
|
54
|
+
- [ ] Migrate useful scripts and installers from `_rebuild/`
|
|
171
55
|
|
|
172
56
|
## Contact
|
|
173
57
|
|
|
174
|
-
Questions, suggestions, or just want to chat about the project?
|
|
175
|
-
|
|
176
58
|
**Fred Lackey**
|
|
177
|
-
- Email: [fred.lackey@gmail.com](mailto:fred.lackey@gmail.com)
|
|
178
|
-
- Website: [fredlackey.com](https://fredlackey.com)
|
|
179
|
-
- GitHub: [@FredLackey](https://github.com/FredLackey)
|
|
59
|
+
- Email: [fred.lackey@gmail.com](mailto:fred.lackey@gmail.com)
|
|
60
|
+
- Website: [fredlackey.com](https://fredlackey.com)
|
|
61
|
+
- GitHub: [@FredLackey](https://github.com/FredLackey)
|
|
180
62
|
|
|
181
63
|
## License
|
|
182
64
|
|
package/package.json
CHANGED
|
@@ -1,91 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fredlackey/devutils",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "A
|
|
3
|
+
"version": "0.0.19",
|
|
4
|
+
"description": "A config-driven CLI toolkit for bootstrapping and managing development environments across any machine.",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"bin": {
|
|
7
|
-
"dev": "./bin/dev.js"
|
|
8
|
-
"afk": "./src/scripts/afk.js",
|
|
9
|
-
"backup-all": "./src/scripts/backup-all.js",
|
|
10
|
-
"backup-source": "./src/scripts/backup-source.js",
|
|
11
|
-
"brewd": "./src/scripts/brewd.js",
|
|
12
|
-
"brewi": "./src/scripts/brewi.js",
|
|
13
|
-
"brewr": "./src/scripts/brewr.js",
|
|
14
|
-
"brews": "./src/scripts/brews.js",
|
|
15
|
-
"brewu": "./src/scripts/brewu.js",
|
|
16
|
-
"c": "./src/scripts/c.js",
|
|
17
|
-
"ccurl": "./src/scripts/ccurl.js",
|
|
18
|
-
"certbot-crontab-init": "./src/scripts/certbot-crontab-init.js",
|
|
19
|
-
"certbot-init": "./src/scripts/certbot-init.js",
|
|
20
|
-
"ch": "./src/scripts/ch.js",
|
|
21
|
-
"claude-danger": "./src/scripts/claude-danger.js",
|
|
22
|
-
"clean-dev": "./src/scripts/clean-dev.js",
|
|
23
|
-
"clear-dns-cache": "./src/scripts/clear-dns-cache.js",
|
|
24
|
-
"clone": "./src/scripts/clone.js",
|
|
25
|
-
"code-all": "./src/scripts/code-all.js",
|
|
26
|
-
"count": "./src/scripts/count.js",
|
|
27
|
-
"count-files": "./src/scripts/count-files.js",
|
|
28
|
-
"count-folders": "./src/scripts/count-folders.js",
|
|
29
|
-
"d": "./src/scripts/d.js",
|
|
30
|
-
"datauri": "./src/scripts/datauri.js",
|
|
31
|
-
"delete-files": "./src/scripts/delete-files.js",
|
|
32
|
-
"docker-clean": "./src/scripts/docker-clean.js",
|
|
33
|
-
"dp": "./src/scripts/dp.js",
|
|
34
|
-
"e": "./src/scripts/e.js",
|
|
35
|
-
"empty-trash": "./src/scripts/empty-trash.js",
|
|
36
|
-
"evm": "./src/scripts/evm.js",
|
|
37
|
-
"fetch-github-repos": "./src/scripts/fetch-github-repos.js",
|
|
38
|
-
"get-channel": "./src/scripts/get-channel.js",
|
|
39
|
-
"get-course": "./src/scripts/get-course.js",
|
|
40
|
-
"get-dependencies": "./src/scripts/get-dependencies.js",
|
|
41
|
-
"get-folder": "./src/scripts/get-folder.js",
|
|
42
|
-
"get-tunes": "./src/scripts/get-tunes.js",
|
|
43
|
-
"get-video": "./src/scripts/get-video.js",
|
|
44
|
-
"git-backup": "./src/scripts/git-backup.js",
|
|
45
|
-
"git-clone": "./src/scripts/git-clone.js",
|
|
46
|
-
"git-pup": "./src/scripts/git-pup.js",
|
|
47
|
-
"git-push": "./src/scripts/git-push.js",
|
|
48
|
-
"h": "./src/scripts/h.js",
|
|
49
|
-
"hide-desktop-icons": "./src/scripts/hide-desktop-icons.js",
|
|
50
|
-
"hide-hidden-files": "./src/scripts/hide-hidden-files.js",
|
|
51
|
-
"install-dependencies-from": "./src/scripts/install-dependencies-from.js",
|
|
52
|
-
"ips": "./src/scripts/ips.js",
|
|
53
|
-
"iso": "./src/scripts/iso.js",
|
|
54
|
-
"killni": "./src/scripts/killni.js",
|
|
55
|
-
"ll": "./src/scripts/ll.js",
|
|
56
|
-
"local-ip": "./src/scripts/local-ip.js",
|
|
57
|
-
"m": "./src/scripts/m.js",
|
|
58
|
-
"map": "./src/scripts/map.js",
|
|
59
|
-
"mkd": "./src/scripts/mkd.js",
|
|
60
|
-
"ncu-update-all": "./src/scripts/ncu-update-all.js",
|
|
61
|
-
"nginx-init": "./src/scripts/nginx-init.js",
|
|
62
|
-
"npmi": "./src/scripts/npmi.js",
|
|
63
|
-
"o": "./src/scripts/o.js",
|
|
64
|
-
"org-by-date": "./src/scripts/org-by-date.js",
|
|
65
|
-
"p": "./src/scripts/p.js",
|
|
66
|
-
"packages": "./src/scripts/packages.js",
|
|
67
|
-
"path": "./src/scripts/path.js",
|
|
68
|
-
"ports": "./src/scripts/ports.js",
|
|
69
|
-
"q": "./src/scripts/q.js",
|
|
70
|
-
"refresh-files": "./src/scripts/refresh-files.js",
|
|
71
|
-
"remove-smaller-files": "./src/scripts/remove-smaller-files.js",
|
|
72
|
-
"rename-files-with-date": "./src/scripts/rename-files-with-date.js",
|
|
73
|
-
"resize-image": "./src/scripts/resize-image.js",
|
|
74
|
-
"rm-safe": "./src/scripts/rm-safe.js",
|
|
75
|
-
"s": "./src/scripts/s.js",
|
|
76
|
-
"set-git-public": "./src/scripts/set-git-public.js",
|
|
77
|
-
"show-desktop-icons": "./src/scripts/show-desktop-icons.js",
|
|
78
|
-
"show-hidden-files": "./src/scripts/show-hidden-files.js",
|
|
79
|
-
"tpa": "./src/scripts/tpa.js",
|
|
80
|
-
"tpo": "./src/scripts/tpo.js",
|
|
81
|
-
"u": "./src/scripts/u.js",
|
|
82
|
-
"vpush": "./src/scripts/vpush.js",
|
|
83
|
-
"y": "./src/scripts/y.js"
|
|
7
|
+
"dev": "./bin/dev.js"
|
|
84
8
|
},
|
|
85
9
|
"files": [
|
|
86
10
|
"bin/",
|
|
87
|
-
"src/"
|
|
88
|
-
"files/"
|
|
11
|
+
"src/"
|
|
89
12
|
],
|
|
90
13
|
"scripts": {
|
|
91
14
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
@@ -95,7 +18,7 @@
|
|
|
95
18
|
},
|
|
96
19
|
"repository": {
|
|
97
20
|
"type": "git",
|
|
98
|
-
"url": "git+
|
|
21
|
+
"url": "git+ssh://git@github.com/FredLackey/devutils-cli.git"
|
|
99
22
|
},
|
|
100
23
|
"keywords": [],
|
|
101
24
|
"author": {
|
package/bin/dev.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @fileoverview Main entry point for the `dev` CLI command.
|
|
5
|
-
* This file handles tab completion detection and delegates to the CLI module.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
// Handle tab completion before loading the full CLI
|
|
9
|
-
// This allows for fast completion responses
|
|
10
|
-
if (process.env.COMP_LINE) {
|
|
11
|
-
require('../src/completion').handleCompletion();
|
|
12
|
-
process.exit(0);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
// Normal CLI execution
|
|
16
|
-
require('../src/cli').run();
|
package/files/README.md
DELETED
|
File without changes
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# Archive
|
|
2
|
-
|
|
3
|
-
**DO NOT READ OR MODIFY CONTENTS OF THIS FOLDER.**
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
This folder is a **failsafe backup**—a last resort for code and resources that may need to be referenced in rare circumstances. Think of it as a "soft delete" before permanent removal.
|
|
8
|
-
|
|
9
|
-
## Critical Warnings
|
|
10
|
-
|
|
11
|
-
- **Nothing in this folder should be trusted as correct**
|
|
12
|
-
- Contents are outdated, deprecated, or potentially broken
|
|
13
|
-
- Code here has been replaced by better implementations elsewhere
|
|
14
|
-
- Documentation may be inaccurate or misleading
|
|
15
|
-
|
|
16
|
-
## AI Instructions
|
|
17
|
-
|
|
18
|
-
**This folder must be ignored by all AI processes:**
|
|
19
|
-
- Do NOT read files from this folder
|
|
20
|
-
- Do NOT reference code or patterns found here
|
|
21
|
-
- Do NOT modify or update any contents
|
|
22
|
-
- Do NOT use this folder as a source of truth for anything
|
|
23
|
-
|
|
24
|
-
## What Belongs Here
|
|
25
|
-
|
|
26
|
-
- Deprecated code kept only as an emergency reference
|
|
27
|
-
- Old implementations preserved before deletion
|
|
28
|
-
- Retired features that might need forensic review
|
|
29
|
-
- Anything we're not ready to permanently delete
|
|
30
|
-
|
|
31
|
-
## Guidelines
|
|
32
|
-
|
|
33
|
-
- Date items when archiving (use folder names like `YYYYMMDD/`)
|
|
34
|
-
- Include a brief note explaining why the item was archived
|
|
35
|
-
- Never actively maintain or improve archived code
|
|
36
|
-
- Periodically review and permanently delete obsolete items
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# Legacy
|
|
2
|
-
|
|
3
|
-
**CONTENTS SHOULD NOT BE TRUSTED. USE WITH CAUTION.**
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
This folder contains **previous attempts** at building the same concepts, packages, or even the entire project. Think of it as the "last version" or "last attempt" before the current rebuild.
|
|
8
|
-
|
|
9
|
-
We keep this code for reference, but if we're rebuilding, it's for a reason:
|
|
10
|
-
|
|
11
|
-
- **A)** We learned enough about the problem and now want to do it properly
|
|
12
|
-
- **B)** We failed completely and need to start over, but want to remember our mistakes
|
|
13
|
-
|
|
14
|
-
This folder is one step better than `/_archive`—we may occasionally refer to it—but it still should not be treated as a source of truth.
|
|
15
|
-
|
|
16
|
-
## AI Instructions
|
|
17
|
-
|
|
18
|
-
**Approach this folder with skepticism:**
|
|
19
|
-
- Do NOT trust patterns or implementations found here
|
|
20
|
-
- Do NOT copy code from this folder without explicit instruction
|
|
21
|
-
- Do NOT use this as a reference for "how things should work"
|
|
22
|
-
- Contents represent what we're moving *away from*, not toward
|
|
23
|
-
|
|
24
|
-
## What Belongs Here
|
|
25
|
-
|
|
26
|
-
- Previous iterations of the current project
|
|
27
|
-
- Failed attempts preserved for learning
|
|
28
|
-
- Old architectures we've outgrown
|
|
29
|
-
- Code that "worked" but wasn't good enough
|
|
30
|
-
|
|
31
|
-
## Guidelines
|
|
32
|
-
|
|
33
|
-
- Note why the previous attempt was abandoned
|
|
34
|
-
- Reference only when specifically trying to avoid past mistakes
|
|
35
|
-
- Never improve or maintain legacy code—build new instead
|
|
36
|
-
- Move to `/_archive` once the new implementation is stable and proven
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# AI Docs
|
|
2
|
-
|
|
3
|
-
This folder contains documentation **created by AI, for AI**.
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
A persistent knowledge base that preserves AI research, discoveries, and insights so they don't have to be repeated. When AI investigates a concept, researches a technique, or works through a problem, the findings are documented here for future reference.
|
|
8
|
-
|
|
9
|
-
This eliminates redundant research and discovery processes across sessions.
|
|
10
|
-
|
|
11
|
-
## Usage
|
|
12
|
-
|
|
13
|
-
- AI writes documentation here after research or discovery work
|
|
14
|
-
- AI reads from this folder to recall prior findings
|
|
15
|
-
- Humans may reference content but it's optimized for AI consumption
|
|
16
|
-
- Treat as a "memory" that persists between AI sessions
|
|
17
|
-
|
|
18
|
-
## What Belongs Here
|
|
19
|
-
|
|
20
|
-
- Research findings and conclusions
|
|
21
|
-
- Technology evaluations and comparisons
|
|
22
|
-
- Best practices and implementation patterns
|
|
23
|
-
- Convention documentation and standards
|
|
24
|
-
- Schema definitions
|
|
25
|
-
- Brainstorming outcomes and design decisions
|
|
26
|
-
- Concept explanations and technical deep-dives
|
|
27
|
-
|
|
28
|
-
## Guidelines
|
|
29
|
-
|
|
30
|
-
- Write in clear, structured formats AI can easily parse
|
|
31
|
-
- Include context about why research was performed
|
|
32
|
-
- Update documents as understanding evolves
|
|
33
|
-
- Prefer comprehensive detail over brevity
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Apps
|
|
2
|
-
|
|
3
|
-
This folder contains the main applications for the project.
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
Each application in this folder represents a distinct, deployable unit—whether it's a frontend, backend API, admin tool, or other service. Applications are organized as separate subdirectories, each with their own dependencies and configuration.
|
|
8
|
-
|
|
9
|
-
## Structure
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
apps/
|
|
13
|
-
├── [app-name]-ui-[framework]/ # Frontend applications
|
|
14
|
-
├── [app-name]-api-[framework]/ # Backend API services
|
|
15
|
-
├── [app-name]-admin-[framework]/ # Admin tools
|
|
16
|
-
└── ...
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Guidelines
|
|
20
|
-
|
|
21
|
-
- Each application should be independently runnable
|
|
22
|
-
- Applications may depend on shared code from `/packages`
|
|
23
|
-
- Keep application-specific code within its subdirectory
|
|
24
|
-
- Use consistent naming: `[project]-[type]-[framework]`
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# Docs
|
|
2
|
-
|
|
3
|
-
This folder contains documentation **created by humans, for humans**.
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
The counterpart to `/ai-docs`—this folder holds documentation intended for human authors and human readers. Content here should be accessible, verbose enough for clarity, and written so that a junior developer or project manager can understand it.
|
|
8
|
-
|
|
9
|
-
AI may assist with editing, formatting, or refining language, but the content is fundamentally human-focused.
|
|
10
|
-
|
|
11
|
-
## Audience
|
|
12
|
-
|
|
13
|
-
- Junior developers onboarding to the project
|
|
14
|
-
- Project managers needing business context
|
|
15
|
-
- Team members referencing technical decisions
|
|
16
|
-
- External contributors or stakeholders
|
|
17
|
-
|
|
18
|
-
## What Belongs Here
|
|
19
|
-
|
|
20
|
-
- Architecture decision records (ADRs)
|
|
21
|
-
- Setup and installation guides
|
|
22
|
-
- API documentation and usage examples
|
|
23
|
-
- Business logic explanations
|
|
24
|
-
- Deployment and operations guides
|
|
25
|
-
- Contributing guidelines
|
|
26
|
-
- Project overviews and roadmaps
|
|
27
|
-
|
|
28
|
-
## Guidelines
|
|
29
|
-
|
|
30
|
-
- Write for clarity over brevity
|
|
31
|
-
- Assume the reader may not have full context
|
|
32
|
-
- Explain the "why" alongside the "what"
|
|
33
|
-
- Use plain language; avoid unnecessary jargon
|
|
34
|
-
- Include examples where helpful
|
|
35
|
-
|
|
36
|
-
## What Does NOT Belong Here
|
|
37
|
-
|
|
38
|
-
- AI-generated research or discovery docs (use `/ai-docs`)
|
|
39
|
-
- Exploratory research materials (use `/research`)
|
|
40
|
-
- Auto-generated API docs (keep with the relevant app)
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Packages
|
|
2
|
-
|
|
3
|
-
This folder contains shared libraries and utilities used across applications.
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
Packages are reusable code modules that provide common functionality to multiple applications in the monorepo. This promotes code reuse, consistency, and maintainability across the project.
|
|
8
|
-
|
|
9
|
-
## Structure
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
packages/
|
|
13
|
-
├── [project]-utils/ # Utility functions and helpers
|
|
14
|
-
├── [project]-types/ # Shared type definitions
|
|
15
|
-
├── [project]-config/ # Shared configuration
|
|
16
|
-
└── ...
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Guidelines
|
|
20
|
-
|
|
21
|
-
- Packages should be framework-agnostic when possible
|
|
22
|
-
- Each package should have a single, well-defined responsibility
|
|
23
|
-
- Packages are imported by applications in `/apps`
|
|
24
|
-
- Keep packages small and focused
|
|
25
|
-
- Document public APIs within each package
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# Research
|
|
2
|
-
|
|
3
|
-
This folder is a **workspace for reference artifacts**—often excluded from version control.
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
A staging area where developers can pull in external artifacts, code samples, documentation, or even entire repos from other sources. This keeps useful reference material close at hand without polluting the actual codebase.
|
|
8
|
-
|
|
9
|
-
The goal: work within a single IDE while having access to everything you need.
|
|
10
|
-
|
|
11
|
-
## Git Status
|
|
12
|
-
|
|
13
|
-
This folder is **typically excluded from the repository** (added to `.gitignore`). Contents are meant to be temporary and local to each developer's environment. Don't assume anything here will persist or be shared.
|
|
14
|
-
|
|
15
|
-
## What Belongs Here
|
|
16
|
-
|
|
17
|
-
- Cloned repos for reference
|
|
18
|
-
- Code samples from external sources
|
|
19
|
-
- API documentation downloads
|
|
20
|
-
- Third-party library source code
|
|
21
|
-
- Screenshots, PDFs, or other reference materials
|
|
22
|
-
- Anything useful for development that doesn't belong in the repo
|
|
23
|
-
|
|
24
|
-
## Guidelines
|
|
25
|
-
|
|
26
|
-
- Treat this folder as ephemeral and personal
|
|
27
|
-
- Don't rely on contents being available to others
|
|
28
|
-
- Clean up periodically—this isn't long-term storage
|
|
29
|
-
- If findings are valuable, document them in `/ai-docs` or `/docs`
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Scripts
|
|
2
|
-
|
|
3
|
-
This folder contains development, build, and operational scripts.
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
Utility scripts that automate common tasks across the monorepo. These scripts help with development workflows, builds, deployments, and maintenance operations.
|
|
8
|
-
|
|
9
|
-
## What Belongs Here
|
|
10
|
-
|
|
11
|
-
- Build and compilation scripts
|
|
12
|
-
- Development environment setup
|
|
13
|
-
- Database migration helpers
|
|
14
|
-
- Deployment automation
|
|
15
|
-
- Code generation tools
|
|
16
|
-
- Maintenance and cleanup utilities
|
|
17
|
-
|
|
18
|
-
## Guidelines
|
|
19
|
-
|
|
20
|
-
- Make scripts executable (`chmod +x`)
|
|
21
|
-
- Include usage comments at the top of each script
|
|
22
|
-
- Use consistent naming conventions
|
|
23
|
-
- Document any required environment variables
|
|
24
|
-
- Keep scripts idempotent when possible
|