@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,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * @fileoverview Install packages via Homebrew.
5
+ * @module scripts/brewi
6
+ */
7
+
8
+ /**
9
+ * Installs the specified package(s) using Homebrew.
10
+ * Shorthand for `brew install`.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - Package name to install
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement brew install
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 Uninstall packages via Homebrew.
5
+ * @module scripts/brewr
6
+ */
7
+
8
+ /**
9
+ * Uninstalls the specified package(s) using Homebrew.
10
+ * Shorthand for `brew uninstall`.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - Package name to uninstall
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement brew uninstall
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 for packages via Homebrew.
5
+ * @module scripts/brews
6
+ */
7
+
8
+ /**
9
+ * Searches for packages matching the specified term using Homebrew.
10
+ * Shorthand for `brew search`.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - Search term
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement brew 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 Update, upgrade, and cleanup Homebrew.
5
+ * @module scripts/brewu
6
+ */
7
+
8
+ /**
9
+ * Performs a full Homebrew maintenance cycle:
10
+ * update (fetch latest formulae), upgrade (update packages), and cleanup.
11
+ *
12
+ * @param {string[]} args - Command line arguments (unused)
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function main(args) {
16
+ // TODO: Implement brew update/upgrade/cleanup
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 Clear the terminal screen.
5
+ * @module scripts/c
6
+ */
7
+
8
+ /**
9
+ * Clears the terminal screen by outputting the appropriate
10
+ * escape sequences for the current platform.
11
+ *
12
+ * @param {string[]} args - Command line arguments (unused)
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function main(args) {
16
+ // TODO: Implement terminal clear
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 Curl JSON endpoint with pretty output.
5
+ * @module scripts/ccurl
6
+ */
7
+
8
+ /**
9
+ * Fetches a URL expecting JSON response and pretty-prints
10
+ * the output using jq-style formatting.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - URL to fetch
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement JSON curl with pretty print
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 Add certbot renewal cron job.
5
+ * @module scripts/certbot-crontab-init
6
+ */
7
+
8
+ /**
9
+ * Adds a cron job to automatically renew SSL certificates
10
+ * using certbot. Checks if cron service is running and starts
11
+ * it if necessary.
12
+ *
13
+ * @param {string[]} args - Command line arguments (unused)
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement certbot cron setup
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 Install SSL certificates via certbot.
5
+ * @module scripts/certbot-init
6
+ */
7
+
8
+ /**
9
+ * Installs SSL certificates for the specified domains using
10
+ * certbot with nginx integration. Installs certbot if not present.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - -d/--domain: Domain name(s) for certificate
14
+ * @param {string} args.1 - -e/--email: Email for Let's Encrypt registration
15
+ * @returns {Promise<void>}
16
+ */
17
+ async function main(args) {
18
+ // TODO: Implement certbot SSL setup
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 Clear bash command history.
5
+ * @module scripts/ch
6
+ */
7
+
8
+ /**
9
+ * Clears the bash command history by truncating the history file
10
+ * and clearing the in-memory history.
11
+ *
12
+ * @param {string[]} args - Command line arguments (unused)
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function main(args) {
16
+ // TODO: Implement history clear
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 Launch Claude CLI skipping permission checks.
5
+ * @module scripts/claude-danger
6
+ */
7
+
8
+ /**
9
+ * Launches the Claude CLI with the --dangerously-skip-permissions
10
+ * flag, bypassing permission prompts. Use with caution.
11
+ *
12
+ * @param {string[]} args - Command line arguments to pass to Claude
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function main(args) {
16
+ // TODO: Implement Claude CLI launcher
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 Remove node_modules and bower_components recursively.
5
+ * @module scripts/clean-dev
6
+ */
7
+
8
+ /**
9
+ * Recursively finds and removes all node_modules and bower_components
10
+ * directories to free up disk space.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} [args.0] - Optional path to clean (defaults to current directory)
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement recursive dev folder cleanup
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 Flush the DNS cache.
5
+ * @module scripts/clear-dns-cache
6
+ */
7
+
8
+ /**
9
+ * Clears the system's DNS cache to force fresh DNS lookups.
10
+ * Uses platform-specific commands for each operating system.
11
+ *
12
+ * @param {string[]} args - Command line arguments (unused)
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function main(args) {
16
+ // TODO: Implement DNS cache flush
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 Clone a repository and install dependencies.
5
+ * @module scripts/clone
6
+ */
7
+
8
+ /**
9
+ * Clones a git repository and automatically installs dependencies
10
+ * if a package.json is found (using npm, yarn, or pnpm).
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - Repository URL to clone
14
+ * @param {string} [args.1] - Optional target directory name
15
+ * @returns {Promise<void>}
16
+ */
17
+ async function main(args) {
18
+ // TODO: Implement clone with dependency install
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 Open all subdirectories in VS Code.
5
+ * @module scripts/code-all
6
+ */
7
+
8
+ /**
9
+ * Opens each immediate subdirectory of the current directory
10
+ * as a separate VS Code window.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} [args.0] - Optional path (defaults to current directory)
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement VS Code multi-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 Count only files in current directory.
5
+ * @module scripts/count-files
6
+ */
7
+
8
+ /**
9
+ * Counts and displays the number of files (not directories) in the
10
+ * current or specified directory.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} [args.0] - Optional path to count (defaults to current directory)
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement file counting
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 Count only folders in current directory.
5
+ * @module scripts/count-folders
6
+ */
7
+
8
+ /**
9
+ * Counts and displays the number of directories (not files) in the
10
+ * current or specified directory.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} [args.0] - Optional path to count (defaults to current directory)
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement folder counting
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 Count files and folders in current directory.
5
+ * @module scripts/count
6
+ */
7
+
8
+ /**
9
+ * Counts and displays the number of files and folders in the
10
+ * current or specified directory.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} [args.0] - Optional path to count (defaults to current directory)
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement file/folder counting
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 Navigate to the Desktop directory.
5
+ * @module scripts/d
6
+ */
7
+
8
+ /**
9
+ * Changes the current working directory to the user's Desktop folder.
10
+ * Outputs the path for use with shell integration (e.g., cd $(d)).
11
+ *
12
+ * @param {string[]} args - Command line arguments (unused)
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function main(args) {
16
+ // TODO: Implement Desktop navigation
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 Convert file to base64 data URI.
5
+ * @module scripts/datauri
6
+ */
7
+
8
+ /**
9
+ * Converts a file to a base64-encoded data URI string.
10
+ * Automatically detects the MIME type from the file.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - Path to the file to convert
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement data URI conversion
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 Delete files matching a pattern.
5
+ * @module scripts/delete-files
6
+ */
7
+
8
+ /**
9
+ * Finds and deletes files matching the specified pattern.
10
+ * Defaults to removing .DS_Store files if no pattern is provided.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} [args.0] - Glob pattern to match (defaults to "*.DS_Store")
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement pattern-based file deletion
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 Remove all Docker containers, images, and volumes.
5
+ * @module scripts/docker-clean
6
+ */
7
+
8
+ /**
9
+ * Removes ALL Docker containers, images, and volumes after
10
+ * prompting for confirmation. This action cannot be undone.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} [args.0] - Pass "--force" to skip confirmation
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement Docker cleanup
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 Display running Docker containers in formatted table.
5
+ * @module scripts/dp
6
+ */
7
+
8
+ /**
9
+ * Displays a formatted table of running Docker containers
10
+ * showing ID, name, and port mappings.
11
+ *
12
+ * @param {string[]} args - Command line arguments (unused)
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function main(args) {
16
+ // TODO: Implement Docker container listing
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 a file in vim editor.
5
+ * @module scripts/e
6
+ */
7
+
8
+ /**
9
+ * Opens the specified file(s) in the vim editor.
10
+ * Passes all arguments directly to vim.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - File path to open in vim
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement vim launcher
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 Empty all trash and system logs.
5
+ * @module scripts/empty-trash
6
+ */
7
+
8
+ /**
9
+ * Empties the system trash, mounted volume trash, and clears
10
+ * system logs to free up disk space.
11
+ *
12
+ * @param {string[]} args - Command line arguments (unused)
13
+ * @returns {Promise<void>}
14
+ */
15
+ async function main(args) {
16
+ // TODO: Implement trash emptying
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 Execute vim macro on multiple files.
5
+ * @module scripts/evm
6
+ */
7
+
8
+ /**
9
+ * Executes a vim macro (stored in register 'q') on one or more files.
10
+ * Optionally repeats the macro multiple times per file.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - File path(s) to process
14
+ * @param {string} [args.last] - Number of times to run macro (default: 1)
15
+ * @returns {Promise<void>}
16
+ */
17
+ async function main(args) {
18
+ // TODO: Implement vim macro execution
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 Clone all repositories from a GitHub organization.
5
+ * @module scripts/fetch-github-repos
6
+ */
7
+
8
+ /**
9
+ * Fetches the list of repositories from a GitHub organization
10
+ * and clones each one into the specified destination folder.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - GitHub organization name
14
+ * @param {string} args.1 - Destination folder path
15
+ * @returns {Promise<void>}
16
+ */
17
+ async function main(args) {
18
+ // TODO: Implement GitHub org repo fetcher
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 all videos from a YouTube channel.
5
+ * @module scripts/get-channel
6
+ */
7
+
8
+ /**
9
+ * Downloads all videos from a YouTube channel using yt-dlp.
10
+ * Names files with upload date prefix for organization.
11
+ *
12
+ * @param {string[]} args - Command line arguments
13
+ * @param {string} args.0 - YouTube channel name or URL
14
+ * @returns {Promise<void>}
15
+ */
16
+ async function main(args) {
17
+ // TODO: Implement channel download
18
+ }
19
+
20
+ module.exports = { main };
21
+
22
+ if (require.main === module) {
23
+ main(process.argv.slice(2));
24
+ }