binary-collections 2.0.8 → 2.0.10

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 (250) hide show
  1. package/binaries/binary-executor.cjs +43 -0
  2. package/{bin → binaries}/clean-nodemodule +0 -0
  3. package/binaries/clean-nodemodule.cjs +43 -0
  4. package/binaries/clean-nodemodule.cmd +4 -0
  5. package/{bin → binaries}/clean-nodemodules +0 -0
  6. package/binaries/clean-nodemodules.cjs +43 -0
  7. package/binaries/clean-nodemodules.cmd +5 -0
  8. package/{bin → binaries}/dev +0 -0
  9. package/binaries/dev.cjs +43 -0
  10. package/{bin → binaries}/empty +0 -0
  11. package/binaries/empty.cjs +43 -0
  12. package/{bin → binaries}/git-reduce-size +0 -0
  13. package/binaries/git-reduce-size.cjs +43 -0
  14. package/binaries/javakill.cjs +43 -0
  15. package/{bin → binaries}/javakill.cmd +0 -0
  16. package/{bin → binaries}/kill-process +0 -0
  17. package/binaries/kill-process.cjs +43 -0
  18. package/binaries/nodekill.cjs +43 -0
  19. package/{bin → binaries}/nodekill.ps1 +0 -0
  20. package/{bin → binaries}/prod +0 -0
  21. package/binaries/prod.cjs +43 -0
  22. package/{bin → binaries}/rmfind +0 -0
  23. package/binaries/rmfind.cjs +43 -0
  24. package/{bin → binaries}/rmx +0 -0
  25. package/binaries/rmx.cjs +43 -0
  26. package/{bin → binaries}/submodule-token +0 -0
  27. package/binaries/submodule-token.cjs +43 -0
  28. package/docs-src/clean-github-actions-caches.md +26 -0
  29. package/docs-src/free-chatgpt.md +26 -0
  30. package/lib/binary-collections-config.cjs +3 -2
  31. package/lib/binary-collections-config.mjs +2 -2
  32. package/lib/binary-collections.cjs +452 -87
  33. package/lib/binary-collections.mjs +247 -8
  34. package/lib/changelog.cjs +328 -0
  35. package/lib/changelog.mjs +205 -0
  36. package/lib/chunk-4EWQC6GZ.mjs +382 -0
  37. package/lib/chunk-4ZI7BQKQ.mjs +381 -0
  38. package/lib/chunk-5J2BEPY5.mjs +83 -0
  39. package/lib/{chunk-4BYBVEYC.mjs → chunk-66PAU5PS.mjs} +5 -4
  40. package/lib/chunk-6HHJRKFB.mjs +59 -0
  41. package/lib/chunk-6S4NXESK.mjs +26 -0
  42. package/lib/{chunk-ZYAQRPUL.mjs → chunk-7YD7IPFF.mjs} +2 -2
  43. package/lib/{chunk-SH3L6HHV.mjs → chunk-A2JQXI5Z.mjs} +2 -2
  44. package/lib/{chunk-EGSSKVDH.mjs → chunk-A3VUZEJK.mjs} +1 -1
  45. package/lib/chunk-AGZYRDC2.mjs +323 -0
  46. package/lib/{chunk-VVEZVNIV.mjs → chunk-AI4CVPJ7.mjs} +6 -6
  47. package/lib/chunk-BDCHCWHD.mjs +136 -0
  48. package/lib/chunk-BEZKJ25G.mjs +140 -0
  49. package/lib/chunk-DI5MDPSN.mjs +386 -0
  50. package/lib/{chunk-ONIBBBQ3.mjs → chunk-E6FDDAOO.mjs} +4 -3
  51. package/lib/chunk-FKI7IEB5.mjs +172 -0
  52. package/lib/chunk-GJTGHXRA.mjs +356 -0
  53. package/lib/{chunk-YV7DO3YV.mjs → chunk-HLGOWBEO.mjs} +1 -1
  54. package/lib/chunk-HMRMTYZM.mjs +40 -0
  55. package/lib/chunk-HN52G2YL.mjs +305 -0
  56. package/lib/chunk-HO6GHCOB.mjs +385 -0
  57. package/lib/chunk-LEM5OMRP.mjs +384 -0
  58. package/lib/{chunk-YX5U7XDR.mjs → chunk-M3YIYRHT.mjs} +6 -5
  59. package/lib/chunk-O6SWBEOQ.mjs +81 -0
  60. package/lib/{chunk-JGR2NW6D.mjs → chunk-PDSXF5HY.mjs} +3 -3
  61. package/lib/{chunk-AASHBCRW.mjs → chunk-QQ4A6DLD.mjs} +8 -0
  62. package/lib/chunk-RCP7DHVY.mjs +190 -0
  63. package/lib/chunk-SBNDSKG5.mjs +136 -0
  64. package/lib/chunk-U6SO4QEV.mjs +320 -0
  65. package/lib/{chunk-APBWENF6.mjs → chunk-V3N3JEUF.mjs} +3 -3
  66. package/lib/chunk-XD6BJK6Q.mjs +351 -0
  67. package/lib/chunk-XVBFFVCJ.mjs +209 -0
  68. package/lib/chunk-YXSFGA2D.mjs +383 -0
  69. package/lib/clean-github-actions-caches.cjs +243 -148
  70. package/lib/clean-github-actions-caches.mjs +4 -3
  71. package/lib/del-gradle.cjs +2 -2
  72. package/lib/del-gradle.js +1 -1
  73. package/lib/del-gradle.mjs +2 -2
  74. package/lib/del-node-modules.cjs +2 -2
  75. package/lib/del-node-modules.js +1 -1
  76. package/lib/del-node-modules.mjs +2 -2
  77. package/lib/del-ps.cjs +29 -8
  78. package/lib/del-ps.js +2 -2
  79. package/lib/del-ps.mjs +7 -5
  80. package/lib/del-yarn-caches.cjs +26 -5
  81. package/lib/del-yarn-caches.js +38 -3
  82. package/lib/del-yarn-caches.mjs +6 -6
  83. package/lib/find-node-modules-cli.cjs +5 -4
  84. package/lib/find-node-modules-cli.js +1 -1
  85. package/lib/find-node-modules-cli.mjs +2 -2
  86. package/lib/find-node-modules.cjs +4 -3
  87. package/lib/{find-node-modules.d.ts → find-node-modules.d.cts} +1 -1
  88. package/lib/find-node-modules.mjs +2 -2
  89. package/lib/free-chatgpt.cjs +548 -0
  90. package/lib/free-chatgpt.d.ts +1 -0
  91. package/lib/free-chatgpt.js +51 -0
  92. package/lib/free-chatgpt.mjs +50 -0
  93. package/lib/git/gitattributes.cjs +1 -1
  94. package/lib/git/{gitattributes.d.mts → gitattributes.d.cts} +5 -7
  95. package/lib/git/gitattributes.mjs +2 -2
  96. package/lib/git/line-endings.cjs +297 -64
  97. package/lib/git/line-endings.mjs +4 -4
  98. package/lib/git/normalize.cjs +26 -36
  99. package/lib/git/normalize.mjs +2 -2
  100. package/lib/git/permissions.cjs +77 -11
  101. package/lib/git/permissions.mjs +3 -3
  102. package/lib/git/pull-strategy.cjs +76 -9
  103. package/lib/git/pull-strategy.mjs +3 -3
  104. package/lib/git/user-config.cjs +266 -83
  105. package/lib/git/user-config.mjs +4 -4
  106. package/lib/git/utils.cjs +40 -60
  107. package/lib/git/utils.mjs +2 -2
  108. package/lib/git-diff-cli.cjs +651 -0
  109. package/lib/git-diff-cli.d.ts +1 -0
  110. package/lib/git-diff-cli.js +15 -0
  111. package/lib/git-diff-cli.mjs +16 -0
  112. package/lib/git-diff.cjs +657 -58
  113. package/lib/git-diff.d.ts +38 -83
  114. package/lib/git-diff.js +152 -0
  115. package/lib/git-diff.mjs +23 -85
  116. package/lib/git-fix.cjs +685 -97
  117. package/lib/git-fix.mjs +12 -11
  118. package/lib/git-purge.cjs +3 -3
  119. package/lib/git-purge.d.cts +1 -0
  120. package/lib/git-purge.mjs +43 -37
  121. package/lib/index.cjs +7 -6
  122. package/lib/index.d.ts +1 -1
  123. package/lib/index.js +2 -5
  124. package/lib/index.mjs +4 -4
  125. package/lib/npm-run-series.cjs +3 -3
  126. package/lib/npm-run-series.mjs +42 -36
  127. package/lib/package-resolutions-updater.cjs +174 -1
  128. package/lib/package-resolutions-updater.mjs +270 -290
  129. package/lib/print-directory-tree.cjs +275 -210
  130. package/lib/print-directory-tree.mjs +2 -2
  131. package/lib/ps/connected-domain.cjs +25 -2
  132. package/lib/ps/connected-domain.d.ts +10 -2
  133. package/lib/ps/connected-domain.js +5 -2
  134. package/lib/ps/connected-domain.mjs +8 -4
  135. package/lib/ps/index.cjs +345 -322
  136. package/lib/ps/index.d.mjs +1 -1
  137. package/lib/ps/index.js +1 -1
  138. package/lib/ps/index.mjs +179 -182
  139. package/lib/ps/isWin.cjs +24 -1
  140. package/lib/ps/isWin.d.ts +1 -1
  141. package/lib/ps/isWin.js +3 -1
  142. package/lib/ps/isWin.mjs +8 -4
  143. package/lib/ps/table-parser.cjs +167 -159
  144. package/lib/ps/table-parser.d.ts +5 -0
  145. package/lib/ps/table-parser.js +10 -4
  146. package/lib/ps/table-parser.mjs +9 -5
  147. package/lib/remove-module.cjs +262 -0
  148. package/lib/remove-module.d.mts +1 -0
  149. package/lib/remove-module.mjs +111 -0
  150. package/lib/rmpath.cjs +274 -0
  151. package/lib/rmpath.d.mts +3 -0
  152. package/lib/rmpath.mjs +108 -0
  153. package/lib/submodule-install.cjs +264 -85
  154. package/lib/submodule-install.mjs +56 -7
  155. package/lib/submodule-remove-cli.cjs +103 -0
  156. package/lib/submodule-remove-cli.d.ts +1 -0
  157. package/lib/submodule-remove-cli.js +31 -0
  158. package/lib/submodule-remove-cli.mjs +28 -0
  159. package/lib/submodule-remove.cjs +43 -0
  160. package/lib/submodule-remove.d.cts +2 -0
  161. package/lib/submodule-remove.mjs +6 -0
  162. package/lib/utils/chatgpt.cjs +383 -0
  163. package/lib/utils/chatgpt.d.ts +31 -0
  164. package/lib/utils/chatgpt.js +541 -0
  165. package/lib/utils/chatgpt.mjs +8 -0
  166. package/lib/{utils.cjs → utils/index.cjs} +1 -1
  167. package/lib/{utils.mjs → utils/index.mjs} +2 -2
  168. package/lib/yarn-reinstall.cjs +172 -38
  169. package/lib/yarn-reinstall.mjs +2 -2
  170. package/package.json +91 -71
  171. package/readme.md +43 -69
  172. package/releases/readme.md +36 -0
  173. package/test/README.md +101 -0
  174. package/test/package.json +2 -1
  175. package/test-project/readme.md +26 -0
  176. package/tmp/test-repo/README.md +35 -0
  177. package/tmp/typedoc/readme.md +320 -0
  178. package/bin/bash-dummy +0 -56
  179. package/bin/bash-dummy.cmd +0 -25
  180. package/bin/dir-tree.cmd +0 -7
  181. package/bin/git-diff +0 -4
  182. package/bin/git-diff.cmd +0 -7
  183. package/bin/git-fix +0 -36
  184. package/bin/git-fix.cmd +0 -7
  185. package/bin/rmpath +0 -70
  186. package/bin/submodule-install.txt +0 -118
  187. package/bin/submodule-remove +0 -46
  188. package/bin/submodule.txt +0 -172
  189. package/lib/binary-collections-config.d.mts +0 -18
  190. package/lib/binary-collections-config.js +0 -39
  191. package/lib/binary-collections.d.mts +0 -121
  192. package/lib/binary-collections.d.ts +0 -121
  193. package/lib/chunk-DPKAJKFO.mjs +0 -171
  194. package/lib/chunk-G3THLIDT.mjs +0 -200
  195. package/lib/chunk-W3ENOM53.mjs +0 -18
  196. package/lib/clean-github-actions-caches.d.mts +0 -169
  197. package/lib/clean-github-actions-caches.d.ts +0 -169
  198. package/lib/del-gradle.d.mts +0 -2
  199. package/lib/del-node-modules.d.mts +0 -2
  200. package/lib/del-ps.d.mts +0 -2
  201. package/lib/del-yarn-caches.d.mts +0 -2
  202. package/lib/find-node-modules-cli.d.mts +0 -1
  203. package/lib/find-node-modules.d.mts +0 -13
  204. package/lib/find-node-modules.js +0 -53
  205. package/lib/git/line-endings.d.mts +0 -83
  206. package/lib/git/line-endings.d.ts +0 -83
  207. package/lib/git/normalize.d.mts +0 -43
  208. package/lib/git/normalize.d.ts +0 -43
  209. package/lib/git/permissions.d.mts +0 -17
  210. package/lib/git/permissions.d.ts +0 -17
  211. package/lib/git/pull-strategy.d.mts +0 -15
  212. package/lib/git/pull-strategy.d.ts +0 -15
  213. package/lib/git/user-config.d.mts +0 -105
  214. package/lib/git/user-config.d.ts +0 -105
  215. package/lib/git/utils.d.mts +0 -69
  216. package/lib/git/utils.d.ts +0 -69
  217. package/lib/git-diff.d.mts +0 -84
  218. package/lib/git-fix.d.mts +0 -141
  219. package/lib/git-fix.d.ts +0 -141
  220. package/lib/git-purge.d.mts +0 -2
  221. package/lib/git-purge.js +0 -59
  222. package/lib/index.d.mts +0 -1
  223. package/lib/npm-run-series.d.mts +0 -1
  224. package/lib/npm-run-series.d.ts +0 -2
  225. package/lib/npm-run-series.js +0 -86
  226. package/lib/package-resolutions-updater.d.ts +0 -326
  227. package/lib/print-directory-tree.d.mts +0 -234
  228. package/lib/print-directory-tree.d.ts +0 -234
  229. package/lib/ps/connected-domain.d.mts +0 -3
  230. package/lib/ps/index.d.d.mts +0 -26
  231. package/lib/ps/index.d.d.ts +0 -26
  232. package/lib/ps/index.d.mts +0 -26
  233. package/lib/ps/isWin.d.mts +0 -3
  234. package/lib/ps/table-parser.d.mts +0 -3
  235. package/lib/submodule-install.d.mts +0 -121
  236. package/lib/submodule-install.d.ts +0 -121
  237. package/lib/utils.d.mts +0 -40
  238. package/lib/utils.js +0 -181
  239. package/lib/yarn-reinstall.d.mts +0 -49
  240. package/lib/yarn-reinstall.d.ts +0 -49
  241. package/src/package-resolutions-updater.mjs +0 -325
  242. package/src/print-directory-tree.cjs +0 -234
  243. package/src/ps/index.js +0 -286
  244. package/src/yarn-reinstall.cjs +0 -49
  245. /package/{bin → binaries}/nodekill +0 -0
  246. /package/{bin → binaries}/nodekill.cmd +0 -0
  247. /package/lib/{binary-collections-config.d.ts → binary-collections-config.d.cts} +0 -0
  248. /package/lib/{git-purge.d.ts → changelog.d.cts} +0 -0
  249. /package/lib/{git-diff.d.cts → npm-run-series.d.cts} +0 -0
  250. /package/lib/{utils.d.ts → utils/index.d.cts} +0 -0
@@ -0,0 +1,320 @@
1
+ # Binary Collections
2
+ A comprehensive toolkit of Node.js CLI utilities for streamlining development workflows. Includes tools for git operations, dependency management, build processes, automation, and more.
3
+
4
+ ## Features
5
+
6
+ - 🧹 **Cleanup Tools**: Remove node_modules, yarn caches, gradle builds
7
+ - 🔄 **Git Utilities**: Submodule management, repository purging, diff tools
8
+ - 📦 **Build Tools**: NPM script runners, package management utilities
9
+ - ⚡ **Development Helpers**: Process management, environment setup tools
10
+
11
+ ## Installation
12
+
13
+ ### Clone Repository
14
+ ```bash
15
+ git clone -b master https://github.com/dimaslanjaka/bin bin
16
+ ```
17
+
18
+ ### NPM Installation
19
+ ```bash
20
+ # Install locally
21
+ npm install binary-collections
22
+
23
+ # Install globally
24
+ npm install binary-collections -g
25
+
26
+ # Install from release archive
27
+ npm install binary-collections@https://github.com/dimaslanjaka/bin/raw/master/releases/bin.tgz
28
+ ```
29
+
30
+ ### Direct run
31
+
32
+ ```bash
33
+ # Yarn berry
34
+ yarn dlx binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz <command-name>
35
+
36
+ # NPX
37
+ npx binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz <command-name>
38
+ ```
39
+
40
+ ## VS Code Setup
41
+
42
+ Create `https://github.com/dimaslanjaka/bin/blob/master/.vscode/settings.json` to add binary tools to your PATH:
43
+
44
+ ```jsonc
45
+ {
46
+ "terminal.integrated.env.linux": {
47
+ "PATH": "${env:PATH}:${workspaceFolder}/node_modules/.bin:${workspaceFolder}/bin"
48
+ },
49
+ "terminal.integrated.env.windows": {
50
+ "PATH": "${env:PATH};${workspaceFolder}\\node_modules\\.bin;${workspaceFolder}\\bin"
51
+ },
52
+ "terminal.integrated.profiles.windows": {
53
+ "PowerShell": {
54
+ "source": "PowerShell",
55
+ "icon": "terminal-powershell"
56
+ },
57
+ "Command Prompt": {
58
+ "path": [
59
+ "${env:windir}\\Sysnative\\cmd.exe",
60
+ "${env:windir}\\System32\\cmd.exe"
61
+ ],
62
+ "args": [],
63
+ "icon": "terminal-cmd"
64
+ },
65
+ "Git Bash": {
66
+ "source": "Git Bash"
67
+ },
68
+ "Cygwin": {
69
+ "path": "C:\\cygwin64\\bin\\bash.exe",
70
+ "args": ["--login", "-i"],
71
+ "env": {
72
+ "CHERE_INVOKING": "1"
73
+ }
74
+ }
75
+ },
76
+ "terminal.integrated.defaultProfile.windows": "Command Prompt"
77
+ }
78
+ ```
79
+
80
+ ## Available Tools
81
+
82
+ ### Quick Reference
83
+
84
+ | Category | Commands | Description |
85
+ |------------------|-------------------------------------------------------------------------|--------------------------------------------------|
86
+ | **Git** | `git-purge`, `git-diff`, `git-fix`, `git-reduce-size` | Git repository management and optimization |
87
+ | **Submodules** | `submodule`, `submodule-install`, `submodule-remove`, `submodule-token` | Git submodule operations |
88
+ | **NPM Scripts** | `nrs`, `run-s`, `run-series`, `npm-run-series` | Run npm scripts in series with pattern matching |
89
+ | **Package Mgmt** | `yarn-reinstall`, `pkg-resolutions-updater`, `pkg-res-updater` | Yarn/package resolutions management utilities |
90
+ | **Node.js Dev** | `find-node-modules`, `find-nodemodules`, `dev`, `prod`, `empty` | Node.js development helpers |
91
+ | **Process Mgmt** | `kill-process`, `nodekill`, `javakill`, `del-ps` | Process management and termination |
92
+ | **File System** | `rmfind`, `rmpath`, `rmx`, `print-tree`, `dir-tree` | File system operations |
93
+ | **Cleanup** | `del-nodemodules`, `del-yarncaches`, `del-gradle` | Cache and build directory cleanup |
94
+ | **GitHub Actions**| `clean-github-actions-caches`, `clean-github-actions-cache`, `clear-github-actions-cache`, `clear-github-actions-caches`, `clear-gh-caches` | Remove old GitHub Actions caches, keep only latest |
95
+
96
+ ---
97
+ #### Binary List Generation & Source Code
98
+
99
+ The list of available binaries and utilities is auto-generated by the build script ([`https://github.com/dimaslanjaka/bin/blob/master/build.mjs`](https://github.com/dimaslanjaka/bin/blob/master/build.mjs)).
100
+ - All CLI tools and binaries are collected from the `bin/`, `lib/`, and other relevant folders.
101
+ - The build process updates the `bin` field in `https://github.com/dimaslanjaka/bin/blob/master/package.json` to reflect all available executables.
102
+ - Source code for utilities is located in the `src/` folder.
103
+
104
+ To update the binary list, run:
105
+ ```bash
106
+ yarn run build
107
+ # or
108
+ node build.mjs
109
+ ```
110
+ This scans the project and updates `package.json` with all available binaries. The list may change as files are added or removed.
111
+
112
+ See also:
113
+ - [Binary executables](https://github.com/dimaslanjaka/bin/tree/master/bin)
114
+ - [Library modules](https://github.com/dimaslanjaka/bin/tree/master/lib)
115
+ - [Package configuration](https://github.com/dimaslanjaka/bin/blob/master/package.json)
116
+
117
+ ### Git Tools
118
+
119
+ #### Git Repository Purge
120
+ Clean and optimize git repositories by pruning reflogs:
121
+ ```bash
122
+ git-purge
123
+ ```
124
+ ![Git purge screenshot](https://github.com/dimaslanjaka/bin/assets/12471057/2805c54e-28a7-491d-b381-de2593a854b3)
125
+
126
+ #### Git Diff Utility
127
+ Enhanced git diff functionality:
128
+ ```bash
129
+ git-diff
130
+ ```
131
+
132
+ #### Git Fix Utility
133
+ Comprehensive Git configuration fixer for cross-platform development (replaces `git-fix-encoding`):
134
+ ```bash
135
+ git-fix # Apply all fixes
136
+ git-fix --lf-only # Force LF line endings only
137
+ git-fix --permissions # Ignore file permissions only
138
+ git-fix --normalize # Normalize existing files only
139
+ git-fix --user # Configure Git user from environment
140
+ git-fix --user NAME EMAIL # Configure Git user with specific values
141
+ git-fix --user --update-remote # Also update remote URL to match user
142
+ git-fix --user NAME EMAIL --update-remote # Configure user and update remote URL
143
+ ```
144
+ Features:
145
+ - Forces LF line endings (`core.autocrlf = false`)
146
+ - Ignores file permission changes (`core.filemode = false`)
147
+ - Sets pull strategy to false (prevents auto-rebase)
148
+ - Normalizes existing line endings
149
+ - Creates/updates `.gitattributes` with proper line ending rules
150
+ - Configures Git user from environment variables or CLI arguments
151
+ - **Non-interactive:** All configuration is now argument-driven; no interactive prompts
152
+ - `--update-remote` flag: Update remote URL to match the configured user (for HTTPS remotes)
153
+
154
+ User Configuration:
155
+ - Environment variables: `GITHUB_USER`, `GITHUB_EMAIL`
156
+ - CLI arguments take precedence over environment variables
157
+ - Use `--update-remote` to update the remote URL with the configured user
158
+ - Examples:
159
+ ```bash
160
+ git-fix --user "John Doe" "john@example.com" # Use CLI args
161
+ git-fix --user --update-remote # Use env vars and update remote
162
+ git-fix --user "Jane" "jane@example.com" --update-remote # CLI args and update remote
163
+ GITHUB_USER="Jane" GITHUB_EMAIL="jane@example.com" git-fix --user # Use env vars
164
+ ```
165
+
166
+ #### Git Repository Size Reducer
167
+ Reduce git repository size by cleaning up history:
168
+ ```bash
169
+ git-reduce-size
170
+ ```
171
+
172
+ #### Submodule Management
173
+ - **`submodule`** - General submodule operations
174
+ - **`submodule-install`** - Install and setup submodules
175
+ - **`submodule-remove`** - Remove git submodules with interactive selection
176
+ - **`submodule-token`** - Manage submodule tokens
177
+
178
+ ![Submodule remover screenshot](https://github.com/user-attachments/assets/659c2fa3-f12f-45cb-a66f-aed3807e0023)
179
+
180
+
181
+ ### NPM Script Runner
182
+
183
+ **Binaries**: `nrs`, `run-s`, `run-series`, `npm-run-series`
184
+
185
+ Run multiple npm scripts in series with pattern matching support.
186
+
187
+ #### Options
188
+ | Flag | Description |
189
+ |---------------------|---------------------------------------------|
190
+ | `--yarn` | Use `yarn run <script-name>` instead of npm |
191
+ | `--verbose`, `-v` | Enable verbose output |
192
+
193
+ #### Example
194
+ Execute all scripts matching the pattern `namescript:**`:
195
+ ```json
196
+ {
197
+ "name": "package-name",
198
+ "version": "0.0.0",
199
+ "private": true,
200
+ "scripts": {
201
+ "namescript:xx": "echo xx",
202
+ "namescript:xxx": "echo xxx",
203
+ "namescript:xxxx": "echo xxxx",
204
+ "namescript:xxxxx": "echo xxxxx",
205
+ "namescript": "nrs --yarn=true --verbose=true \"namescript:**\""
206
+ },
207
+ "license": "ISC"
208
+ }
209
+ ```
210
+
211
+ ### Package Management Tools
212
+
213
+ #### Yarn Package Reinstaller
214
+ Reinstall yarn packages with dependency type flags:
215
+ ```bash
216
+ yarn-reinstall <packageName> [--dev|-D|--peer|-P|--optional|-O]
217
+ ```
218
+
219
+ #### Package Resolutions Manager
220
+ Manage package resolutions in package.json (aliases: `pkg-resolutions-updater`, `pkg-res-updater`):
221
+ ```bash
222
+ pkg-resolutions-updater
223
+ pkg-res-updater
224
+ ```
225
+
226
+ ### Node.js Development Tools
227
+
228
+ #### Node Modules Finder
229
+ Find all node_modules directories in a project:
230
+ ```bash
231
+ find-node-modules # Library function
232
+ find-node-modules-cli # CLI tool
233
+ find-nodemodules # Alias
234
+ ```
235
+
236
+ #### Development Environment Helpers
237
+ - **`dev`** - Development environment setup
238
+ - **`prod`** - Production environment setup
239
+ - **`empty`** - Empty utility tool
240
+
241
+ ### Process Management Tools
242
+
243
+ #### Process Killers
244
+ Kill processes by name or pattern:
245
+ ```bash
246
+ kill-process # General process killer
247
+ nodekill # Kill Node.js processes
248
+ javakill # Kill Java processes (Windows)
249
+ del-ps # Kill processes by command name
250
+ ```
251
+
252
+ #### File System Tools
253
+ - **`rmfind`** - Find and remove files
254
+ - **`rmpath`** - Remove from PATH
255
+ - **`rmx`** - Remove executable files
256
+
257
+ ### Cleanup Tools
258
+
259
+ #### GitHub Actions Cache Cleaner
260
+ [See full documentation](https://github.com/dimaslanjaka/bin/blob/master/docs-src/clean-github-actions-caches.md).
261
+
262
+ #### Node Modules Cleaner
263
+ Remove node_modules directories recursively:
264
+ ```bash
265
+ del-nodemodules # Primary command
266
+ del-node-modules # Alternative
267
+ clean-nodemodule # Legacy
268
+ clean-nodemodules # Legacy
269
+ ```
270
+ ![Node modules cleaner screenshot](https://github.com/dimaslanjaka/bin/assets/12471057/f03e5b51-1808-4e82-a474-0dd3c7eab5fe)
271
+
272
+ #### Yarn Cache Cleaner
273
+ Clear yarn cache directories:
274
+ ```bash
275
+ del-yarncaches # Primary command
276
+ del-yarn-caches # Alternative
277
+ ```
278
+
279
+ #### Gradle Build Cleaner
280
+ Delete gradle build folders:
281
+ ```bash
282
+ del-gradle
283
+ ```
284
+
285
+ #### Free ChatGPT automation tool
286
+
287
+ [See full documentation](https://github.com/dimaslanjaka/bin/blob/master/docs-src/free-chatgpt.md)
288
+
289
+ ## Troubleshooting
290
+
291
+ ### Submodule Installation Issues
292
+ If you encounter the following error:
293
+ ```log
294
+ fatal: 'origin/<branch>' is not a commit and a branch '<branch>' cannot be created from it
295
+ fatal: unable to checkout submodule '<folder>/<submodule>'
296
+ ```
297
+ **Solution**: Delete `.git/modules` directory before running `submodule-install`.
298
+
299
+ #### Complete Submodule Setup Example
300
+ ```bash
301
+ echo "Initializing submodules..."
302
+ git submodule init
303
+ git submodule foreach "git submodule init"
304
+
305
+ echo "Syncing submodules..."
306
+ git submodule sync
307
+ git submodule foreach "git submodule sync"
308
+
309
+ echo "Updating submodules..."
310
+ npx --yes rimraf .git/modules
311
+ npx --yes binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz submodule-install
312
+ ```
313
+
314
+ ## Contributing
315
+
316
+ Contributions are welcome! Please feel free to submit a Pull Request.
317
+
318
+ ## License
319
+
320
+ This project is licensed under the terms specified in the LICENSE file.
package/bin/bash-dummy DELETED
@@ -1,56 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # put these on top of file
4
-
5
- (set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix
6
-
7
- # absolute path working directory
8
- basecwd=${PWD}
9
- # base script directory
10
- basedir=`dirname "$0"`
11
- # absolute path script directory
12
- SCRIPT_DIR=$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd)
13
- # get script path
14
- SCRIPT=$(realpath "$0")
15
- SCRIPTPATH=$(dirname "$SCRIPT")
16
-
17
- # Detect Cygwin or MinGW
18
- case "$(uname)" in
19
- *CYGWIN*)
20
- basedir=$(cygpath -w "$basedir")
21
- # make cygwin bin as priority
22
- export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH"
23
- ;;
24
- *MINGW*)
25
- # make mingw bin as priority
26
- export PATH="/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH"
27
- ;;
28
- esac
29
-
30
- # parse and export .env file (dotenv)
31
- if [ -f ".env" ]; then
32
- # Export the vars in .env into your shell:
33
- export $(egrep -v '^#' .env | xargs)
34
- fi
35
-
36
- # write a function
37
- fresh(){
38
- # t stores $1 argument passed to fresh()
39
- t=$1
40
- echo "fresh(): \$0 is $0"
41
- echo "fresh(): \$1 is $1"
42
- echo "fresh(): \$t is $t"
43
- echo "fresh(): total args passed to me $#"
44
- echo "fresh(): all args (\$@) passed to me -\"$@\""
45
- echo "fresh(): all args (\$*) passed to me -\"$*\""
46
- }
47
-
48
- # invoke the function with total 3 arguments
49
- echo "**** calling fresh() with params ****"
50
- fresh Tomato Onion Paneer
51
-
52
- echo ""
53
-
54
- # pass cli arguments to function params
55
- echo "**** calling fresh() pass cli arguments into params ****"
56
- fresh "$@"
@@ -1,25 +0,0 @@
1
- @echo off
2
-
3
- SETLOCAL enableExtensions enableDelayedExpansion
4
-
5
- rem my malfunction keyboard 56^%
6
- rem execute bash file with cygwin from batch script https://stackoverflow.com/a/43300782/6404439
7
-
8
- set scriptDirPath=%~dp0
9
- set terminalCwd=%CD%
10
- set cygwinBinPath=c:\cygwin64\bin\
11
- set minttyBin=%cygwinBinPath%mintty
12
- set bashBin=%cygwinBinPath%bash
13
-
14
- rem to inspect terminal output
15
- rem c:\cygwin64\bin\mintty -h always /bin/bash -l /cygdrive/c/path/to/bash-script
16
- rem run bash in the current console window
17
- rem C:\cygwin64\bin\bash -l c:\path\to\your\script
18
- rem run bash in new window (mintty)
19
- rem C:\cygwin64\bin\mintty /bin/bash -l c:\path\to\your\script
20
-
21
- rem %minttyBin% -h always /bin/bash -l %scriptDirPath%bash-dummy
22
-
23
- %bashBin% -l %scriptDirPath%bash-dummy Hello World
24
-
25
- ENDLOCAL
package/bin/dir-tree.cmd DELETED
@@ -1,7 +0,0 @@
1
- @echo off
2
- setlocal
3
- set SCRIPT_DIR=%~dp0
4
-
5
- echo Running script: %~f0
6
-
7
- node "%SCRIPT_DIR%..\lib\print-directory-tree.cjs" %*
package/bin/git-diff DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env bash
2
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
3
-
4
- node "$SCRIPT_DIR/../lib/git-diff.cjs" "$@"
package/bin/git-diff.cmd DELETED
@@ -1,7 +0,0 @@
1
- @echo off
2
- setlocal
3
- set SCRIPT_DIR=%~dp0
4
-
5
- echo Running script: %~f0
6
-
7
- node "%SCRIPT_DIR%..\lib\git-diff.cjs" %*
package/bin/git-fix DELETED
@@ -1,36 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # put these on top of file
4
-
5
- (set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix
6
-
7
- # absolute path working directory
8
- basecwd=${PWD}
9
- # base script directory
10
- basedir=`dirname "$0"`
11
- # absolute path script directory
12
- SCRIPT_DIR=$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd)
13
- # get script path
14
- SCRIPT=$(realpath "$0")
15
- SCRIPTPATH=$(dirname "$SCRIPT")
16
-
17
- # Detect Cygwin or MinGW
18
- case "$(uname)" in
19
- *CYGWIN*)
20
- basedir=$(cygpath -w "$basedir")
21
- # make cygwin bin as priority
22
- export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH"
23
- ;;
24
- *MINGW*)
25
- # make mingw bin as priority
26
- export PATH="/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH"
27
- ;;
28
- esac
29
-
30
- # parse and export .env file (dotenv)
31
- if [ -f ".env" ]; then
32
- # Export the vars in .env into your shell:
33
- export $(egrep -v '^#' .env | xargs)
34
- fi
35
-
36
- node "$basedir/../lib/git-fix.cjs" "$@"
package/bin/git-fix.cmd DELETED
@@ -1,7 +0,0 @@
1
- @echo off
2
- setlocal
3
- set SCRIPT_DIR=%~dp0
4
-
5
- echo Running script: %~f0
6
-
7
- node "%SCRIPT_DIR%..\lib\git-fix.cjs" %*
package/bin/rmpath DELETED
@@ -1,70 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # put these on top of file
4
-
5
- (set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix
6
-
7
- # absolute path working directory
8
- basecwd=${PWD}
9
- # base script directory
10
- basedir=`dirname "$0"`
11
- # absolute path script directory
12
- SCRIPT_DIR=$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd)
13
- # get script path
14
- SCRIPT=$(realpath "$0")
15
- SCRIPTPATH=$(dirname "$SCRIPT")
16
-
17
- # Detect Cygwin or MinGW
18
- case "$(uname)" in
19
- *CYGWIN*)
20
- basedir=$(cygpath -w "$basedir")
21
- # make cygwin bin as priority
22
- export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH"
23
- ;;
24
- *MINGW*)
25
- # make mingw bin as priority
26
- export PATH="/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH"
27
- ;;
28
- esac
29
-
30
- # parse and export .env file (dotenv)
31
- if [ -f ".env" ]; then
32
- # Export the vars in .env into your shell:
33
- export $(egrep -v '^#' .env | xargs)
34
- fi
35
-
36
- # fast huge folder deleter
37
-
38
- if [ -z "$1" ]; then
39
- echo "You need to provide a file or folder path"
40
- exit
41
- fi
42
-
43
- # delete single file
44
- if [ -f "$1" ]; then
45
- rm -rf "$1"
46
- exit
47
- fi
48
-
49
- if [ ! -d "$1" ]; then
50
- echo "$1 not found"
51
- exit
52
- fi
53
-
54
- vowels=( a i u e o A I U E O )
55
- for letter in {{a..z},{A..Z}}; do
56
- for vowel in "${vowels[@]}"; do
57
- toBeDeleted=( "$1/.${letter}*" "$1/@${letter}*" "$1/${letter}*" "$1/@${letter}${vowel}*" "$1/.${letter}${vowel}*" "$1/${letter}${vowel}*" )
58
- for fpath in "${toBeDeleted[@]}"; do
59
- echo "deleting ${fpath}"
60
- rm -rf $fpath or echo "cannot delete $fpath" &
61
- done
62
- done
63
- done
64
-
65
- wait
66
-
67
- echo "cleaning $1"
68
- rm -rf $1 &
69
-
70
- wait
@@ -1,118 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # put these on top of file
4
-
5
- (set -o igncr) 2>/dev/null && set -o igncr; # cygwin encoding fix
6
-
7
- # absolute path working directory
8
- basecwd=${PWD}
9
- # base script directory
10
- basedir=`dirname "$0"`
11
- # absolute path script directory
12
- SCRIPT_DIR=$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd)
13
- # get script path
14
- SCRIPT=$(realpath "$0")
15
- SCRIPTPATH=$(dirname "$SCRIPT")
16
-
17
- # Detect Cygwin or MinGW
18
- case "$(uname)" in
19
- *CYGWIN*)
20
- basedir=$(cygpath -w "$basedir")
21
- # make cygwin bin as priority
22
- export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH"
23
- ;;
24
- *MINGW*)
25
- # make mingw bin as priority
26
- export PATH="/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH"
27
- ;;
28
- esac
29
-
30
- # parse and export .env file (dotenv)
31
- if [ -f ".env" ]; then
32
- # Export the vars in .env into your shell:
33
- export $(egrep -v '^#' .env | xargs)
34
- fi
35
-
36
- # auto clone all submodules, prevent not-matched hash
37
- # set ACCESS_TOKEN=github_personal_tokens
38
- # usages: sh folder_this_repo/submodule-install
39
-
40
- # set default root
41
- export ROOT="$(git rev-parse --show-toplevel)"
42
-
43
- while test $# -gt 0; do
44
- case "$1" in
45
- -h|--help)
46
- echo "$package - attempt to install submodules"
47
- echo " "
48
- echo "$package [options] application [arguments]"
49
- echo " "
50
- echo "options:"
51
- echo "-h, --help show brief help"
52
- echo "-o, --output-dir=DIR specify a directory to install submodules"
53
- exit 0
54
- ;;
55
- -cwd)
56
- shift
57
- if test $# -gt 0; then
58
- export ROOT=$1
59
- else
60
- echo "no output dir specified"
61
- exit 1
62
- fi
63
- shift
64
- ;;
65
- --cwd*)
66
- export ROOT=`echo $1 | sed -e 's/^[^=]*=//g'`
67
- shift
68
- ;;
69
- *)
70
- break
71
- ;;
72
- esac
73
- done
74
-
75
- echo "installing submodules at $ROOT"
76
-
77
- git -C "${REPO_PATH}" config -f .gitmodules --get-regexp '^submodule\..*\.path$' |
78
- while read -r KEY MODULE_PATH
79
- do
80
- # relative module path from root
81
- RELATIVE_MODULE_PATH="${ROOT}/${MODULE_PATH}"
82
- # cd git root dir
83
- cd ${ROOT}
84
- # If the module's path exists, remove it.
85
- # This is done b/c the module's path is currently
86
- # not a valid git repo and adding the submodule will cause an error.
87
- if [ -d "${RELATIVE_MODULE_PATH}" ]; then
88
- echo "deleting ${RELATIVE_MODULE_PATH}"
89
- rm -rf "${RELATIVE_MODULE_PATH}"
90
- fi
91
-
92
- NAME="$(echo "${KEY}" | sed 's/^submodule\.\(.*\)\.path$/\1/')"
93
-
94
- url_key="$(echo "${KEY}" | sed 's/\.path$/.url/')"
95
- branch_key="$(echo "${KEY}" | sed 's/\.path$/.branch/')"
96
-
97
- URL="$(git config -f .gitmodules --get "${url_key}")"
98
- BRANCH="$(git config -f .gitmodules --get "${branch_key}" || echo "master")"
99
-
100
- git -C "${REPO_PATH}" submodule add --force -b "${BRANCH}" --name "${NAME}" "${URL}" "${MODULE_PATH}" || echo "cannot add submodule ${MODULE_PATH}"
101
-
102
- repo=${URL#"https://github.com/"}
103
- URL_WITH_TOKEN="https://${ACCESS_TOKEN}@github.com/${repo}"
104
-
105
- echo "apply token for ${repo} at ${MODULE_PATH} branch ${BRANCH}"
106
- GIT_MODULES="${RELATIVE_MODULE_PATH}/.gitmodules"
107
- cd "${RELATIVE_MODULE_PATH}"
108
- git remote set-url origin "${URL_WITH_TOKEN}"
109
- git fetch --all
110
- git pull origin "${BRANCH}" -X theirs
111
- if [ -f "${GIT_MODULES}" ];
112
- then
113
- echo "${MODULE_PATH} has submodules"
114
- sh "${SCRIPT}" -cwd ${RELATIVE_MODULE_PATH}
115
- fi
116
- done
117
-
118
- git -C "${REPO_PATH}" submodule update --init --recursive