@fredlackey/devutils 0.0.18 → 0.1.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 +214 -141
- package/package.json +8 -83
- package/src/api/loader.js +229 -0
- package/src/api/registry.json +62 -0
- package/src/cli.js +293 -60
- package/src/commands/ai/index.js +16 -0
- package/src/commands/ai/launch.js +112 -0
- package/src/commands/ai/list.js +54 -0
- package/src/commands/ai/resume.js +70 -0
- package/src/commands/ai/sessions.js +121 -0
- package/src/commands/ai/set.js +131 -0
- package/src/commands/ai/show.js +74 -0
- package/src/commands/ai/tools.js +46 -0
- package/src/commands/alias/add.js +93 -0
- package/src/commands/alias/helpers.js +107 -0
- package/src/commands/alias/index.js +14 -0
- package/src/commands/alias/list.js +55 -0
- package/src/commands/alias/remove.js +62 -0
- package/src/commands/alias/sync.js +109 -0
- package/src/commands/api/disable.js +73 -0
- package/src/commands/api/enable.js +148 -0
- package/src/commands/api/index.js +15 -0
- package/src/commands/api/list.js +66 -0
- package/src/commands/api/update.js +87 -0
- package/src/commands/auth/index.js +15 -0
- package/src/commands/auth/list.js +49 -0
- package/src/commands/auth/login.js +384 -0
- package/src/commands/auth/logout.js +111 -0
- package/src/commands/auth/refresh.js +184 -0
- package/src/commands/auth/services.js +169 -0
- package/src/commands/auth/status.js +104 -0
- package/src/commands/config/export.js +224 -0
- package/src/commands/config/get.js +52 -0
- package/src/commands/config/import.js +308 -0
- package/src/commands/config/index.js +17 -0
- package/src/commands/config/init.js +143 -0
- package/src/commands/config/reset.js +57 -0
- package/src/commands/config/set.js +93 -0
- package/src/commands/config/show.js +35 -0
- package/src/commands/help.js +338 -0
- package/src/commands/identity/add.js +133 -0
- package/src/commands/identity/index.js +17 -0
- package/src/commands/identity/link.js +76 -0
- package/src/commands/identity/list.js +48 -0
- package/src/commands/identity/remove.js +72 -0
- package/src/commands/identity/show.js +65 -0
- package/src/commands/identity/sync.js +172 -0
- package/src/commands/identity/unlink.js +57 -0
- package/src/commands/ignore/add.js +165 -0
- package/src/commands/ignore/index.js +14 -0
- package/src/commands/ignore/list.js +89 -0
- package/src/commands/ignore/markers.js +43 -0
- package/src/commands/ignore/remove.js +164 -0
- package/src/commands/ignore/show.js +169 -0
- package/src/commands/machine/detect.js +122 -0
- package/src/commands/machine/index.js +14 -0
- package/src/commands/machine/list.js +74 -0
- package/src/commands/machine/set.js +106 -0
- package/src/commands/machine/show.js +35 -0
- package/src/commands/schema.js +152 -0
- package/src/commands/search/collections.js +134 -0
- package/src/commands/search/get.js +71 -0
- package/src/commands/search/index-cmd.js +54 -0
- package/src/commands/search/index.js +21 -0
- package/src/commands/search/keyword.js +60 -0
- package/src/commands/search/qmd.js +70 -0
- package/src/commands/search/query.js +64 -0
- package/src/commands/search/semantic.js +62 -0
- package/src/commands/search/status.js +46 -0
- package/src/commands/status.js +224 -171
- package/src/commands/tools/check.js +79 -0
- package/src/commands/tools/index.js +14 -0
- package/src/commands/tools/install.js +110 -0
- package/src/commands/tools/list.js +91 -0
- package/src/commands/tools/search.js +60 -0
- package/src/commands/update.js +83 -112
- package/src/commands/util/add.js +151 -0
- package/src/commands/util/index.js +15 -0
- package/src/commands/util/list.js +97 -0
- package/src/commands/util/remove.js +76 -0
- package/src/commands/util/run.js +79 -0
- package/src/commands/util/show.js +67 -0
- package/src/commands/version.js +21 -88
- package/src/installers/_template.js +104 -0
- package/src/installers/git.js +150 -0
- package/src/installers/homebrew.js +190 -0
- package/src/installers/node.js +223 -0
- package/src/installers/registry.json +29 -0
- package/src/lib/config.js +125 -0
- package/src/lib/detect.js +74 -0
- package/src/lib/errors.js +114 -0
- package/src/lib/github.js +315 -0
- package/src/lib/installer.js +225 -0
- package/src/lib/output.js +239 -0
- package/src/lib/platform.js +112 -0
- package/src/lib/platforms/amazon-linux.js +41 -0
- package/src/lib/platforms/gitbash.js +46 -0
- package/src/lib/platforms/macos.js +45 -0
- package/src/lib/platforms/raspbian.js +41 -0
- package/src/lib/platforms/ubuntu.js +39 -0
- package/src/lib/platforms/windows.js +45 -0
- package/src/lib/prompt.js +161 -0
- package/src/lib/schema.js +211 -0
- package/src/lib/shell.js +75 -0
- package/src/patterns/gitignore/claude-code.txt +25 -0
- package/src/patterns/gitignore/docker.txt +15 -0
- package/src/patterns/gitignore/go.txt +24 -0
- package/src/patterns/gitignore/java.txt +38 -0
- package/src/patterns/gitignore/jetbrains.txt +26 -0
- package/src/patterns/gitignore/linux.txt +18 -0
- package/src/patterns/gitignore/macos.txt +27 -0
- package/src/patterns/gitignore/node.txt +51 -0
- package/src/patterns/gitignore/python.txt +55 -0
- package/src/patterns/gitignore/rust.txt +14 -0
- package/src/patterns/gitignore/terraform.txt +30 -0
- package/src/patterns/gitignore/vscode.txt +15 -0
- package/src/patterns/gitignore/windows.txt +25 -0
- package/src/utils/clone/index.js +165 -0
- package/src/utils/git-push/index.js +230 -0
- package/src/utils/git-status/index.js +116 -0
- package/src/utils/git-status/unix.sh +75 -0
- package/src/utils/registry.json +41 -0
- 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/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/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/src/commands/setup.js
DELETED
|
@@ -1,246 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @fileoverview Setup command - Install essential tools required for DevUtils CLI to function.
|
|
5
|
-
* This includes git, ssh-keygen, gpg, and other core dependencies.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
const { Command } = require('commander');
|
|
9
|
-
const readline = require('readline');
|
|
10
|
-
|
|
11
|
-
const shell = require('../utils/common/shell');
|
|
12
|
-
const osUtils = require('../utils/common/os');
|
|
13
|
-
|
|
14
|
-
// Essential tools that DevUtils CLI requires (shared across all platforms)
|
|
15
|
-
const CORE_TOOLS = [
|
|
16
|
-
{
|
|
17
|
-
name: 'git',
|
|
18
|
-
command: 'git',
|
|
19
|
-
description: 'Version control system',
|
|
20
|
-
install: 'git'
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: 'ssh-keygen',
|
|
24
|
-
command: 'ssh-keygen',
|
|
25
|
-
description: 'SSH key generation',
|
|
26
|
-
install: 'openssh'
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: 'gpg',
|
|
30
|
-
command: 'gpg',
|
|
31
|
-
description: 'GPG encryption and signing',
|
|
32
|
-
install: 'gpg'
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: 'curl',
|
|
36
|
-
command: 'curl',
|
|
37
|
-
description: 'Data transfer tool',
|
|
38
|
-
install: 'curl'
|
|
39
|
-
}
|
|
40
|
-
];
|
|
41
|
-
|
|
42
|
-
// Homebrew is required on macOS before installing other tools
|
|
43
|
-
const HOMEBREW_TOOL = {
|
|
44
|
-
name: 'brew',
|
|
45
|
-
command: 'brew',
|
|
46
|
-
description: 'Package manager (required)',
|
|
47
|
-
install: 'homebrew'
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Get the list of essential tools for the current platform.
|
|
52
|
-
* On macOS, Homebrew is included first since other tools depend on it.
|
|
53
|
-
* @returns {Array<object>} Array of tool definitions
|
|
54
|
-
*/
|
|
55
|
-
function getEssentialTools() {
|
|
56
|
-
const platform = osUtils.detect();
|
|
57
|
-
|
|
58
|
-
// On macOS, Homebrew must be installed first since all other tools use it
|
|
59
|
-
if (platform.type === 'macos') {
|
|
60
|
-
return [HOMEBREW_TOOL, ...CORE_TOOLS];
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// On other platforms, just use the core tools
|
|
64
|
-
return CORE_TOOLS;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Create readline interface for prompts
|
|
69
|
-
* @returns {readline.Interface}
|
|
70
|
-
*/
|
|
71
|
-
function createPrompt() {
|
|
72
|
-
return readline.createInterface({
|
|
73
|
-
input: process.stdin,
|
|
74
|
-
output: process.stdout
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Prompt user for confirmation
|
|
80
|
-
* @param {readline.Interface} rl - Readline interface
|
|
81
|
-
* @param {string} question - Question to ask
|
|
82
|
-
* @returns {Promise<boolean>}
|
|
83
|
-
*/
|
|
84
|
-
function confirm(rl, question) {
|
|
85
|
-
return new Promise(resolve => {
|
|
86
|
-
rl.question(`${question} (y/n): `, answer => {
|
|
87
|
-
resolve(answer.toLowerCase().startsWith('y'));
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Check which essential tools are missing
|
|
94
|
-
* @returns {Array<object>} Array of missing tools
|
|
95
|
-
*/
|
|
96
|
-
function checkMissingTools() {
|
|
97
|
-
const tools = getEssentialTools();
|
|
98
|
-
const missing = [];
|
|
99
|
-
for (const tool of tools) {
|
|
100
|
-
if (!shell.commandExists(tool.command)) {
|
|
101
|
-
missing.push(tool);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return missing;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Get all tool statuses
|
|
109
|
-
* @returns {Array<{ tool: object, installed: boolean }>}
|
|
110
|
-
*/
|
|
111
|
-
function getToolStatuses() {
|
|
112
|
-
const tools = getEssentialTools();
|
|
113
|
-
return tools.map(tool => ({
|
|
114
|
-
tool,
|
|
115
|
-
installed: shell.commandExists(tool.command)
|
|
116
|
-
}));
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Install a tool using the appropriate installer
|
|
121
|
-
* @param {object} tool - Tool definition
|
|
122
|
-
* @returns {Promise<boolean>} True if installation succeeded
|
|
123
|
-
*/
|
|
124
|
-
async function installTool(tool) {
|
|
125
|
-
try {
|
|
126
|
-
const installer = require(`../installs/${tool.install}`);
|
|
127
|
-
if (typeof installer.install !== 'function') {
|
|
128
|
-
console.error(` No install function found for ${tool.name}`);
|
|
129
|
-
return false;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
// Run the installer
|
|
133
|
-
await installer.install();
|
|
134
|
-
|
|
135
|
-
// Verify installation by checking if the command now exists
|
|
136
|
-
// This is more reliable than trusting return values from installers
|
|
137
|
-
const isNowInstalled = shell.commandExists(tool.command);
|
|
138
|
-
return isNowInstalled;
|
|
139
|
-
} catch (err) {
|
|
140
|
-
console.error(` Failed to install ${tool.name}: ${err.message}`);
|
|
141
|
-
return false;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Display tool status table
|
|
147
|
-
* @param {Array<{ tool: object, installed: boolean }>} statuses
|
|
148
|
-
*/
|
|
149
|
-
function displayToolStatus(statuses) {
|
|
150
|
-
console.log('\nEssential Tools:');
|
|
151
|
-
console.log('─'.repeat(50));
|
|
152
|
-
|
|
153
|
-
for (const { tool, installed } of statuses) {
|
|
154
|
-
const status = installed ? '✓ Installed' : '✗ Missing';
|
|
155
|
-
const statusColor = installed ? status : status;
|
|
156
|
-
console.log(` ${tool.name.padEnd(15)} ${statusColor.padEnd(15)} ${tool.description}`);
|
|
157
|
-
}
|
|
158
|
-
console.log('');
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Run the setup command
|
|
163
|
-
* @param {object} options - Command options
|
|
164
|
-
*/
|
|
165
|
-
async function runSetup(options) {
|
|
166
|
-
const platform = osUtils.detect();
|
|
167
|
-
|
|
168
|
-
console.log('\n=== DevUtils CLI Setup ===\n');
|
|
169
|
-
console.log(`Platform: ${platform.type}`);
|
|
170
|
-
console.log(`Package Manager: ${platform.packageManager || 'unknown'}`);
|
|
171
|
-
|
|
172
|
-
// Check tool statuses
|
|
173
|
-
const statuses = getToolStatuses();
|
|
174
|
-
displayToolStatus(statuses);
|
|
175
|
-
|
|
176
|
-
// Find missing tools
|
|
177
|
-
const missing = statuses.filter(s => !s.installed).map(s => s.tool);
|
|
178
|
-
|
|
179
|
-
if (missing.length === 0) {
|
|
180
|
-
console.log('All essential tools are already installed.\n');
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
console.log(`Missing ${missing.length} tool(s): ${missing.map(t => t.name).join(', ')}\n`);
|
|
185
|
-
|
|
186
|
-
// Confirm installation unless --force
|
|
187
|
-
let shouldInstall = options.force;
|
|
188
|
-
if (!shouldInstall) {
|
|
189
|
-
const rl = createPrompt();
|
|
190
|
-
shouldInstall = await confirm(rl, 'Install missing tools?');
|
|
191
|
-
rl.close();
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
if (!shouldInstall) {
|
|
195
|
-
console.log('Setup cancelled.\n');
|
|
196
|
-
return;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
// Install each missing tool
|
|
200
|
-
console.log('\nInstalling missing tools...\n');
|
|
201
|
-
|
|
202
|
-
let installed = 0;
|
|
203
|
-
let failed = 0;
|
|
204
|
-
|
|
205
|
-
for (const tool of missing) {
|
|
206
|
-
console.log(`Installing ${tool.name}...`);
|
|
207
|
-
const success = await installTool(tool);
|
|
208
|
-
if (success) {
|
|
209
|
-
installed++;
|
|
210
|
-
console.log(` ${tool.name} installed successfully.\n`);
|
|
211
|
-
} else {
|
|
212
|
-
failed++;
|
|
213
|
-
console.log(` ${tool.name} installation failed.\n`);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
// Show final status
|
|
218
|
-
console.log('─'.repeat(50));
|
|
219
|
-
console.log(`\nSetup complete: ${installed} installed, ${failed} failed.\n`);
|
|
220
|
-
|
|
221
|
-
// Show updated status
|
|
222
|
-
if (installed > 0) {
|
|
223
|
-
const updatedStatuses = getToolStatuses();
|
|
224
|
-
displayToolStatus(updatedStatuses);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
// Create and configure the command
|
|
229
|
-
const setup = new Command('setup')
|
|
230
|
-
.description('Install essential tools required for DevUtils CLI')
|
|
231
|
-
.option('--force', 'Install without prompting')
|
|
232
|
-
.option('--check', 'Check tool status without installing')
|
|
233
|
-
.action(async (options) => {
|
|
234
|
-
if (options.check) {
|
|
235
|
-
const statuses = getToolStatuses();
|
|
236
|
-
displayToolStatus(statuses);
|
|
237
|
-
const missing = statuses.filter(s => !s.installed);
|
|
238
|
-
if (missing.length > 0) {
|
|
239
|
-
console.log(`Run 'dev setup' to install missing tools.\n`);
|
|
240
|
-
}
|
|
241
|
-
return;
|
|
242
|
-
}
|
|
243
|
-
await runSetup(options);
|
|
244
|
-
});
|
|
245
|
-
|
|
246
|
-
module.exports = setup;
|
package/src/completion.js
DELETED
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @fileoverview Tab completion handler for the dev CLI.
|
|
5
|
-
* Provides shell completion for bash, zsh, and fish.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
const fs = require('fs');
|
|
9
|
-
const path = require('path');
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Command completion definitions
|
|
13
|
-
* Maps parent commands to their available subcommands
|
|
14
|
-
*/
|
|
15
|
-
const COMMANDS = {
|
|
16
|
-
'': ['configure', 'status', 'identity', 'ignore', 'install', 'completion'],
|
|
17
|
-
'dev': ['configure', 'status', 'identity', 'ignore', 'install', 'completion'],
|
|
18
|
-
'identity': ['add', 'remove', 'link'],
|
|
19
|
-
'completion': ['install', 'uninstall']
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Command descriptions for enhanced completion (zsh/fish)
|
|
24
|
-
*/
|
|
25
|
-
const DESCRIPTIONS = {
|
|
26
|
-
'configure': 'Interactive configuration wizard',
|
|
27
|
-
'status': 'Display current configuration',
|
|
28
|
-
'identity': 'Manage identity profiles',
|
|
29
|
-
'ignore': 'Append patterns to .gitignore',
|
|
30
|
-
'install': 'Install development tools',
|
|
31
|
-
'completion': 'Manage shell completion',
|
|
32
|
-
'add': 'Add a new identity profile',
|
|
33
|
-
'remove': 'Remove an identity profile',
|
|
34
|
-
'link': 'Link identity to a source folder'
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Get available ignore technologies by scanning src/ignore directory
|
|
39
|
-
* @returns {string[]} Array of technology names
|
|
40
|
-
*/
|
|
41
|
-
function getIgnoreTechnologies() {
|
|
42
|
-
try {
|
|
43
|
-
const ignoreDir = path.join(__dirname, 'ignore');
|
|
44
|
-
if (!fs.existsSync(ignoreDir)) {
|
|
45
|
-
return [];
|
|
46
|
-
}
|
|
47
|
-
return fs.readdirSync(ignoreDir)
|
|
48
|
-
.filter(file => file.endsWith('.txt'))
|
|
49
|
-
.map(file => file.replace('.txt', ''));
|
|
50
|
-
} catch {
|
|
51
|
-
return [];
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Get available install scripts by scanning src/installs directory
|
|
57
|
-
* @returns {string[]} Array of install script names
|
|
58
|
-
*/
|
|
59
|
-
function getInstallScripts() {
|
|
60
|
-
try {
|
|
61
|
-
const installsDir = path.join(__dirname, 'installs');
|
|
62
|
-
if (!fs.existsSync(installsDir)) {
|
|
63
|
-
return [];
|
|
64
|
-
}
|
|
65
|
-
return fs.readdirSync(installsDir)
|
|
66
|
-
.filter(file => file.endsWith('.js'))
|
|
67
|
-
.map(file => file.replace('.js', ''));
|
|
68
|
-
} catch {
|
|
69
|
-
return [];
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Parse completion environment variables
|
|
75
|
-
* @returns {object} Parsed environment with line, words, prev, etc.
|
|
76
|
-
*/
|
|
77
|
-
function parseEnv() {
|
|
78
|
-
const line = process.env.COMP_LINE || '';
|
|
79
|
-
const point = parseInt(process.env.COMP_POINT || line.length, 10);
|
|
80
|
-
const partial = line.slice(0, point);
|
|
81
|
-
const words = partial.split(/\s+/).filter(Boolean);
|
|
82
|
-
const lastPartial = partial.endsWith(' ') ? '' : (words[words.length - 1] || '');
|
|
83
|
-
const prev = words.length > 1 ? words[words.length - (partial.endsWith(' ') ? 1 : 2)] : '';
|
|
84
|
-
|
|
85
|
-
return {
|
|
86
|
-
line,
|
|
87
|
-
point,
|
|
88
|
-
words,
|
|
89
|
-
prev,
|
|
90
|
-
lastPartial,
|
|
91
|
-
wordCount: words.length
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Output completions in the format expected by shells
|
|
97
|
-
* @param {string[]|object[]} completions - Array of completion strings or objects with name/description
|
|
98
|
-
*/
|
|
99
|
-
function logCompletions(completions) {
|
|
100
|
-
completions.forEach(item => {
|
|
101
|
-
if (typeof item === 'string') {
|
|
102
|
-
console.log(item);
|
|
103
|
-
} else {
|
|
104
|
-
// For zsh/fish: name:description format
|
|
105
|
-
console.log(`${item.name}:${item.description || ''}`);
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Handle tab completion request
|
|
112
|
-
* Called when COMP_LINE environment variable is present
|
|
113
|
-
*/
|
|
114
|
-
function handleCompletion() {
|
|
115
|
-
const env = parseEnv();
|
|
116
|
-
let completions = [];
|
|
117
|
-
|
|
118
|
-
// Determine what completions to provide based on context
|
|
119
|
-
if (env.prev === 'ignore') {
|
|
120
|
-
completions = getIgnoreTechnologies();
|
|
121
|
-
} else if (env.prev === 'install') {
|
|
122
|
-
completions = getInstallScripts();
|
|
123
|
-
} else if (COMMANDS[env.prev]) {
|
|
124
|
-
completions = COMMANDS[env.prev];
|
|
125
|
-
} else if (env.wordCount <= 2) {
|
|
126
|
-
completions = COMMANDS['dev'];
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// Filter completions by partial match
|
|
130
|
-
if (env.lastPartial && !env.line.endsWith(' ')) {
|
|
131
|
-
completions = completions.filter(c =>
|
|
132
|
-
c.toLowerCase().startsWith(env.lastPartial.toLowerCase())
|
|
133
|
-
);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
// Add descriptions if available
|
|
137
|
-
const withDescriptions = completions.map(name => ({
|
|
138
|
-
name,
|
|
139
|
-
description: DESCRIPTIONS[name] || ''
|
|
140
|
-
}));
|
|
141
|
-
|
|
142
|
-
logCompletions(withDescriptions);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* Install shell tab completion
|
|
147
|
-
* Adds completion script to user's shell configuration
|
|
148
|
-
*/
|
|
149
|
-
async function installCompletion() {
|
|
150
|
-
const shell = process.env.SHELL || '';
|
|
151
|
-
const home = process.env.HOME || process.env.USERPROFILE;
|
|
152
|
-
|
|
153
|
-
let rcFile;
|
|
154
|
-
let completionScript;
|
|
155
|
-
|
|
156
|
-
if (shell.includes('zsh')) {
|
|
157
|
-
rcFile = path.join(home, '.zshrc');
|
|
158
|
-
completionScript = `
|
|
159
|
-
# @fredlackey/devutils completion
|
|
160
|
-
_dev_completions() {
|
|
161
|
-
local IFS=$'\\n'
|
|
162
|
-
COMPREPLY=($(COMP_LINE="$COMP_LINE" COMP_POINT="$COMP_POINT" dev))
|
|
163
|
-
}
|
|
164
|
-
complete -F _dev_completions dev
|
|
165
|
-
`;
|
|
166
|
-
} else if (shell.includes('bash')) {
|
|
167
|
-
rcFile = path.join(home, '.bashrc');
|
|
168
|
-
completionScript = `
|
|
169
|
-
# @fredlackey/devutils completion
|
|
170
|
-
_dev_completions() {
|
|
171
|
-
local IFS=$'\\n'
|
|
172
|
-
COMPREPLY=($(COMP_LINE="$COMP_LINE" COMP_POINT="$COMP_POINT" dev))
|
|
173
|
-
}
|
|
174
|
-
complete -F _dev_completions dev
|
|
175
|
-
`;
|
|
176
|
-
} else if (shell.includes('fish')) {
|
|
177
|
-
rcFile = path.join(home, '.config', 'fish', 'config.fish');
|
|
178
|
-
completionScript = `
|
|
179
|
-
# @fredlackey/devutils completion
|
|
180
|
-
complete -c dev -f -a "(COMP_LINE=(commandline) COMP_POINT=(commandline -C) dev)"
|
|
181
|
-
`;
|
|
182
|
-
} else {
|
|
183
|
-
console.error('Unsupported shell. Supported shells: bash, zsh, fish');
|
|
184
|
-
process.exit(1);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
try {
|
|
188
|
-
// Check if completion is already installed
|
|
189
|
-
if (fs.existsSync(rcFile)) {
|
|
190
|
-
const content = fs.readFileSync(rcFile, 'utf8');
|
|
191
|
-
if (content.includes('@fredlackey/devutils completion')) {
|
|
192
|
-
console.log('Tab completion is already installed.');
|
|
193
|
-
return;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// Append completion script
|
|
198
|
-
fs.appendFileSync(rcFile, '\n' + completionScript);
|
|
199
|
-
console.log(`Tab completion installed in ${rcFile}`);
|
|
200
|
-
console.log('Restart your shell or run:');
|
|
201
|
-
console.log(` source ${rcFile}`);
|
|
202
|
-
} catch (err) {
|
|
203
|
-
console.error('Failed to install completion:', err.message);
|
|
204
|
-
process.exit(1);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Uninstall shell tab completion
|
|
210
|
-
* Removes completion script from user's shell configuration
|
|
211
|
-
*/
|
|
212
|
-
async function uninstallCompletion() {
|
|
213
|
-
const shell = process.env.SHELL || '';
|
|
214
|
-
const home = process.env.HOME || process.env.USERPROFILE;
|
|
215
|
-
|
|
216
|
-
let rcFile;
|
|
217
|
-
if (shell.includes('zsh')) {
|
|
218
|
-
rcFile = path.join(home, '.zshrc');
|
|
219
|
-
} else if (shell.includes('bash')) {
|
|
220
|
-
rcFile = path.join(home, '.bashrc');
|
|
221
|
-
} else if (shell.includes('fish')) {
|
|
222
|
-
rcFile = path.join(home, '.config', 'fish', 'config.fish');
|
|
223
|
-
} else {
|
|
224
|
-
console.error('Unsupported shell. Supported shells: bash, zsh, fish');
|
|
225
|
-
process.exit(1);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
try {
|
|
229
|
-
if (!fs.existsSync(rcFile)) {
|
|
230
|
-
console.log('Shell configuration file not found.');
|
|
231
|
-
return;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
let content = fs.readFileSync(rcFile, 'utf8');
|
|
235
|
-
|
|
236
|
-
// Remove completion block
|
|
237
|
-
const startMarker = '# @fredlackey/devutils completion';
|
|
238
|
-
if (!content.includes(startMarker)) {
|
|
239
|
-
console.log('Tab completion is not installed.');
|
|
240
|
-
return;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
// Remove the completion section (handles multi-line blocks)
|
|
244
|
-
const lines = content.split('\n');
|
|
245
|
-
const filteredLines = [];
|
|
246
|
-
let inCompletionBlock = false;
|
|
247
|
-
let braceCount = 0;
|
|
248
|
-
|
|
249
|
-
for (const line of lines) {
|
|
250
|
-
if (line.includes(startMarker)) {
|
|
251
|
-
inCompletionBlock = true;
|
|
252
|
-
continue;
|
|
253
|
-
}
|
|
254
|
-
if (inCompletionBlock) {
|
|
255
|
-
if (line.includes('{')) braceCount++;
|
|
256
|
-
if (line.includes('}')) braceCount--;
|
|
257
|
-
if (line.includes('complete') && braceCount === 0) {
|
|
258
|
-
inCompletionBlock = false;
|
|
259
|
-
continue;
|
|
260
|
-
}
|
|
261
|
-
if (braceCount === 0 && line.trim() === '') {
|
|
262
|
-
inCompletionBlock = false;
|
|
263
|
-
}
|
|
264
|
-
continue;
|
|
265
|
-
}
|
|
266
|
-
filteredLines.push(line);
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
fs.writeFileSync(rcFile, filteredLines.join('\n'));
|
|
270
|
-
console.log(`Tab completion removed from ${rcFile}`);
|
|
271
|
-
console.log('Restart your shell for changes to take effect.');
|
|
272
|
-
} catch (err) {
|
|
273
|
-
console.error('Failed to uninstall completion:', err.message);
|
|
274
|
-
process.exit(1);
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
module.exports = {
|
|
279
|
-
handleCompletion,
|
|
280
|
-
installCompletion,
|
|
281
|
-
uninstallCompletion,
|
|
282
|
-
getIgnoreTechnologies,
|
|
283
|
-
getInstallScripts
|
|
284
|
-
};
|
package/src/constants.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
const INSTALLS = [
|
|
2
|
-
{
|
|
3
|
-
name: "Debian",
|
|
4
|
-
environment: "debian",
|
|
5
|
-
description: "Installs generic to any Debian-based Linux distribution.",
|
|
6
|
-
packages: [
|
|
7
|
-
{
|
|
8
|
-
name: "Git",
|
|
9
|
-
description: "Git command line tool.",
|
|
10
|
-
command: "apt-get install -y git",
|
|
11
|
-
priority: 1,
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
name: "Debian WSL",
|
|
17
|
-
environment: "debian_wsl",
|
|
18
|
-
description: "Installs generic to any Debian-based Linux distribution running in WSL.",
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
name: "Ubuntu",
|
|
22
|
-
environment: "ubuntu",
|
|
23
|
-
description: "Installs generic to any Ubuntu-based Linux distribution.",
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
name: "Ubuntu WSL",
|
|
27
|
-
environment: "ubuntu_wsl",
|
|
28
|
-
description: "Installs generic to any Ubuntu-based Linux distribution running in WSL.",
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
name: "macOS",
|
|
32
|
-
environment: "macos",
|
|
33
|
-
description: "Installs for macOS systems.",
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
name: "Windows",
|
|
37
|
-
environment: "windows",
|
|
38
|
-
description: "Installs for Windows systems.",
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
name: "Git Bash",
|
|
42
|
-
environment: "gitbash",
|
|
43
|
-
description: "Installs within the Git Bash environment.",
|
|
44
|
-
},
|
|
45
|
-
]
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# ##############################################################################
|
|
2
|
-
# CLAUDE CODE
|
|
3
|
-
# Generated by DevUtils CLI (https://github.com/fredlackey/devutils-cli)
|
|
4
|
-
# ##############################################################################
|
|
5
|
-
|
|
6
|
-
# Claude Code local files
|
|
7
|
-
.claude/
|
|
8
|
-
.claude-context
|
|
9
|
-
.claude_memory/
|
|
10
|
-
claude-output/
|
package/src/ignore/docker.txt
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# ##############################################################################
|
|
2
|
-
# DOCKER
|
|
3
|
-
# Generated by DevUtils CLI (https://github.com/fredlackey/devutils-cli)
|
|
4
|
-
# ##############################################################################
|
|
5
|
-
|
|
6
|
-
# Docker configuration
|
|
7
|
-
.docker/
|
|
8
|
-
docker-compose.override.yml
|
|
9
|
-
docker-compose.local.yml
|
|
10
|
-
.dockerignore
|
|
11
|
-
|
|
12
|
-
# Docker data volumes
|
|
13
|
-
data/
|
|
14
|
-
volumes/
|
|
15
|
-
|
|
16
|
-
# Docker environment files
|
|
17
|
-
.env.docker
|
|
18
|
-
.env.docker.local
|
package/src/ignore/linux.txt
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# ##############################################################################
|
|
2
|
-
# LINUX
|
|
3
|
-
# Generated by DevUtils CLI (https://github.com/fredlackey/devutils-cli)
|
|
4
|
-
# ##############################################################################
|
|
5
|
-
|
|
6
|
-
# Backup files
|
|
7
|
-
*~
|
|
8
|
-
*.bak
|
|
9
|
-
*.backup
|
|
10
|
-
|
|
11
|
-
# Swap files
|
|
12
|
-
*.swp
|
|
13
|
-
*.swo
|
|
14
|
-
|
|
15
|
-
# Temporary files
|
|
16
|
-
.fuse_hidden*
|
|
17
|
-
.nfs*
|
|
18
|
-
|
|
19
|
-
# Trash
|
|
20
|
-
.Trash-*
|
|
21
|
-
|
|
22
|
-
# KDE directory preferences
|
|
23
|
-
.directory
|
package/src/ignore/macos.txt
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# ##############################################################################
|
|
2
|
-
# MACOS
|
|
3
|
-
# Generated by DevUtils CLI (https://github.com/fredlackey/devutils-cli)
|
|
4
|
-
# ##############################################################################
|
|
5
|
-
|
|
6
|
-
# Finder metadata
|
|
7
|
-
.DS_Store
|
|
8
|
-
.AppleDouble
|
|
9
|
-
.LSOverride
|
|
10
|
-
|
|
11
|
-
# Icon must end with two \r
|
|
12
|
-
Icon
|
|
13
|
-
|
|
14
|
-
# Thumbnails
|
|
15
|
-
._*
|
|
16
|
-
|
|
17
|
-
# Volume files
|
|
18
|
-
.DocumentRevisions-V100
|
|
19
|
-
.fseventsd
|
|
20
|
-
.Spotlight-V100
|
|
21
|
-
.TemporaryItems
|
|
22
|
-
.Trashes
|
|
23
|
-
.VolumeIcon.icns
|
|
24
|
-
.com.apple.timemachine.donotpresent
|
|
25
|
-
|
|
26
|
-
# AFP share files
|
|
27
|
-
.AppleDB
|
|
28
|
-
.AppleDesktop
|
|
29
|
-
Network Trash Folder
|
|
30
|
-
Temporary Items
|
|
31
|
-
.apdisk
|
|
32
|
-
|
|
33
|
-
# Xcode
|
|
34
|
-
xcuserdata/
|
|
35
|
-
*.xcscmblueprint
|
|
36
|
-
*.xccheckout
|