@sebastienrousseau/dotfiles 0.2.469 → 0.2.481

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 (490) hide show
  1. package/CHANGELOG.md +285 -0
  2. package/README.md +236 -319
  3. package/docs/ALIASES.md +128 -0
  4. package/docs/ARCHITECTURE.md +229 -0
  5. package/docs/COMPLIANCE.md +47 -0
  6. package/docs/COPYRIGHT +7 -0
  7. package/docs/FEATURES.md +166 -0
  8. package/docs/FONTS.md +147 -0
  9. package/docs/INSTALL.md +119 -0
  10. package/docs/KEYS.md +40 -0
  11. package/docs/KEY_ROTATION.md +219 -0
  12. package/docs/LEGACY_ROADMAP.md +142 -0
  13. package/docs/NEOVIM_IDE_GUIDE.md +52 -0
  14. package/docs/OPERATIONS.md +130 -0
  15. package/docs/PLAN.md +161 -0
  16. package/docs/PR_DESCRIPTION.md +149 -0
  17. package/docs/README.md +269 -0
  18. package/docs/REPO_AUDIT.md +23 -0
  19. package/docs/ROADMAP.md +148 -0
  20. package/docs/SCREENSHOTS.md +116 -0
  21. package/docs/SECRETS.md +76 -0
  22. package/docs/SECURITY.md +30 -0
  23. package/docs/SECURITY_CHECKLIST.md +25 -0
  24. package/docs/TASK.md +99 -0
  25. package/docs/TESTING.md +190 -0
  26. package/docs/TOOLS.md +146 -0
  27. package/docs/TROUBLESHOOTING.md +112 -0
  28. package/docs/UTILS.md +105 -0
  29. package/docs/WALKTHROUGH.md +165 -0
  30. package/docs/WSL2_NIX_TROUBLESHOOTING.md +723 -0
  31. package/docs/adr/ADR-001-ci-cd-pipeline.md +101 -0
  32. package/docs/adr/ADR-002-shell-performance.md +121 -0
  33. package/docs/adr/ADR-003-security-first.md +140 -0
  34. package/docs/adr/ADR-004-cli-architecture.md +157 -0
  35. package/docs/adr/ADR-005-chezmoi-choice.md +89 -0
  36. package/docs/adr/ADR-006-shell-selection.md +115 -0
  37. package/docs/adr/README.md +33 -0
  38. package/docs/themes/README.md +20 -0
  39. package/dot_config/aider/aider.conf.yml +32 -0
  40. package/dot_config/alacritty/alacritty.toml.tmpl +483 -0
  41. package/dot_config/ansible/ansible.cfg.tmpl +11 -0
  42. package/dot_config/atuin/config.toml +23 -0
  43. package/dot_config/bat/config +8 -0
  44. package/dot_config/brave-flags.conf.tmpl +7 -0
  45. package/dot_config/btop/btop.conf +16 -0
  46. package/dot_config/btop/themes/tokyonight.theme +34 -0
  47. package/dot_config/bun/bunfig.toml.tmpl +33 -0
  48. package/dot_config/claude/mcp_servers.json +49 -0
  49. package/dot_config/clippy.toml +55 -0
  50. package/dot_config/containers/containers.conf +14 -0
  51. package/dot_config/curl/dot_curlrc +18 -0
  52. package/dot_config/dlv/config.yml +39 -0
  53. package/dot_config/docker/config.json.tmpl +15 -0
  54. package/dot_config/dotfiles/boot/README.md +11 -0
  55. package/dot_config/dotfiles/grub/README.md +11 -0
  56. package/dot_config/dotfiles/lock/README.md +11 -0
  57. package/dot_config/dotfiles/versions.env.tmpl +19 -0
  58. package/dot_config/duf/duf.conf +6 -0
  59. package/dot_config/duti/defaults.duti +5 -0
  60. package/dot_config/emoji/emoji.txt +34 -0
  61. package/dot_config/fastfetch/config.jsonc +28 -0
  62. package/dot_config/firefox/user.js +8 -0
  63. package/dot_config/flatpak/flatpak.list +4 -0
  64. package/dot_config/fontconfig/fonts.conf.tmpl +44 -0
  65. package/dot_config/gh/config.yml +12 -0
  66. package/dot_config/ghostty/config.tmpl +661 -0
  67. package/dot_config/git/attributes +12 -0
  68. package/dot_config/git/config.tmpl +77 -0
  69. package/dot_config/git/ignore +27 -0
  70. package/dot_config/gnupg/gpg-agent.conf.tmpl +11 -0
  71. package/dot_config/go/aliases.sh +61 -0
  72. package/dot_config/go/env.sh +24 -0
  73. package/dot_config/go/golangci.yml +118 -0
  74. package/dot_config/go/gopls.json +30 -0
  75. package/dot_config/goose/config.yaml +29 -0
  76. package/dot_config/gtk-3.0/gtk.css.tmpl +305 -0
  77. package/dot_config/gtk-3.0/settings.ini.tmpl +66 -0
  78. package/dot_config/gtk-4.0/gtk.css.tmpl +309 -0
  79. package/dot_config/gtk-4.0/settings.ini.tmpl +21 -0
  80. package/dot_config/htop/htoprc +20 -0
  81. package/dot_config/ice/README.md +13 -0
  82. package/dot_config/inputrc +2 -0
  83. package/dot_config/ipython/profile_default/ipython_config.py.tmpl +5 -0
  84. package/dot_config/just/justfile +104 -0
  85. package/dot_config/k9s/config.yaml.tmpl +65 -0
  86. package/dot_config/k9s/skins/catppuccin-mocha.yaml +116 -0
  87. package/dot_config/karabiner/karabiner.json +14 -0
  88. package/dot_config/kitty/kitty.conf.tmpl +517 -0
  89. package/dot_config/lazydocker/config.yml +186 -0
  90. package/dot_config/lazygit/config.yml +23 -0
  91. package/dot_config/lsd/config.yaml +19 -0
  92. package/dot_config/mas/masapps.txt +5 -0
  93. package/dot_config/minikube/config.json +13 -0
  94. package/dot_config/mise/config.toml +41 -0
  95. package/dot_config/mongosh/mongoshrc.js +67 -0
  96. package/dot_config/mycli/myclirc +67 -0
  97. package/dot_config/nano/nanorc +28 -0
  98. package/dot_config/ncdu/config +12 -0
  99. package/dot_config/nvim/init.lua +4 -0
  100. package/dot_config/nvim/lazy-lock.json +27 -0
  101. package/dot_config/nvim/lua/config/autocmds.lua +63 -0
  102. package/dot_config/nvim/lua/config/keymaps.lua +87 -0
  103. package/dot_config/nvim/lua/config/lazy.lua +34 -0
  104. package/dot_config/nvim/lua/config/options.lua +48 -0
  105. package/dot_config/nvim/lua/plugins/coding.lua +234 -0
  106. package/dot_config/nvim/lua/plugins/dap.lua +201 -0
  107. package/dot_config/nvim/lua/plugins/editor.lua +59 -0
  108. package/dot_config/nvim/lua/plugins/git.lua +9 -0
  109. package/dot_config/nvim/lua/plugins/lsp.lua +221 -0
  110. package/dot_config/nvim/lua/plugins/markdown.lua +17 -0
  111. package/dot_config/nvim/lua/plugins/rust.lua +33 -0
  112. package/dot_config/nvim/lua/plugins/sessions.lua +32 -0
  113. package/dot_config/nvim/lua/plugins/ui.lua +537 -0
  114. package/dot_config/nvim/snippets/all.lua +9 -0
  115. package/dot_config/nvim/snippets/python.lua +16 -0
  116. package/dot_config/pip/pip.conf.tmpl +32 -0
  117. package/dot_config/pypoetry/config.toml.tmpl +6 -0
  118. package/dot_config/pyrightconfig.json.tmpl +5 -0
  119. package/dot_config/raycast/README.md +13 -0
  120. package/dot_config/redis/redisclirc +41 -0
  121. package/dot_config/shell/00-container-detect.sh +53 -0
  122. package/dot_config/shell/00-core-paths.sh.tmpl +95 -0
  123. package/dot_config/shell/05-core-safety.sh.tmpl +13 -0
  124. package/dot_config/shell/40-ls-colors.sh.tmpl +31 -0
  125. package/dot_config/shell/50-logic-functions.sh.tmpl +10 -0
  126. package/dot_config/shell/90-theme-switch.sh +70 -0
  127. package/dot_config/shell/90-ux-aliases.sh.tmpl +35 -0
  128. package/dot_config/shell/91-ux-aliases-lazy.sh.tmpl +23 -0
  129. package/dot_config/shell/Brewfile +207 -0
  130. package/dot_config/shell/Brewfile.cask +92 -0
  131. package/dot_config/shell/Brewfile.cli +119 -0
  132. package/dot_config/shell/README.md +267 -0
  133. package/dot_config/shell/custom/context_suggest.zsh +68 -0
  134. package/dot_config/shell/custom/error_analysis.zsh +45 -0
  135. package/dot_config/sops/dot_sops.yaml +23 -0
  136. package/dot_config/starship.toml.tmpl +124 -0
  137. package/dot_config/task/Taskfile.yml +86 -0
  138. package/dot_config/tflint/tflint.hcl.tmpl +9 -0
  139. package/dot_config/tmux/tmux.conf.tmpl +181 -0
  140. package/dot_config/topgrade/topgrade.toml.tmpl +42 -0
  141. package/dot_config/vscode/extensions.txt +11 -0
  142. package/dot_config/vscode/settings.json.tmpl +123 -0
  143. package/dot_config/waybar/style.css +8 -0
  144. package/dot_config/wezterm/wezterm.lua.tmpl +236 -0
  145. package/dot_config/wget/wgetrc +12 -0
  146. package/dot_config/yarn/yarnrc.yml.tmpl +36 -0
  147. package/dot_config/yazi/yazi.toml +40 -0
  148. package/dot_config/zellij/config.kdl +79 -0
  149. package/dot_config/zsh/dot_zprofile +13 -0
  150. package/dot_config/zsh/dot_zshenv +6 -0
  151. package/dot_config/zsh/dot_zshrc.tmpl +199 -0
  152. package/dot_config/zsh/rc.d/05-ssh-agent.zsh +5 -0
  153. package/dot_config/zsh/rc.d/10-env.zsh.tmpl +28 -0
  154. package/dot_config/zsh/rc.d/20-zinit.zsh.tmpl +22 -0
  155. package/dot_config/zsh/rc.d/30-options.zsh.tmpl +123 -0
  156. package/dot_config/zsh/rc.d/40-bell.zsh.tmpl +20 -0
  157. package/dot_config/zsh/rc.d/50-login-fortune.zsh.tmpl +9 -0
  158. package/dot_local/bin/executable_ai_core +130 -0
  159. package/dot_local/bin/executable_b64 +59 -0
  160. package/dot_local/bin/executable_dot +178 -0
  161. package/dot_local/bin/executable_dot_completion +55 -0
  162. package/dot_local/bin/executable_epoch +62 -0
  163. package/dot_local/bin/executable_extract +108 -0
  164. package/dot_local/bin/executable_git-ai-commit +160 -0
  165. package/dot_local/bin/executable_git-ai-diff +154 -0
  166. package/dot_local/bin/executable_hash +123 -0
  167. package/dot_local/bin/executable_hex +79 -0
  168. package/dot_local/bin/executable_ip +37 -0
  169. package/dot_local/bin/executable_jsonv +54 -0
  170. package/dot_local/bin/executable_jwt +78 -0
  171. package/dot_local/bin/executable_kill-port +59 -0
  172. package/dot_local/bin/executable_lorem +103 -0
  173. package/dot_local/bin/executable_regex +96 -0
  174. package/dot_local/bin/executable_tmux-sessionizer +187 -0
  175. package/dot_local/bin/executable_tour +137 -0
  176. package/dot_local/bin/executable_update +108 -0
  177. package/dot_local/bin/executable_uuid +57 -0
  178. package/dot_local/bin/executable_yamlv +39 -0
  179. package/dot_local/bin/executable_zig-install +89 -0
  180. package/dot_local/bin/voice_ops +7 -0
  181. package/dot_local/share/bash-completion/completions/dot +54 -0
  182. package/dot_local/share/zsh/completions/.keep +0 -0
  183. package/install.sh +255 -0
  184. package/package.json +52 -76
  185. package/scripts/ci/validate-ci-config.sh +222 -0
  186. package/scripts/demo/record.sh +41 -0
  187. package/scripts/diagnostics/benchmark.sh +201 -0
  188. package/scripts/diagnostics/doctor.sh +115 -0
  189. package/scripts/diagnostics/drift-dashboard.sh +26 -0
  190. package/scripts/diagnostics/health.sh +356 -0
  191. package/scripts/diagnostics/history-analysis.sh +77 -0
  192. package/scripts/diagnostics/security-score.sh +392 -0
  193. package/scripts/diagnostics/verify_state.sh +60 -0
  194. package/scripts/dot/commands/appearance.sh +63 -0
  195. package/scripts/dot/commands/core.sh +130 -0
  196. package/scripts/dot/commands/diagnostics.sh +100 -0
  197. package/scripts/dot/commands/meta.sh +117 -0
  198. package/scripts/dot/commands/restore.sh +209 -0
  199. package/scripts/dot/commands/secrets.sh +81 -0
  200. package/scripts/dot/commands/security.sh +73 -0
  201. package/scripts/dot/commands/tools.sh +228 -0
  202. package/scripts/dot/lib/utils.sh +72 -0
  203. package/scripts/fonts/install-nerd-fonts.sh +59 -0
  204. package/scripts/fonts/patch-fonts.sh +34 -0
  205. package/scripts/ops/chezmoi-apply.sh +42 -0
  206. package/scripts/ops/chezmoi-diff.sh +14 -0
  207. package/scripts/ops/chezmoi-remove.sh +43 -0
  208. package/scripts/ops/chezmoi-update.sh +16 -0
  209. package/scripts/ops/heal.sh +466 -0
  210. package/scripts/ops/health-check.sh +380 -0
  211. package/scripts/ops/rollback.sh +531 -0
  212. package/scripts/ops/teleport.sh +32 -0
  213. package/scripts/secrets/age-init.sh +69 -0
  214. package/scripts/secrets/create-secrets-file.sh +44 -0
  215. package/scripts/secrets/encrypt-ssh-key.sh +42 -0
  216. package/scripts/security/backup.sh +17 -0
  217. package/scripts/security/dns-doh.sh +29 -0
  218. package/scripts/security/encryption-check.sh +39 -0
  219. package/scripts/security/enforce-policies.sh +339 -0
  220. package/scripts/security/firewall.sh +34 -0
  221. package/scripts/security/lock-configs.sh +57 -0
  222. package/scripts/security/lock-screen.sh +33 -0
  223. package/scripts/security/manage-secrets.sh +415 -0
  224. package/scripts/security/telemetry-kill.sh +28 -0
  225. package/scripts/security/usb-safety.sh +29 -0
  226. package/scripts/tests/README.md +241 -0
  227. package/scripts/tests/benchmark.sh +91 -0
  228. package/scripts/tests/framework/assertions.sh +283 -0
  229. package/scripts/tests/framework/mocks.sh +201 -0
  230. package/scripts/tests/framework/test_runner.sh +189 -0
  231. package/scripts/tests/integration/test_install.sh +237 -0
  232. package/scripts/tests/performance/benchmark_runner.sh +156 -0
  233. package/scripts/tests/performance/regression_check.sh +73 -0
  234. package/scripts/tests/performance/stress_test.sh +65 -0
  235. package/scripts/tests/test-aliases.sh +25 -0
  236. package/scripts/tests/test-docker.sh +48 -0
  237. package/scripts/tests/unit/test_ai_aliases.sh +158 -0
  238. package/scripts/tests/unit/test_ai_cli_checks.sh +47 -0
  239. package/scripts/tests/unit/test_backup.sh +227 -0
  240. package/scripts/tests/unit/test_case_functions.sh +238 -0
  241. package/scripts/tests/unit/test_cd_aliases.sh +367 -0
  242. package/scripts/tests/unit/test_dot_cli.sh +217 -0
  243. package/scripts/tests/unit/test_encode64.sh +67 -0
  244. package/scripts/tests/unit/test_environment.sh +78 -0
  245. package/scripts/tests/unit/test_extract.sh +163 -0
  246. package/scripts/tests/unit/test_framework_edge_cases.sh +113 -0
  247. package/scripts/tests/unit/test_genpass.sh +298 -0
  248. package/scripts/tests/unit/test_install_edge_cases.sh +167 -0
  249. package/scripts/tests/unit/test_installers.sh +172 -0
  250. package/scripts/tests/unit/test_keygen.sh +68 -0
  251. package/scripts/tests/unit/test_logging.sh +96 -0
  252. package/scripts/tests/unit/test_os_detection_comprehensive.sh +388 -0
  253. package/scripts/tests/unit/test_package_managers_comprehensive.sh +321 -0
  254. package/scripts/tests/unit/test_prependpath.sh +66 -0
  255. package/scripts/tests/unit/test_prependpath_refactored.sh +89 -0
  256. package/scripts/tests/unit/test_rd.sh +230 -0
  257. package/scripts/tests/unit/test_security_fixes.sh +130 -0
  258. package/scripts/tests/unit/test_security_scripts.sh +87 -0
  259. package/scripts/tests/unit/test_template_validation.sh +238 -0
  260. package/scripts/tests/unit/test_utility_functions.sh +144 -0
  261. package/scripts/tests/unit/test_wave1_alias_split.sh +132 -0
  262. package/scripts/tests/unit/test_wave1_ci_pinning.sh +61 -0
  263. package/scripts/tests/unit/test_wave1_gitleaks_config.sh +52 -0
  264. package/scripts/tests/unit/test_wave1_heal_fixes.sh +97 -0
  265. package/scripts/tests/unit/test_wave1_install_gpg.sh +35 -0
  266. package/scripts/tests/unit/test_wave1_zshenv_path.sh +89 -0
  267. package/scripts/tests/unit/test_wave1_zshrc_lazy_hook.sh +115 -0
  268. package/scripts/tests/unit/test_wave2_dot_new_guard.sh +75 -0
  269. package/scripts/tests/unit/test_zipf.sh +76 -0
  270. package/scripts/theme/apply-gnome-theme.sh +297 -0
  271. package/scripts/theme/install-boot-logo.sh +61 -0
  272. package/scripts/theme/install-catppuccin-themes.sh +346 -0
  273. package/scripts/theme/install-cursors.sh +24 -0
  274. package/scripts/theme/install-file-icons.sh +25 -0
  275. package/scripts/theme/install-grub-theme.sh +51 -0
  276. package/scripts/theme/install-lock-icon.sh +29 -0
  277. package/scripts/theme/switch.sh +250 -0
  278. package/scripts/theme/wallpaper-rotate.sh +82 -0
  279. package/scripts/theme/wallpaper-sync.sh +42 -0
  280. package/scripts/tools/cmatrix.sh +20 -0
  281. package/scripts/tools/detect-collisions.py +84 -0
  282. package/scripts/tools/emoji-picker.sh +45 -0
  283. package/scripts/tools/figlet-banner.sh +17 -0
  284. package/scripts/tools/log-rotate.sh +29 -0
  285. package/scripts/tools/lolcat-wrap.sh +18 -0
  286. package/scripts/tools/pipes.sh +47 -0
  287. package/scripts/tuning/linux.sh +175 -0
  288. package/scripts/tuning/macos.sh +46 -0
  289. package/templates/projects/go/README.md +7 -0
  290. package/templates/projects/go/cmd/__PROJECT_NAME__/main.go +7 -0
  291. package/templates/projects/go/go.mod +3 -0
  292. package/templates/projects/molecule/README.md +7 -0
  293. package/templates/projects/molecule/converge.yml +7 -0
  294. package/templates/projects/molecule/molecule.yml +16 -0
  295. package/templates/projects/node/README.md +7 -0
  296. package/templates/projects/node/package.json +10 -0
  297. package/templates/projects/node/src/index.js +2 -0
  298. package/templates/projects/packer/README.md +15 -0
  299. package/templates/projects/packer/main.pkr.hcl +15 -0
  300. package/templates/projects/python/README.md +7 -0
  301. package/templates/projects/python/pyproject.toml +25 -0
  302. package/templates/projects/python/src/__PROJECT_NAME__/__init__.py +1 -0
  303. package/templates/projects/python/tests/test_basic.py +2 -0
  304. package/dist/Makefile +0 -140
  305. package/dist/bin/backup.d.ts +0 -3
  306. package/dist/bin/backup.d.ts.map +0 -1
  307. package/dist/bin/backup.js +0 -4
  308. package/dist/bin/backup.js.map +0 -1
  309. package/dist/bin/constants.d.ts +0 -7
  310. package/dist/bin/constants.d.ts.map +0 -1
  311. package/dist/bin/constants.js +0 -2
  312. package/dist/bin/constants.js.map +0 -1
  313. package/dist/bin/copy.d.ts +0 -3
  314. package/dist/bin/copy.d.ts.map +0 -1
  315. package/dist/bin/copy.js +0 -3
  316. package/dist/bin/copy.js.map +0 -1
  317. package/dist/bin/dotfiles.d.ts +0 -3
  318. package/dist/bin/dotfiles.d.ts.map +0 -1
  319. package/dist/bin/dotfiles.js +0 -2
  320. package/dist/bin/dotfiles.js.map +0 -1
  321. package/dist/bin/download.d.ts +0 -3
  322. package/dist/bin/download.d.ts.map +0 -1
  323. package/dist/bin/download.js +0 -2
  324. package/dist/bin/download.js.map +0 -1
  325. package/dist/bin/index.d.ts +0 -2
  326. package/dist/bin/index.d.ts.map +0 -1
  327. package/dist/bin/index.js +0 -1
  328. package/dist/bin/index.js.map +0 -1
  329. package/dist/bin/transfer.d.ts +0 -3
  330. package/dist/bin/transfer.d.ts.map +0 -1
  331. package/dist/bin/transfer.js +0 -4
  332. package/dist/bin/transfer.js.map +0 -1
  333. package/dist/bin/unpack.d.ts +0 -3
  334. package/dist/bin/unpack.d.ts.map +0 -1
  335. package/dist/bin/unpack.js +0 -3
  336. package/dist/bin/unpack.js.map +0 -1
  337. package/dist/filesizes.txt +0 -382
  338. package/dist/lib/README.md +0 -86
  339. package/dist/lib/aliases/README.md +0 -57
  340. package/dist/lib/aliases/archives/README.md +0 -145
  341. package/dist/lib/aliases/archives/archives.aliases.sh +0 -114
  342. package/dist/lib/aliases/cd/README.md +0 -146
  343. package/dist/lib/aliases/cd/cd.aliases.sh +0 -51
  344. package/dist/lib/aliases/chmod/README.md +0 -160
  345. package/dist/lib/aliases/chmod/chmod.aliases.sh +0 -107
  346. package/dist/lib/aliases/clear/README.md +0 -37
  347. package/dist/lib/aliases/clear/clear.aliases.sh +0 -71
  348. package/dist/lib/aliases/configuration/README.md +0 -39
  349. package/dist/lib/aliases/configuration/configuration.aliases.sh +0 -70
  350. package/dist/lib/aliases/default/README.md +0 -40
  351. package/dist/lib/aliases/default/default.aliases.sh +0 -139
  352. package/dist/lib/aliases/dig/README.md +0 -37
  353. package/dist/lib/aliases/dig/dig.aliases.sh +0 -43
  354. package/dist/lib/aliases/disk-usage/README.md +0 -36
  355. package/dist/lib/aliases/disk-usage/du.aliases.sh +0 -84
  356. package/dist/lib/aliases/editor/README.md +0 -53
  357. package/dist/lib/aliases/editor/editor.aliases.sh +0 -26
  358. package/dist/lib/aliases/find/README.md +0 -46
  359. package/dist/lib/aliases/find/find.aliases.sh +0 -60
  360. package/dist/lib/aliases/gcloud/README.md +0 -63
  361. package/dist/lib/aliases/gcloud/gcloud.aliases.sh +0 -335
  362. package/dist/lib/aliases/git/README.md +0 -153
  363. package/dist/lib/aliases/git/git.aliases.sh +0 -544
  364. package/dist/lib/aliases/gnu/README.md +0 -89
  365. package/dist/lib/aliases/gnu/gnucoreutils-aliases.sh +0 -150
  366. package/dist/lib/aliases/heroku/README.md +0 -430
  367. package/dist/lib/aliases/heroku/heroku.aliases.sh +0 -1053
  368. package/dist/lib/aliases/interactive/README.md +0 -55
  369. package/dist/lib/aliases/interactive/interactive.aliases.sh +0 -50
  370. package/dist/lib/aliases/list/README.md +0 -131
  371. package/dist/lib/aliases/list/list.aliases.sh +0 -132
  372. package/dist/lib/aliases/macOS/README.md +0 -42
  373. package/dist/lib/aliases/macOS/macos.aliases.sh +0 -65
  374. package/dist/lib/aliases/make/README.md +0 -32
  375. package/dist/lib/aliases/make/make.aliases.sh +0 -35
  376. package/dist/lib/aliases/mkdir/README.md +0 -30
  377. package/dist/lib/aliases/mkdir/mkdir.aliases.sh +0 -29
  378. package/dist/lib/aliases/npm/README.md +0 -41
  379. package/dist/lib/aliases/npm/npm.aliases.sh +0 -61
  380. package/dist/lib/aliases/permission/README.md +0 -47
  381. package/dist/lib/aliases/permission/permission.aliases.sh +0 -73
  382. package/dist/lib/aliases/pnpm/README.md +0 -53
  383. package/dist/lib/aliases/pnpm/pnpm.aliases.sh +0 -76
  384. package/dist/lib/aliases/ps/README.md +0 -29
  385. package/dist/lib/aliases/ps/ps.aliases.sh +0 -20
  386. package/dist/lib/aliases/python/python.aliases.sh +0 -141
  387. package/dist/lib/aliases/rsync/README.md +0 -25
  388. package/dist/lib/aliases/rsync/rsync.aliases.sh +0 -17
  389. package/dist/lib/aliases/rust/README.md +0 -182
  390. package/dist/lib/aliases/rust/rust.aliases.sh +0 -119
  391. package/dist/lib/aliases/subversion/README.md +0 -66
  392. package/dist/lib/aliases/subversion/subversion.aliases.sh +0 -47
  393. package/dist/lib/aliases/sudo/README.md +0 -27
  394. package/dist/lib/aliases/sudo/sudo.aliases.sh +0 -20
  395. package/dist/lib/aliases/tmux/README.md +0 -31
  396. package/dist/lib/aliases/tmux/tmux.aliases.sh +0 -36
  397. package/dist/lib/aliases/update/README.md +0 -38
  398. package/dist/lib/aliases/update/update.aliases.sh +0 -310
  399. package/dist/lib/aliases/uuid/README.md +0 -24
  400. package/dist/lib/aliases/uuid/uuid.aliases.sh +0 -19
  401. package/dist/lib/aliases/wget/README.md +0 -27
  402. package/dist/lib/aliases/wget/wget.aliases.sh +0 -22
  403. package/dist/lib/aliases.sh +0 -50
  404. package/dist/lib/configurations/README.md +0 -18
  405. package/dist/lib/configurations/bash/bashrc +0 -167
  406. package/dist/lib/configurations/curl/cacert.pem +0 -3460
  407. package/dist/lib/configurations/curl/curlrc +0 -53
  408. package/dist/lib/configurations/default/color.sh +0 -24
  409. package/dist/lib/configurations/default/constants.sh +0 -43
  410. package/dist/lib/configurations/default/editor.sh +0 -18
  411. package/dist/lib/configurations/default/prompt.sh +0 -48
  412. package/dist/lib/configurations/input/inputrc +0 -23
  413. package/dist/lib/configurations/jshint/jshintrc +0 -37
  414. package/dist/lib/configurations/nano/nanorc +0 -35
  415. package/dist/lib/configurations/profile/profile +0 -37
  416. package/dist/lib/configurations/prompt/prompt.sh +0 -81
  417. package/dist/lib/configurations/tmux/default +0 -18
  418. package/dist/lib/configurations/tmux/display +0 -30
  419. package/dist/lib/configurations/tmux/linux +0 -18
  420. package/dist/lib/configurations/tmux/navigation +0 -30
  421. package/dist/lib/configurations/tmux/panes +0 -10
  422. package/dist/lib/configurations/tmux/theme +0 -29
  423. package/dist/lib/configurations/tmux/tmux +0 -21
  424. package/dist/lib/configurations/vim/vimrc +0 -193
  425. package/dist/lib/configurations/wget/wgetrc +0 -40
  426. package/dist/lib/configurations/zsh/zshrc +0 -50
  427. package/dist/lib/configurations.sh +0 -45
  428. package/dist/lib/functions/README.md +0 -92
  429. package/dist/lib/functions/apihealth.sh +0 -277
  430. package/dist/lib/functions/apilatency.sh +0 -157
  431. package/dist/lib/functions/apiload.sh +0 -165
  432. package/dist/lib/functions/backup.sh +0 -143
  433. package/dist/lib/functions/cdls.sh +0 -60
  434. package/dist/lib/functions/curlheader.sh +0 -78
  435. package/dist/lib/functions/curlstatus.sh +0 -74
  436. package/dist/lib/functions/curltime.sh +0 -75
  437. package/dist/lib/functions/encode64.sh +0 -107
  438. package/dist/lib/functions/environment.sh +0 -78
  439. package/dist/lib/functions/extract.sh +0 -86
  440. package/dist/lib/functions/freespace.sh +0 -67
  441. package/dist/lib/functions/genpwd.sh +0 -105
  442. package/dist/lib/functions/goto.sh +0 -67
  443. package/dist/lib/functions/hexdump.sh +0 -96
  444. package/dist/lib/functions/hiddenfiles.sh +0 -77
  445. package/dist/lib/functions/hostinfo.sh +0 -98
  446. package/dist/lib/functions/hstats.sh +0 -75
  447. package/dist/lib/functions/httpdebug.sh +0 -113
  448. package/dist/lib/functions/kebabcase.sh +0 -61
  449. package/dist/lib/functions/keygen.sh +0 -194
  450. package/dist/lib/functions/last.sh +0 -112
  451. package/dist/lib/functions/logout.sh +0 -120
  452. package/dist/lib/functions/lowercase.sh +0 -61
  453. package/dist/lib/functions/matrix.sh +0 -216
  454. package/dist/lib/functions/mount_read_only.sh +0 -11
  455. package/dist/lib/functions/myproc.sh +0 -9
  456. package/dist/lib/functions/prependpath.sh +0 -21
  457. package/dist/lib/functions/ql.sh +0 -9
  458. package/dist/lib/functions/rd.sh +0 -17
  459. package/dist/lib/functions/remove_disk.sh +0 -11
  460. package/dist/lib/functions/ren.sh +0 -73
  461. package/dist/lib/functions/sentencecase.sh +0 -63
  462. package/dist/lib/functions/showhiddenfiles.sh +0 -14
  463. package/dist/lib/functions/size.sh +0 -16
  464. package/dist/lib/functions/snakecase.sh +0 -61
  465. package/dist/lib/functions/stopwatch.sh +0 -15
  466. package/dist/lib/functions/sysinfo.sh +0 -145
  467. package/dist/lib/functions/titlecase.sh +0 -65
  468. package/dist/lib/functions/uppercase.sh +0 -61
  469. package/dist/lib/functions/view-source.sh +0 -9
  470. package/dist/lib/functions/vscode.sh +0 -32
  471. package/dist/lib/functions/whoisport.sh +0 -14
  472. package/dist/lib/functions/zipf.sh +0 -16
  473. package/dist/lib/functions.sh +0 -46
  474. package/dist/lib/history.sh +0 -90
  475. package/dist/lib/paths/README.md +0 -52
  476. package/dist/lib/paths/custom.paths.sh +0 -40
  477. package/dist/lib/paths/default.paths.sh +0 -37
  478. package/dist/lib/paths.sh +0 -46
  479. package/dist/scripts/backup.sh +0 -95
  480. package/dist/scripts/banner.sh +0 -20
  481. package/dist/scripts/build.sh +0 -41
  482. package/dist/scripts/clean.sh +0 -31
  483. package/dist/scripts/compile.sh +0 -54
  484. package/dist/scripts/copy.sh +0 -108
  485. package/dist/scripts/dotfiles.sh +0 -63
  486. package/dist/scripts/download.sh +0 -35
  487. package/dist/scripts/help.sh +0 -57
  488. package/dist/scripts/ssh.sh +0 -55
  489. package/dist/scripts/unpack.sh +0 -28
  490. /package/{dist/lib/configurations → dot_config}/gem/gemrc +0 -0
@@ -1,277 +0,0 @@
1
- #!/usr/bin/env bash
2
- ################################################################################
3
- # 🅳🅾🆃🅵🅸🅻🅴🆂 - apihealth
4
- # Made with ♥ by Sebastien Rousseau
5
- # License: MIT
6
- #
7
- # apihealth - API Health Check Script
8
- #
9
- # This script checks the health/status of one or multiple APIs by sending HTTP
10
- # requests to specified endpoints. It supports different HTTP methods, allows
11
- # specifying expected HTTP status codes, and accepts custom HTTP headers.
12
- #
13
- # Usage:
14
- # apihealth [OPTIONS] URL [URL ...]
15
- #
16
- # Options:
17
- # -h, --help Show this help message and exit
18
- # -v, --version Show script version and exit
19
- # -m, --method METHOD Specify HTTP method (default: GET)
20
- # -e, --expect STATUS Specify expected HTTP status code (default: 200)
21
- # -H, --header HEADER Specify HTTP header (can be used multiple times)
22
- # -t, --timeout SECONDS Specify request timeout in seconds (default: 10)
23
- #
24
- # Examples:
25
- # apihealth https://api.example.com/health
26
- # apihealth -m POST -e 201 https://api.example.com/create
27
- # apihealth --method GET --expect 204 https://api.example.com/status1 https://api.example.com/status2
28
- # apihealth -H "Authorization: Bearer token123" -H "Content-Type: application/json" https://api.example.com/secure
29
- # apihealth -t 5 https://api.example.com/health
30
- #
31
- ################################################################################
32
-
33
- # Constants
34
- APIHEALTH_SCRIPT_NAME="apihealth"
35
- APIHEALTH_VERSION="0.1"
36
-
37
- # Default values
38
- DEFAULT_METHOD="GET"
39
- DEFAULT_EXPECT_STATUS=200
40
- DEFAULT_TIMEOUT=10
41
-
42
- # Initialize headers array
43
- HEADERS=()
44
-
45
- #######################################
46
- # Print usage information.
47
- # Returns:
48
- # 0 if help was shown
49
- #######################################
50
- print_help() {
51
- cat << EOF
52
- Usage: $APIHEALTH_SCRIPT_NAME [OPTIONS] URL [URL ...]
53
-
54
- Options:
55
- -h, --help Show this help message and exit
56
- -v, --version Show script version and exit
57
- -m, --method METHOD Specify HTTP method (default: GET)
58
- -e, --expect STATUS Specify expected HTTP status code (default: 200)
59
- -H, --header HEADER Specify HTTP header (can be used multiple times)
60
- -t, --timeout SECONDS Specify request timeout in seconds (default: 10)
61
-
62
- Examples:
63
- $APIHEALTH_SCRIPT_NAME https://api.example.com/health
64
- $APIHEALTH_SCRIPT_NAME -m POST -e 201 https://api.example.com/create
65
- $APIHEALTH_SCRIPT_NAME -H "Authorization: Bearer token123" https://api.example.com/secure
66
- $APIHEALTH_SCRIPT_NAME -t 5 https://api.example.com/health
67
- EOF
68
- return 0
69
- }
70
-
71
-
72
- #######################################
73
- # Print version information.
74
- # Returns:
75
- # 0 if version was shown
76
- #######################################
77
- print_version() {
78
- echo "$APIHEALTH_SCRIPT_NAME version $APIHEALTH_VERSION"
79
- return 0
80
- }
81
-
82
- #######################################
83
- # Check if required dependencies are installed.
84
- # Returns:
85
- # 1 if dependencies are missing
86
- #######################################
87
- check_dependencies() {
88
- if ! command -v curl >/dev/null 2>&1; then
89
- echo -e "\e[31m[ERROR]\e[0m Required command 'curl' is not installed."
90
- return 1
91
- fi
92
- return 0
93
- }
94
-
95
- #######################################
96
- # Check API health/status endpoints.
97
- # Arguments:
98
- # $1 - URL
99
- # $2 - HTTP Method
100
- # $3 - Expected HTTP Status Code
101
- # $4 - Timeout in seconds
102
- # Returns:
103
- # 0 if health check passed, 1 if failed
104
- #######################################
105
- apihealthealth() {
106
- local url="$1"
107
- local method="${2:-$DEFAULT_METHOD}"
108
- local expect_status="${3:-$DEFAULT_EXPECT_STATUS}"
109
- local timeout="${4:-$DEFAULT_TIMEOUT}"
110
- local curl_headers=()
111
-
112
- echo -e "[INFO] Testing API health: $url"
113
- echo -e "[INFO] Method: $method, Expected Status: $expect_status, Timeout: ${timeout}s"
114
-
115
- # Build curl headers array
116
- if [[ ${#HEADERS[@]} -gt 0 ]]; then
117
- for header in "${HEADERS[@]}"; do
118
- curl_headers+=(-H "$header")
119
- done
120
- fi
121
-
122
- # Perform the HTTP request
123
- local response
124
- if [[ ${#curl_headers[@]} -gt 0 ]]; then
125
- response=$(curl -s -o /dev/null -w "%{http_code}" \
126
- -X "$method" \
127
- --max-time "$timeout" \
128
- "${curl_headers[@]}" \
129
- "$url" 2>/dev/null || echo "000")
130
- else
131
- response=$(curl -s -o /dev/null -w "%{http_code}" \
132
- -X "$method" \
133
- --max-time "$timeout" \
134
- "$url" 2>/dev/null || echo "000")
135
- fi
136
-
137
- if [[ "$response" -eq "$expect_status" ]]; then
138
- echo -e "\e[32m[SUCCESS]\e[0m API is healthy (Status: $response)"
139
- return 0
140
- elif [[ "$response" -eq "000" ]]; then
141
- echo -e "\e[31m[ERROR]\e[0m API health check failed (No response)"
142
- return 1
143
- else
144
- echo -e "\e[31m[ERROR]\e[0m API health check failed (Status: $response)"
145
- return 1
146
- fi
147
- }
148
-
149
- #######################################
150
- # Parse command-line arguments.
151
- # Arguments:
152
- # Command line arguments
153
- # Returns:
154
- # 0 if parsing successful, 1 if failed
155
- #######################################
156
- parse_arguments() {
157
- # Initialize variables
158
- METHOD="$DEFAULT_METHOD"
159
- EXPECT_STATUS="$DEFAULT_EXPECT_STATUS"
160
- TIMEOUT="$DEFAULT_TIMEOUT"
161
- URLS=()
162
- HEADERS=()
163
-
164
- while [[ $# -gt 0 ]]; do
165
- case "$1" in
166
- -h|--help)
167
- print_help
168
- return 2 # Special return code for help/version display
169
- ;;
170
- -v|--version)
171
- print_version
172
- return 2 # Special return code for help/version display
173
- ;;
174
- -m|--method)
175
- if [[ -n "${2:-}" && ! "$2" =~ ^- ]]; then
176
- METHOD="$2"
177
- shift 2
178
- else
179
- echo -e "\e[31m[ERROR]\e[0m --method requires a non-empty option argument."
180
- return 1
181
- fi
182
- ;;
183
- -e|--expect)
184
- if [[ -n "${2:-}" && ! "$2" =~ ^- ]]; then
185
- EXPECT_STATUS="$2"
186
- shift 2
187
- else
188
- echo -e "\e[31m[ERROR]\e[0m --expect requires a non-empty option argument."
189
- return 1
190
- fi
191
- ;;
192
- -H|--header)
193
- if [[ -n "${2:-}" && ! "$2" =~ ^- ]]; then
194
- if [[ ! "$2" =~ ^[^:]+:[[:space:]]*[^[:space:]]+.*$ ]]; then
195
- echo -e "\e[31m[ERROR]\e[0m Invalid header format: '$2'. Expected 'Key: Value'"
196
- return 1
197
- fi
198
- HEADERS+=("$2")
199
- shift 2
200
- else
201
- echo -e "\e[31m[ERROR]\e[0m --header requires a non-empty option argument."
202
- return 1
203
- fi
204
- ;;
205
- -t|--timeout)
206
- if [[ -n "${2:-}" && ! "$2" =~ ^- ]]; then
207
- if ! [[ "$2" =~ ^[0-9]+$ ]]; then
208
- echo -e "\e[31m[ERROR]\e[0m Timeout must be a positive integer."
209
- return 1
210
- fi
211
- TIMEOUT="$2"
212
- shift 2
213
- else
214
- echo -e "\e[31m[ERROR]\e[0m --timeout requires a non-empty option argument."
215
- return 1
216
- fi
217
- ;;
218
- -*)
219
- echo -e "\e[31m[ERROR]\e[0m Unknown option: $1"
220
- print_help
221
- return 1
222
- ;;
223
- *)
224
- URLS+=("$1")
225
- shift
226
- ;;
227
- esac
228
- done
229
-
230
- # Validate URLs provided
231
- if [[ ${#URLS[@]} -eq 0 ]]; then
232
- echo -e "\e[31m[ERROR]\e[0m No URLs provided."
233
- print_help
234
- return 1
235
- fi
236
-
237
- return 0
238
- }
239
-
240
- #######################################
241
- # Main execution function.
242
- # Arguments:
243
- # Command line arguments
244
- # Returns:
245
- # 0 if all checks passed, 1 if any failed
246
- #######################################
247
- apihealth_main() {
248
- if ! check_dependencies; then
249
- return 1
250
- fi
251
-
252
- if ! parse_arguments "$@"; then
253
- return 1
254
- fi
255
-
256
- local overall_status=0
257
-
258
- for url in "${URLS[@]}"; do
259
- if ! apihealthealth "$url" "$METHOD" "$EXPECT_STATUS" "$TIMEOUT"; then
260
- overall_status=1
261
- fi
262
- echo "----------------------------------------"
263
- done
264
-
265
- if [[ "$overall_status" -eq 0 ]]; then
266
- echo -e "\e[32mAll API health checks passed successfully.\e[0m"
267
- else
268
- echo -e "\e[31mSome API health checks failed.\e[0m"
269
- fi
270
-
271
- return "$overall_status"
272
- }
273
-
274
- # Define the function for sourcing
275
- apihealth() {
276
- apihealth_main "$@"
277
- }
@@ -1,157 +0,0 @@
1
- #!/usr/bin/env bash
2
- ################################################################################
3
- # 🅳🅾🆃🅵🅸🅻🅴🆂 - apilatency
4
- # Made with ♥ by Sebastien Rousseau
5
- # License: MIT
6
- #
7
- # apilatency - API Latency / Response Time Monitor
8
- #
9
- # This script monitors the response time of an API endpoint over a specified
10
- # number of requests and interval.
11
- #
12
- # Usage:
13
- # apilatency URL [COUNT] [INTERVAL]
14
- #
15
- # Options:
16
- # -h, --help Show this help message and exit
17
- # -v, --version Show script version and exit
18
- #
19
- # Examples:
20
- # apilatency https://api.example.com 10 1
21
- # apilatency https://api.example.com 20 0.5
22
- #
23
- ################################################################################
24
-
25
- # Constants
26
- APILATENCY_SCRIPT_NAME="apilatency"
27
- APILATENCY_VERSION="0.0.1"
28
-
29
- #######################################
30
- # Print usage information.
31
- #######################################
32
- apilatency_print_help() {
33
- cat << EOF
34
- Usage: $APILATENCY_SCRIPT_NAME URL [COUNT] [INTERVAL]
35
-
36
- Arguments:
37
- URL The API endpoint to monitor
38
- COUNT Number of requests to perform (default: 10)
39
- INTERVAL Delay between requests in seconds (default: 1)
40
-
41
- Options:
42
- -h, --help Show this help message and exit
43
- -v, --version Show script version and exit
44
-
45
- Examples:
46
- $APILATENCY_SCRIPT_NAME https://api.example.com 10 1
47
- $APILATENCY_SCRIPT_NAME https://api.example.com 20 0.5
48
- EOF
49
- }
50
-
51
- #######################################
52
- # Print version information.
53
- #######################################
54
- apilatency_print_version() {
55
- echo "$APILATENCY_SCRIPT_NAME version $APILATENCY_VERSION"
56
- }
57
-
58
- #######################################
59
- # Monitor API response time.
60
- #######################################
61
- apilatency_monitor() {
62
- local url="$1"
63
- local count="${2:-10}"
64
- local interval="${3:-1}"
65
-
66
- echo -e "[INFO] Monitoring API latency for $url"
67
- echo -e "[INFO] Total Requests: $count, Delay Between Requests: $interval seconds"
68
- echo "Time,Response_Time"
69
-
70
- for ((i = 1; i <= count; i++)); do
71
- local start=$(date +%s.%N)
72
- curl -s -o /dev/null "$url"
73
- local end=$(date +%s.%N)
74
- local latency=$(echo "$end - $start" | bc)
75
- echo "$(date '+%H:%M:%S'),$latency"
76
- sleep "$interval"
77
- done
78
-
79
- echo -e "\e[32m[SUCCESS]\e[0m Latency monitoring completed."
80
- }
81
-
82
- #######################################
83
- # Parse command-line arguments.
84
- #######################################
85
- apilatency_parse_arguments() {
86
- # First argument handling
87
- case "${1:-}" in
88
- -h|--help)
89
- apilatency_print_help
90
- return 2
91
- ;;
92
- -v|--version)
93
- apilatency_print_version
94
- return 2
95
- ;;
96
- "")
97
- echo -e "\e[31m[ERROR]\e[0m Missing required URL argument."
98
- apilatency_print_help
99
- return 1
100
- ;;
101
- esac
102
-
103
- # Store arguments
104
- local url="$1"
105
- local count="${2:-10}"
106
- local interval="${3:-1}"
107
-
108
- # Validate URL
109
- if [[ ! "$url" =~ ^https?:// ]]; then
110
- echo -e "\e[31m[ERROR]\e[0m Invalid URL format. Must start with http:// or https://"
111
- return 1
112
- fi
113
-
114
- # Validate count
115
- if ! [[ "$count" =~ ^[0-9]+$ ]]; then
116
- echo -e "\e[31m[ERROR]\e[0m COUNT must be a positive integer."
117
- return 1
118
- fi
119
-
120
- # Validate interval
121
- if ! [[ "$interval" =~ ^[0-9]+(\.[0-9]+)?$ ]]; then
122
- echo -e "\e[31m[ERROR]\e[0m INTERVAL must be a positive number."
123
- return 1
124
- fi
125
-
126
- # Export variables for use in main function
127
- URL="$url"
128
- COUNT="$count"
129
- INTERVAL="$interval"
130
-
131
- return 0
132
- }
133
-
134
- #######################################
135
- # Main function.
136
- #######################################
137
- apilatency_main() {
138
- apilatency_parse_arguments "$@"
139
- local parse_result=$?
140
-
141
- case $parse_result in
142
- 0) # Normal operation
143
- apilatency_monitor "$URL" "$COUNT" "$INTERVAL"
144
- ;;
145
- 2) # Help or version was displayed
146
- return 0
147
- ;;
148
- *) # Error occurred
149
- return 1
150
- ;;
151
- esac
152
- }
153
-
154
- # The main function that gets exported for use
155
- apilatency() {
156
- apilatency_main "$@"
157
- }
@@ -1,165 +0,0 @@
1
- #!/usr/bin/env bash
2
- ################################################################################
3
- # 🅳🅾🆃🅵🅸🅻🅴🆂 - apiload
4
- # Made with ♥ by Sebastien Rousseau
5
- # License: MIT
6
- #
7
- # apiload - API Load Testing Script
8
- #
9
- # This script performs basic load testing on a specified API endpoint using
10
- # default utilities available in macOS, Linux, or Windows environments. It allows
11
- # you to specify the number of total requests and the delay between requests.
12
- #
13
- # Usage:
14
- # apiload URL [REQUESTS] [DELAY]
15
- #
16
- # Examples:
17
- # apiload https://api.example.com 100 0.1
18
- # apiload https://api.example.com 500 0.5
19
- #
20
- ################################################################################
21
-
22
- # Constants
23
- APILOAD_SCRIPT_NAME="apiload"
24
- APILOAD_VERSION="0.0.1"
25
-
26
- #######################################
27
- # Print usage information.
28
- #######################################
29
- apiload_print_help() {
30
- cat << EOF
31
- Usage: $APILOAD_SCRIPT_NAME URL [REQUESTS] [DELAY]
32
-
33
- Arguments:
34
- URL The API endpoint to load test
35
- REQUESTS Number of total requests to perform (default: 100)
36
- DELAY Delay between requests in seconds (default: 0.1)
37
-
38
- Options:
39
- -h, --help Show this help message and exit
40
- -v, --version Show script version and exit
41
-
42
- Examples:
43
- $APILOAD_SCRIPT_NAME https://api.example.com 100 0.1
44
- $APILOAD_SCRIPT_NAME https://api.example.com 500 0.5
45
- EOF
46
- }
47
-
48
- #######################################
49
- # Print version information.
50
- #######################################
51
- apiload_print_version() {
52
- echo "$APILOAD_SCRIPT_NAME version $APILOAD_VERSION"
53
- }
54
-
55
- #######################################
56
- # Perform API load testing.
57
- #######################################
58
- apiload_load_test() {
59
- local url="$1"
60
- local requests="${2:-100}"
61
- local delay="${3:-0.1}"
62
-
63
- echo -e "[INFO] Running load test on $url"
64
- echo -e "[INFO] Total Requests: $requests, Delay Between Requests: $delay seconds"
65
-
66
- local success_count=0
67
- local fail_count=0
68
-
69
- for ((i = 1; i <= requests; i++)); do
70
- response=$(curl -s -o /dev/null -w "%{http_code}" "$url")
71
- if [[ "$response" -eq 200 ]]; then
72
- echo -e "\e[32m[Request $i]\e[0m Success (HTTP 200)"
73
- ((success_count++))
74
- else
75
- echo -e "\e[31m[Request $i]\e[0m Failed (HTTP $response)"
76
- ((fail_count++))
77
- fi
78
- sleep "$delay"
79
- done
80
-
81
- echo -e "\n[SUMMARY]"
82
- echo -e "Total Requests: $requests"
83
- echo -e "Successful: \e[32m$success_count\e[0m"
84
- echo -e "Failed: \e[31m$fail_count\e[0m"
85
- echo -e "Success Rate: $(( (success_count * 100) / requests ))%"
86
-
87
- echo -e "\n\e[32m[SUCCESS]\e[0m Load test completed."
88
- }
89
-
90
- #######################################
91
- # Parse command-line arguments.
92
- #######################################
93
- apiload_parse_arguments() {
94
- # First argument handling
95
- case "${1:-}" in
96
- -h|--help)
97
- apiload_print_help
98
- return 2
99
- ;;
100
- -v|--version)
101
- apiload_print_version
102
- return 2
103
- ;;
104
- "")
105
- echo -e "\e[31m[ERROR]\e[0m Missing required URL argument."
106
- apiload_print_help
107
- return 1
108
- ;;
109
- esac
110
-
111
- # Store arguments
112
- local url="$1"
113
- local requests="${2:-100}"
114
- local delay="${3:-0.1}"
115
-
116
- # Validate URL
117
- if [[ ! "$url" =~ ^https?:// ]]; then
118
- echo -e "\e[31m[ERROR]\e[0m Invalid URL format. Must start with http:// or https://"
119
- return 1
120
- fi
121
-
122
- # Validate requests
123
- if ! [[ "$requests" =~ ^[0-9]+$ ]]; then
124
- echo -e "\e[31m[ERROR]\e[0m REQUESTS must be a positive integer."
125
- return 1
126
- fi
127
-
128
- # Validate delay
129
- if ! [[ "$delay" =~ ^[0-9]+(\.[0-9]+)?$ ]]; then
130
- echo -e "\e[31m[ERROR]\e[0m DELAY must be a positive number."
131
- return 1
132
- fi
133
-
134
- # Export variables for use in main function
135
- URL="$url"
136
- REQUESTS="$requests"
137
- DELAY="$delay"
138
-
139
- return 0
140
- }
141
-
142
- #######################################
143
- # Main function.
144
- #######################################
145
- apiload_main() {
146
- apiload_parse_arguments "$@"
147
- local parse_result=$?
148
-
149
- case $parse_result in
150
- 0) # Normal operation
151
- apiload_load_test "$URL" "$REQUESTS" "$DELAY"
152
- ;;
153
- 2) # Help or version was displayed
154
- return 0
155
- ;;
156
- *) # Error occurred
157
- return 1
158
- ;;
159
- esac
160
- }
161
-
162
- # The apiload_main function that gets exported for use
163
- apiload() {
164
- apiload_main "$@"
165
- }