@fredlackey/devutils 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/README.md +156 -0
  2. package/bin/dev.js +16 -0
  3. package/files/README.md +0 -0
  4. package/files/claude/.claude/commands/setup-context.md +3 -0
  5. package/files/monorepos/_archive/README.md +36 -0
  6. package/files/monorepos/_legacy/README.md +36 -0
  7. package/files/monorepos/ai-docs/README.md +33 -0
  8. package/files/monorepos/apps/README.md +24 -0
  9. package/files/monorepos/docs/README.md +40 -0
  10. package/files/monorepos/packages/README.md +25 -0
  11. package/files/monorepos/research/README.md +29 -0
  12. package/files/monorepos/scripts/README.md +24 -0
  13. package/package.json +39 -0
  14. package/src/cli.js +68 -0
  15. package/src/commands/README.md +41 -0
  16. package/src/commands/configure.js +199 -0
  17. package/src/commands/identity.js +1630 -0
  18. package/src/commands/ignore.js +247 -0
  19. package/src/commands/install.js +173 -0
  20. package/src/commands/setup.js +212 -0
  21. package/src/commands/status.js +223 -0
  22. package/src/completion.js +284 -0
  23. package/src/constants.js +45 -0
  24. package/src/ignore/claude-code.txt +10 -0
  25. package/src/ignore/docker.txt +18 -0
  26. package/src/ignore/linux.txt +23 -0
  27. package/src/ignore/macos.txt +36 -0
  28. package/src/ignore/node.txt +55 -0
  29. package/src/ignore/terraform.txt +37 -0
  30. package/src/ignore/vscode.txt +18 -0
  31. package/src/ignore/windows.txt +35 -0
  32. package/src/index.js +0 -0
  33. package/src/installs/README.md +399 -0
  34. package/src/installs/adobe-creative-cloud.js +44 -0
  35. package/src/installs/appcleaner.js +44 -0
  36. package/src/installs/atomicparsley.js +44 -0
  37. package/src/installs/aws-cli.js +44 -0
  38. package/src/installs/balena-etcher.js +44 -0
  39. package/src/installs/bambu-studio.js +44 -0
  40. package/src/installs/bash-completion.js +44 -0
  41. package/src/installs/bash.js +44 -0
  42. package/src/installs/beyond-compare.js +44 -0
  43. package/src/installs/build-essential.js +44 -0
  44. package/src/installs/caffeine.js +44 -0
  45. package/src/installs/camtasia.js +44 -0
  46. package/src/installs/chatgpt.js +44 -0
  47. package/src/installs/chrome-canary.js +44 -0
  48. package/src/installs/chromium.js +44 -0
  49. package/src/installs/claude-code.js +44 -0
  50. package/src/installs/curl.js +44 -0
  51. package/src/installs/cursor.js +44 -0
  52. package/src/installs/dbschema.js +44 -0
  53. package/src/installs/docker.js +44 -0
  54. package/src/installs/drawio.js +44 -0
  55. package/src/installs/elmedia-player.js +44 -0
  56. package/src/installs/ffmpeg.js +44 -0
  57. package/src/installs/gemini-cli.js +44 -0
  58. package/src/installs/git.js +44 -0
  59. package/src/installs/gitego.js +44 -0
  60. package/src/installs/go.js +44 -0
  61. package/src/installs/google-chrome.js +44 -0
  62. package/src/installs/gpg.js +141 -0
  63. package/src/installs/homebrew.js +44 -0
  64. package/src/installs/imageoptim.js +44 -0
  65. package/src/installs/jq.js +44 -0
  66. package/src/installs/keyboard-maestro.js +44 -0
  67. package/src/installs/latex.js +44 -0
  68. package/src/installs/lftp.js +44 -0
  69. package/src/installs/messenger.js +44 -0
  70. package/src/installs/microsoft-office.js +44 -0
  71. package/src/installs/microsoft-teams.js +44 -0
  72. package/src/installs/node.js +44 -0
  73. package/src/installs/nordpass.js +44 -0
  74. package/src/installs/nvm.js +44 -0
  75. package/src/installs/openssh.js +134 -0
  76. package/src/installs/pandoc.js +44 -0
  77. package/src/installs/pinentry.js +44 -0
  78. package/src/installs/pngyu.js +44 -0
  79. package/src/installs/postman.js +44 -0
  80. package/src/installs/safari-tech-preview.js +44 -0
  81. package/src/installs/sfnt2woff.js +44 -0
  82. package/src/installs/shellcheck.js +44 -0
  83. package/src/installs/slack.js +44 -0
  84. package/src/installs/snagit.js +44 -0
  85. package/src/installs/spotify.js +44 -0
  86. package/src/installs/studio-3t.js +44 -0
  87. package/src/installs/sublime-text.js +44 -0
  88. package/src/installs/superwhisper.js +44 -0
  89. package/src/installs/tailscale.js +44 -0
  90. package/src/installs/termius.js +44 -0
  91. package/src/installs/terraform.js +44 -0
  92. package/src/installs/tidal.js +44 -0
  93. package/src/installs/tmux.js +44 -0
  94. package/src/installs/tree.js +44 -0
  95. package/src/installs/vim.js +44 -0
  96. package/src/installs/vlc.js +44 -0
  97. package/src/installs/vscode.js +44 -0
  98. package/src/installs/whatsapp.js +44 -0
  99. package/src/installs/woff2.js +44 -0
  100. package/src/installs/xcode.js +44 -0
  101. package/src/installs/yarn.js +44 -0
  102. package/src/installs/yq.js +44 -0
  103. package/src/installs/yt-dlp.js +44 -0
  104. package/src/installs/zoom.js +44 -0
  105. package/src/scripts/README.md +95 -0
  106. package/src/scripts/afk.js +23 -0
  107. package/src/scripts/backup-all.js +24 -0
  108. package/src/scripts/backup-source.js +24 -0
  109. package/src/scripts/brewd.js +23 -0
  110. package/src/scripts/brewi.js +24 -0
  111. package/src/scripts/brewr.js +24 -0
  112. package/src/scripts/brews.js +24 -0
  113. package/src/scripts/brewu.js +23 -0
  114. package/src/scripts/c.js +23 -0
  115. package/src/scripts/ccurl.js +24 -0
  116. package/src/scripts/certbot-crontab-init.js +24 -0
  117. package/src/scripts/certbot-init.js +25 -0
  118. package/src/scripts/ch.js +23 -0
  119. package/src/scripts/claude-danger.js +23 -0
  120. package/src/scripts/clean-dev.js +24 -0
  121. package/src/scripts/clear-dns-cache.js +23 -0
  122. package/src/scripts/clone.js +25 -0
  123. package/src/scripts/code-all.js +24 -0
  124. package/src/scripts/count-files.js +24 -0
  125. package/src/scripts/count-folders.js +24 -0
  126. package/src/scripts/count.js +24 -0
  127. package/src/scripts/d.js +23 -0
  128. package/src/scripts/datauri.js +24 -0
  129. package/src/scripts/delete-files.js +24 -0
  130. package/src/scripts/docker-clean.js +24 -0
  131. package/src/scripts/dp.js +23 -0
  132. package/src/scripts/e.js +24 -0
  133. package/src/scripts/empty-trash.js +23 -0
  134. package/src/scripts/evm.js +25 -0
  135. package/src/scripts/fetch-github-repos.js +25 -0
  136. package/src/scripts/get-channel.js +24 -0
  137. package/src/scripts/get-course.js +26 -0
  138. package/src/scripts/get-dependencies.js +25 -0
  139. package/src/scripts/get-folder.js +26 -0
  140. package/src/scripts/get-tunes.js +25 -0
  141. package/src/scripts/get-video.js +24 -0
  142. package/src/scripts/git-backup.js +25 -0
  143. package/src/scripts/git-clone.js +25 -0
  144. package/src/scripts/git-pup.js +23 -0
  145. package/src/scripts/git-push.js +24 -0
  146. package/src/scripts/h.js +24 -0
  147. package/src/scripts/hide-desktop-icons.js +23 -0
  148. package/src/scripts/hide-hidden-files.js +23 -0
  149. package/src/scripts/install-dependencies-from.js +25 -0
  150. package/src/scripts/ips.js +26 -0
  151. package/src/scripts/iso.js +24 -0
  152. package/src/scripts/killni.js +23 -0
  153. package/src/scripts/ll.js +24 -0
  154. package/src/scripts/local-ip.js +23 -0
  155. package/src/scripts/m.js +24 -0
  156. package/src/scripts/map.js +24 -0
  157. package/src/scripts/mkd.js +24 -0
  158. package/src/scripts/ncu-update-all.js +24 -0
  159. package/src/scripts/nginx-init.js +28 -0
  160. package/src/scripts/npmi.js +23 -0
  161. package/src/scripts/o.js +24 -0
  162. package/src/scripts/org-by-date.js +24 -0
  163. package/src/scripts/p.js +23 -0
  164. package/src/scripts/packages.js +25 -0
  165. package/src/scripts/path.js +23 -0
  166. package/src/scripts/ports.js +23 -0
  167. package/src/scripts/q.js +23 -0
  168. package/src/scripts/refresh-files.js +26 -0
  169. package/src/scripts/remove-smaller-files.js +24 -0
  170. package/src/scripts/rename-files-with-date.js +25 -0
  171. package/src/scripts/resize-image.js +25 -0
  172. package/src/scripts/rm-safe.js +24 -0
  173. package/src/scripts/s.js +24 -0
  174. package/src/scripts/set-git-public.js +23 -0
  175. package/src/scripts/show-desktop-icons.js +23 -0
  176. package/src/scripts/show-hidden-files.js +23 -0
  177. package/src/scripts/tpa.js +23 -0
  178. package/src/scripts/tpo.js +23 -0
  179. package/src/scripts/u.js +23 -0
  180. package/src/scripts/vpush.js +23 -0
  181. package/src/scripts/y.js +23 -0
  182. package/src/utils/README.md +95 -0
  183. package/src/utils/common/apps.js +143 -0
  184. package/src/utils/common/display.js +157 -0
  185. package/src/utils/common/network.js +185 -0
  186. package/src/utils/common/os.js +202 -0
  187. package/src/utils/common/package-manager.js +301 -0
  188. package/src/utils/common/privileges.js +138 -0
  189. package/src/utils/common/shell.js +195 -0
  190. package/src/utils/macos/apps.js +228 -0
  191. package/src/utils/macos/brew.js +315 -0
  192. package/src/utils/ubuntu/apt.js +301 -0
  193. package/src/utils/ubuntu/desktop.js +292 -0
  194. package/src/utils/ubuntu/snap.js +302 -0
  195. package/src/utils/ubuntu/systemd.js +286 -0
  196. package/src/utils/windows/choco.js +327 -0
  197. package/src/utils/windows/env.js +246 -0
  198. package/src/utils/windows/registry.js +269 -0
  199. package/src/utils/windows/shell.js +240 -0
  200. package/src/utils/windows/winget.js +378 -0
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Download a Pluralsight course.
5
+ * @module scripts/get-course
6
+ */
7
+
8
+ /**
9
+ * Downloads a course from Pluralsight using yt-dlp with
10
+ * rate limiting and sleep intervals to avoid detection.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - Course name from URL
14
+ * @param {string} args.1 - Pluralsight username
15
+ * @param {string} args.2 - Pluralsight password
16
+ * @returns {Promise<void>}
17
+ */
18
+ async function main(args) {
19
+ // TODO: Implement Pluralsight course download
20
+ }
21
+
22
+ module.exports = { main };
23
+
24
+ if (require.main === module) {
25
+ main(process.argv.slice(2));
26
+ }
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Extract dependency names from package.json.
5
+ * @module scripts/get-dependencies
6
+ */
7
+
8
+ /**
9
+ * Extracts and lists dependency names from a package.json file.
10
+ * Can filter by dependency type (dependencies, devDependencies, etc.).
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - Path to package.json
14
+ * @param {string} [args.1] - Dependency type: "dev", "peer", "opt", or "dependencies"
15
+ * @returns {Promise<void>}
16
+ */
17
+ async function main(args) {
18
+ // TODO: Implement dependency extraction
19
+ }
20
+
21
+ module.exports = { main };
22
+
23
+ if (require.main === module) {
24
+ main(process.argv.slice(2));
25
+ }
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Copy files with size comparison using rsync/robocopy.
5
+ * @module scripts/get-folder
6
+ */
7
+
8
+ /**
9
+ * Copies files from source to target directory, skipping files that
10
+ * already exist in the target with the same size. Uses rsync on
11
+ * Unix systems and robocopy on Windows.
12
+ *
13
+ * @param {string[]} args - Command line arguments
14
+ * @param {string} args.0 - Source folder path
15
+ * @param {string} args.1 - Target folder path
16
+ * @returns {Promise<void>}
17
+ */
18
+ async function main(args) {
19
+ // TODO: Implement smart folder copy
20
+ }
21
+
22
+ module.exports = { main };
23
+
24
+ if (require.main === module) {
25
+ main(process.argv.slice(2));
26
+ }
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Download audio/video from URL using yt-dlp.
5
+ * @module scripts/get-tunes
6
+ */
7
+
8
+ /**
9
+ * Downloads audio and/or video from a URL using yt-dlp.
10
+ * Supports audio-only and video-only modes.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - URL to download from
14
+ * @param {string} [args.1] - Mode: "audio-only" or "video-only" (default: both)
15
+ * @returns {Promise<void>}
16
+ */
17
+ async function main(args) {
18
+ // TODO: Implement yt-dlp download
19
+ }
20
+
21
+ module.exports = { main };
22
+
23
+ if (require.main === module) {
24
+ main(process.argv.slice(2));
25
+ }
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Download video only from URL using yt-dlp.
5
+ * @module scripts/get-video
6
+ */
7
+
8
+ /**
9
+ * Downloads video (without audio) from a URL using yt-dlp.
10
+ * Outputs in MP4 format.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - URL to download from
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement video-only download
18
+ }
19
+
20
+ module.exports = { main };
21
+
22
+ if (require.main === module) {
23
+ main(process.argv.slice(2));
24
+ }
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Create timestamped zip backup of a git repository.
5
+ * @module scripts/git-backup
6
+ */
7
+
8
+ /**
9
+ * Creates a mirror clone of the repository and packages it into a
10
+ * timestamped zip file. Skips backup if no changes since last backup.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - Target folder for the backup
14
+ * @param {string} [args.1] - Optional SSH repo URL (defaults to current repo)
15
+ * @returns {Promise<void>}
16
+ */
17
+ async function main(args) {
18
+ // TODO: Implement git backup
19
+ }
20
+
21
+ module.exports = { main };
22
+
23
+ if (require.main === module) {
24
+ main(process.argv.slice(2));
25
+ }
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Copy repository structure without .git folder.
5
+ * @module scripts/git-clone
6
+ */
7
+
8
+ /**
9
+ * Copies a repository's file structure to the current directory
10
+ * excluding the .git folder, README, LICENSE, and dependency folders.
11
+ * Useful for using a repo as a template.
12
+ *
13
+ * @param {string[]} args - Command line arguments
14
+ * @param {string} args.0 - Source repository path
15
+ * @returns {Promise<void>}
16
+ */
17
+ async function main(args) {
18
+ // TODO: Implement structure-only clone
19
+ }
20
+
21
+ module.exports = { main };
22
+
23
+ if (require.main === module) {
24
+ main(process.argv.slice(2));
25
+ }
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Pull and update git submodules.
5
+ * @module scripts/git-pup
6
+ */
7
+
8
+ /**
9
+ * Performs a git pull and updates all submodules.
10
+ * Equivalent to: git pull && git submodule init && git submodule update
11
+ *
12
+ * @param {string[]} args - Command line arguments (unused)
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function main(args) {
16
+ // TODO: Implement pull with submodule update
17
+ }
18
+
19
+ module.exports = { main };
20
+
21
+ if (require.main === module) {
22
+ main(process.argv.slice(2));
23
+ }
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Add, commit, and push in one command.
5
+ * @module scripts/git-push
6
+ */
7
+
8
+ /**
9
+ * Stages all changes, commits with the provided message, and pushes
10
+ * to the current branch's remote.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - Commit message
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement add/commit/push workflow
18
+ }
19
+
20
+ module.exports = { main };
21
+
22
+ if (require.main === module) {
23
+ main(process.argv.slice(2));
24
+ }
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Search command history.
5
+ * @module scripts/h
6
+ */
7
+
8
+ /**
9
+ * Searches the shell command history for entries matching
10
+ * the specified pattern and displays results with highlighting.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - Search pattern
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement history search
18
+ }
19
+
20
+ module.exports = { main };
21
+
22
+ if (require.main === module) {
23
+ main(process.argv.slice(2));
24
+ }
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Hide desktop icons in Finder.
5
+ * @module scripts/hide-desktop-icons
6
+ */
7
+
8
+ /**
9
+ * Hides all icons on the macOS desktop by modifying Finder preferences
10
+ * and restarting Finder.
11
+ *
12
+ * @param {string[]} args - Command line arguments (unused)
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function main(args) {
16
+ // TODO: Implement desktop icon hiding
17
+ }
18
+
19
+ module.exports = { main };
20
+
21
+ if (require.main === module) {
22
+ main(process.argv.slice(2));
23
+ }
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Hide dotfiles in Finder.
5
+ * @module scripts/hide-hidden-files
6
+ */
7
+
8
+ /**
9
+ * Configures Finder to hide hidden files (dotfiles) and restarts Finder
10
+ * to apply the change.
11
+ *
12
+ * @param {string[]} args - Command line arguments (unused)
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function main(args) {
16
+ // TODO: Implement hidden file hiding
17
+ }
18
+
19
+ module.exports = { main };
20
+
21
+ if (require.main === module) {
22
+ main(process.argv.slice(2));
23
+ }
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Install dependencies from another package.json.
5
+ * @module scripts/install-dependencies-from
6
+ */
7
+
8
+ /**
9
+ * Reads dependencies from a specified package.json and installs them
10
+ * into the current project at their latest versions.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - Path to source package.json
14
+ * @param {string} [args.1] - Dependency type: "dev", "peer", "opt", or "dependencies"
15
+ * @returns {Promise<void>}
16
+ */
17
+ async function main(args) {
18
+ // TODO: Implement dependency installation from external package.json
19
+ }
20
+
21
+ module.exports = { main };
22
+
23
+ if (require.main === module) {
24
+ main(process.argv.slice(2));
25
+ }
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Scan local network for active IPs using nmap.
5
+ * @module scripts/ips
6
+ */
7
+
8
+ /**
9
+ * Scans the local network for active IP addresses using nmap.
10
+ * Defaults to scanning 192.168.1.0/24.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} [args.0] - Network base IP (default: "192.168.1.0")
14
+ * @param {string} [args.1] - Subnet mask bits (default: "24")
15
+ * @param {string} [args.2] - Options: "ip-only" or "no-sudo"
16
+ * @returns {Promise<void>}
17
+ */
18
+ async function main(args) {
19
+ // TODO: Implement network scanning
20
+ }
21
+
22
+ module.exports = { main };
23
+
24
+ if (require.main === module) {
25
+ main(process.argv.slice(2));
26
+ }
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Print ISO 8601 timestamp.
5
+ * @module scripts/iso
6
+ */
7
+
8
+ /**
9
+ * Outputs the current date and time in ISO 8601 format.
10
+ * Optionally uses a specific timezone.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} [args.0] - Optional timezone (e.g., "America/Los_Angeles")
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement ISO timestamp output
18
+ }
19
+
20
+ module.exports = { main };
21
+
22
+ if (require.main === module) {
23
+ main(process.argv.slice(2));
24
+ }
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Kill Node Inspector processes.
5
+ * @module scripts/killni
6
+ */
7
+
8
+ /**
9
+ * Finds and kills all Node.js processes running with the
10
+ * --debug-brk flag (Node Inspector).
11
+ *
12
+ * @param {string[]} args - Command line arguments (unused)
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function main(args) {
16
+ // TODO: Implement Node Inspector process killer
17
+ }
18
+
19
+ module.exports = { main };
20
+
21
+ if (require.main === module) {
22
+ main(process.argv.slice(2));
23
+ }
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Long listing of directory contents.
5
+ * @module scripts/ll
6
+ */
7
+
8
+ /**
9
+ * Displays a detailed listing of files and directories in the current
10
+ * or specified directory, similar to `ls -l`.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} [args.0] - Optional path to list (defaults to current directory)
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement long listing
18
+ }
19
+
20
+ module.exports = { main };
21
+
22
+ if (require.main === module) {
23
+ main(process.argv.slice(2));
24
+ }
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Get local network IP address.
5
+ * @module scripts/local-ip
6
+ */
7
+
8
+ /**
9
+ * Displays the local network IP address of the machine.
10
+ * Uses platform-specific commands to retrieve the IP.
11
+ *
12
+ * @param {string[]} args - Command line arguments (unused)
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function main(args) {
16
+ // TODO: Implement local IP display
17
+ }
18
+
19
+ module.exports = { main };
20
+
21
+ if (require.main === module) {
22
+ main(process.argv.slice(2));
23
+ }
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Open man pages for a command.
5
+ * @module scripts/m
6
+ */
7
+
8
+ /**
9
+ * Displays the manual page for the specified command.
10
+ * Wrapper around the system `man` command.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - Command name to look up in man pages
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement man page viewer
18
+ }
19
+
20
+ module.exports = { main };
21
+
22
+ if (require.main === module) {
23
+ main(process.argv.slice(2));
24
+ }
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Execute a command for each line of input.
5
+ * @module scripts/map
6
+ */
7
+
8
+ /**
9
+ * Reads lines from stdin and executes the specified command
10
+ * for each line, similar to `xargs -n1`.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - Command to execute for each input line
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement xargs-like mapping
18
+ }
19
+
20
+ module.exports = { main };
21
+
22
+ if (require.main === module) {
23
+ main(process.argv.slice(2));
24
+ }
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Create directory and navigate into it.
5
+ * @module scripts/mkd
6
+ */
7
+
8
+ /**
9
+ * Creates a new directory (including parent directories) and
10
+ * outputs the path for shell navigation (e.g., cd $(mkd mydir)).
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - Directory path to create
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement mkdir with cd
18
+ }
19
+
20
+ module.exports = { main };
21
+
22
+ if (require.main === module) {
23
+ main(process.argv.slice(2));
24
+ }
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Update all package.json dependencies using ncu.
5
+ * @module scripts/ncu-update-all
6
+ */
7
+
8
+ /**
9
+ * Finds all package.json files recursively and runs npm-check-updates
10
+ * to update all dependencies to their latest versions.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} [args.0] - Optional path to search (defaults to current directory)
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement recursive ncu update
18
+ }
19
+
20
+ module.exports = { main };
21
+
22
+ if (require.main === module) {
23
+ main(process.argv.slice(2));
24
+ }
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Create nginx configuration from template.
5
+ * @module scripts/nginx-init
6
+ */
7
+
8
+ /**
9
+ * Creates an nginx site configuration file from a template,
10
+ * replacing domain and host URL placeholders.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - -d/--domain: Domain name(s)
14
+ * @param {string} args.1 - -h/--host: Upstream host URL
15
+ * @param {string} args.2 - -f/--file: Output filename
16
+ * @param {string} [args.3] - -l/--link: Create symlink to sites-enabled
17
+ * @param {string} [args.4] - -a/--api: Use API template variant
18
+ * @returns {Promise<void>}
19
+ */
20
+ async function main(args) {
21
+ // TODO: Implement nginx config generation
22
+ }
23
+
24
+ module.exports = { main };
25
+
26
+ if (require.main === module) {
27
+ main(process.argv.slice(2));
28
+ }
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Remove node_modules and reinstall dependencies.
5
+ * @module scripts/npmi
6
+ */
7
+
8
+ /**
9
+ * Removes the node_modules folder and reinstalls all dependencies
10
+ * using the detected package manager (npm, yarn, or pnpm).
11
+ *
12
+ * @param {string[]} args - Command line arguments (unused)
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function main(args) {
16
+ // TODO: Implement clean reinstall
17
+ }
18
+
19
+ module.exports = { main };
20
+
21
+ if (require.main === module) {
22
+ main(process.argv.slice(2));
23
+ }
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Open file or folder in system file manager.
5
+ * @module scripts/o
6
+ */
7
+
8
+ /**
9
+ * Opens the specified file or folder in the system's default file manager.
10
+ * Uses platform-specific commands (macOS: open, Linux: xdg-open, Windows: explorer).
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} [args.0] - Path to open (defaults to current directory)
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement file manager open
18
+ }
19
+
20
+ module.exports = { main };
21
+
22
+ if (require.main === module) {
23
+ main(process.argv.slice(2));
24
+ }
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Organize files into date-based folder structure.
5
+ * @module scripts/org-by-date
6
+ */
7
+
8
+ /**
9
+ * Organizes files in the current directory into subdirectories
10
+ * based on dates found in their filenames (YYYY/MM/DD structure).
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} [args.0] - Optional path to organize (defaults to current directory)
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement date-based file organization
18
+ }
19
+
20
+ module.exports = { main };
21
+
22
+ if (require.main === module) {
23
+ main(process.argv.slice(2));
24
+ }