machineconfig 1.92__py3-none-any.whl → 1.94__py3-none-any.whl

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.

Potentially problematic release.


This version of machineconfig might be problematic. Click here for more details.

Files changed (694) hide show
  1. machineconfig/__init__.py +0 -8
  2. machineconfig/cluster/__init__.py +0 -0
  3. machineconfig/cluster/cloud_manager.py +359 -0
  4. machineconfig/cluster/data_transfer.py +56 -0
  5. machineconfig/cluster/distribute.py +280 -0
  6. machineconfig/cluster/file_manager.py +238 -0
  7. machineconfig/cluster/job_params.py +148 -0
  8. machineconfig/cluster/loader_runner.py +150 -0
  9. machineconfig/cluster/remote_machine.py +281 -0
  10. machineconfig/cluster/script_execution.py +209 -0
  11. machineconfig/cluster/script_notify_upon_completion.py +63 -0
  12. machineconfig/cluster/self_ssh.py +59 -0
  13. machineconfig/cluster/session_managers.py +183 -0
  14. machineconfig/cluster/templates/__init__.py +0 -0
  15. machineconfig/cluster/templates/cli_click.py +104 -0
  16. machineconfig/cluster/templates/cli_gooey.py +119 -0
  17. machineconfig/cluster/templates/cli_trogon.py +21 -0
  18. machineconfig/cluster/templates/f.py +4 -0
  19. machineconfig/cluster/templates/run_cloud.py +52 -0
  20. machineconfig/cluster/templates/run_cluster.py +69 -0
  21. machineconfig/cluster/templates/run_remote.py +67 -0
  22. machineconfig/cluster/templates/utils.py +37 -0
  23. machineconfig/jobs/__pycache__/__init__.cpython-311.pyc +0 -0
  24. machineconfig/jobs/linux/msc/lid.sh +26 -0
  25. machineconfig/jobs/linux/msc/network.sh +39 -0
  26. machineconfig/jobs/python/__pycache__/__init__.cpython-311.pyc +0 -0
  27. machineconfig/jobs/python/__pycache__/check_installations.cpython-311.pyc +0 -0
  28. machineconfig/jobs/python/__pycache__/checkout_version.cpython-311.pyc +0 -0
  29. machineconfig/jobs/python/__pycache__/python_ve_symlink.cpython-311.pyc +0 -0
  30. machineconfig/jobs/python/archive/python_tools.txt +12 -0
  31. machineconfig/jobs/python/check_installations.py +26 -11
  32. machineconfig/jobs/python/checkout_version.py +24 -13
  33. machineconfig/jobs/python/create_zellij_template.py +4 -4
  34. machineconfig/jobs/python/python_cargo_build_share.py +13 -4
  35. machineconfig/jobs/python/python_ve_symlink.py +15 -4
  36. machineconfig/jobs/python/vscode/__pycache__/api.cpython-311.pyc +0 -0
  37. machineconfig/jobs/python/vscode/__pycache__/link_ve.cpython-311.pyc +0 -0
  38. machineconfig/jobs/python/vscode/api.py +48 -0
  39. machineconfig/jobs/python/vscode/link_ve.py +64 -0
  40. machineconfig/jobs/python/vscode/select_interpreter.py +84 -0
  41. machineconfig/jobs/python/vscode/sync_code.py +60 -0
  42. machineconfig/jobs/python_custom_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  43. machineconfig/jobs/python_custom_installers/__pycache__/hx.cpython-311.pyc +0 -0
  44. machineconfig/jobs/python_custom_installers/archive/ngrok.py +62 -0
  45. machineconfig/jobs/python_custom_installers/dev/aider.py +37 -0
  46. machineconfig/jobs/python_custom_installers/dev/alacritty.py +72 -0
  47. machineconfig/jobs/python_custom_installers/dev/brave.py +67 -0
  48. machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +50 -0
  49. machineconfig/jobs/python_custom_installers/dev/code.py +62 -0
  50. machineconfig/jobs/python_custom_installers/dev/cursor.py +67 -0
  51. machineconfig/jobs/python_custom_installers/dev/docker.py +70 -0
  52. machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +77 -0
  53. machineconfig/jobs/python_custom_installers/dev/espanso.py +82 -0
  54. machineconfig/jobs/python_custom_installers/dev/goes.py +59 -0
  55. machineconfig/jobs/python_custom_installers/dev/lvim.py +76 -0
  56. machineconfig/jobs/python_custom_installers/dev/nerdfont.py +67 -0
  57. machineconfig/jobs/python_custom_installers/dev/redis.py +69 -0
  58. machineconfig/jobs/python_custom_installers/dev/reverse_proxy.md +31 -0
  59. machineconfig/jobs/python_custom_installers/dev/warp-cli.py +71 -0
  60. machineconfig/jobs/python_custom_installers/dev/wezterm.py +71 -0
  61. machineconfig/jobs/python_custom_installers/gh.py +46 -4
  62. machineconfig/jobs/python_custom_installers/hx.py +103 -18
  63. machineconfig/jobs/python_custom_installers/scripts/linux/brave.sh +52 -0
  64. machineconfig/jobs/python_custom_installers/scripts/linux/docker.sh +140 -0
  65. machineconfig/jobs/python_custom_installers/scripts/linux/docker_start.sh +48 -0
  66. machineconfig/jobs/python_custom_installers/scripts/linux/edge.sh +47 -0
  67. machineconfig/jobs/python_custom_installers/scripts/linux/nerdfont.sh +64 -0
  68. machineconfig/jobs/python_custom_installers/scripts/linux/pgsql.sh +53 -0
  69. machineconfig/jobs/python_custom_installers/scripts/linux/redis.sh +76 -0
  70. machineconfig/jobs/python_custom_installers/scripts/linux/timescaledb.sh +91 -0
  71. machineconfig/jobs/python_custom_installers/scripts/linux/vscode.sh +66 -0
  72. machineconfig/jobs/python_custom_installers/scripts/linux/warp-cli.sh +77 -0
  73. machineconfig/jobs/python_custom_installers/scripts/linux/wezterm.sh +43 -0
  74. machineconfig/jobs/python_generic_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  75. machineconfig/jobs/python_generic_installers/config.json +267 -0
  76. machineconfig/jobs/python_generic_installers/dev/config.archive.json +18 -0
  77. machineconfig/jobs/python_generic_installers/dev/config.json +394 -0
  78. machineconfig/jobs/python_linux_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  79. machineconfig/jobs/python_linux_installers/archive/config.json +10 -0
  80. machineconfig/jobs/python_linux_installers/config.json +74 -0
  81. machineconfig/jobs/python_linux_installers/dev/config.json +138 -0
  82. machineconfig/jobs/python_windows_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  83. machineconfig/jobs/python_windows_installers/archive/file.json +11 -0
  84. machineconfig/jobs/python_windows_installers/config.json +50 -0
  85. machineconfig/jobs/python_windows_installers/dev/config.json +3 -0
  86. machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +14 -0
  87. machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +7 -0
  88. machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +14 -0
  89. machineconfig/jobs/windows/start_terminal.ps1 +6 -0
  90. machineconfig/jobs/windows/startup_file.cmd +2 -0
  91. machineconfig/profile/__pycache__/__init__.cpython-311.pyc +0 -0
  92. machineconfig/profile/__pycache__/create.cpython-311.pyc +0 -0
  93. machineconfig/profile/__pycache__/shell.cpython-311.pyc +0 -0
  94. machineconfig/profile/create.py +47 -13
  95. machineconfig/profile/create_hardlinks.py +42 -12
  96. machineconfig/profile/records/generic/shares.toml +5 -0
  97. machineconfig/profile/records/linux/apps_summary_report.csv +48 -0
  98. machineconfig/profile/records/linux/apps_summary_report.md +49 -0
  99. machineconfig/profile/records/windows/apps_summary_report.csv +1 -0
  100. machineconfig/profile/records/windows/apps_summary_report.md +2 -0
  101. machineconfig/profile/shell.py +62 -11
  102. machineconfig/scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  103. machineconfig/scripts/cloud/init.sh +128 -0
  104. machineconfig/scripts/linux/activate_ve +87 -0
  105. machineconfig/scripts/linux/archive/tmate_conn +12 -0
  106. machineconfig/scripts/linux/archive/tmate_start +12 -0
  107. machineconfig/scripts/linux/archive/transfer_wsl_win +5 -0
  108. machineconfig/scripts/linux/checkout_versions +8 -0
  109. machineconfig/scripts/linux/choose_wezterm_theme +9 -0
  110. machineconfig/scripts/linux/cloud_copy +9 -0
  111. machineconfig/scripts/linux/cloud_manager +8 -0
  112. machineconfig/scripts/linux/cloud_mount +24 -0
  113. machineconfig/scripts/linux/cloud_repo_sync +22 -0
  114. machineconfig/scripts/linux/cloud_sync +24 -0
  115. machineconfig/scripts/linux/croshell +24 -0
  116. machineconfig/scripts/linux/devops +24 -0
  117. machineconfig/scripts/linux/fire +46 -0
  118. machineconfig/scripts/linux/ftpx +8 -0
  119. machineconfig/scripts/linux/fzf2g +21 -0
  120. machineconfig/scripts/linux/fzfag +17 -0
  121. machineconfig/scripts/linux/fzffg +25 -0
  122. machineconfig/scripts/linux/fzfg +23 -0
  123. machineconfig/scripts/linux/fzfrga +21 -0
  124. machineconfig/scripts/linux/gh_models +11 -0
  125. machineconfig/scripts/linux/kill_process +10 -0
  126. machineconfig/scripts/linux/mount_drive +128 -0
  127. machineconfig/scripts/linux/mount_nfs +62 -0
  128. machineconfig/scripts/linux/mount_nw_drive +72 -0
  129. machineconfig/scripts/linux/mount_smb +3 -0
  130. machineconfig/scripts/linux/programs +21 -0
  131. machineconfig/scripts/linux/repos +24 -0
  132. machineconfig/scripts/linux/scheduler +8 -0
  133. machineconfig/scripts/linux/share_cloud.sh +81 -0
  134. machineconfig/scripts/linux/share_nfs +49 -0
  135. machineconfig/scripts/linux/share_smb +1 -0
  136. machineconfig/scripts/linux/skrg +4 -0
  137. machineconfig/scripts/linux/start_docker +23 -0
  138. machineconfig/scripts/linux/start_slidev +23 -0
  139. machineconfig/scripts/linux/start_terminals +12 -0
  140. machineconfig/scripts/linux/switch_ip +20 -0
  141. machineconfig/scripts/linux/url2md +10 -0
  142. machineconfig/scripts/linux/z_ls +104 -0
  143. machineconfig/scripts/python/.mypy_cache/.gitignore +2 -0
  144. machineconfig/scripts/python/.mypy_cache/3.11/@plugins_snapshot.json +1 -0
  145. machineconfig/scripts/python/.mypy_cache/3.11/__future__.data.json +1 -0
  146. machineconfig/scripts/python/.mypy_cache/3.11/__future__.meta.json +1 -0
  147. machineconfig/scripts/python/.mypy_cache/3.11/_ast.data.json +1 -0
  148. machineconfig/scripts/python/.mypy_cache/3.11/_ast.meta.json +1 -0
  149. machineconfig/scripts/python/.mypy_cache/3.11/_bz2.data.json +1 -0
  150. machineconfig/scripts/python/.mypy_cache/3.11/_bz2.meta.json +1 -0
  151. machineconfig/scripts/python/.mypy_cache/3.11/_codecs.data.json +1 -0
  152. machineconfig/scripts/python/.mypy_cache/3.11/_codecs.meta.json +1 -0
  153. machineconfig/scripts/python/.mypy_cache/3.11/_collections_abc.data.json +1 -0
  154. machineconfig/scripts/python/.mypy_cache/3.11/_collections_abc.meta.json +1 -0
  155. machineconfig/scripts/python/.mypy_cache/3.11/_compression.data.json +1 -0
  156. machineconfig/scripts/python/.mypy_cache/3.11/_compression.meta.json +1 -0
  157. machineconfig/scripts/python/.mypy_cache/3.11/_decimal.data.json +1 -0
  158. machineconfig/scripts/python/.mypy_cache/3.11/_decimal.meta.json +1 -0
  159. machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib.data.json +1 -0
  160. machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib.meta.json +1 -0
  161. machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib_external.data.json +1 -0
  162. machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib_external.meta.json +1 -0
  163. machineconfig/scripts/python/.mypy_cache/3.11/_io.data.json +1 -0
  164. machineconfig/scripts/python/.mypy_cache/3.11/_io.meta.json +1 -0
  165. machineconfig/scripts/python/.mypy_cache/3.11/_locale.data.json +1 -0
  166. machineconfig/scripts/python/.mypy_cache/3.11/_locale.meta.json +1 -0
  167. machineconfig/scripts/python/.mypy_cache/3.11/_stat.data.json +1 -0
  168. machineconfig/scripts/python/.mypy_cache/3.11/_stat.meta.json +1 -0
  169. machineconfig/scripts/python/.mypy_cache/3.11/_struct.data.json +1 -0
  170. machineconfig/scripts/python/.mypy_cache/3.11/_struct.meta.json +1 -0
  171. machineconfig/scripts/python/.mypy_cache/3.11/_thread.data.json +1 -0
  172. machineconfig/scripts/python/.mypy_cache/3.11/_thread.meta.json +1 -0
  173. machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/__init__.data.json +1 -0
  174. machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/__init__.meta.json +1 -0
  175. machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/importlib.data.json +1 -0
  176. machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/importlib.meta.json +1 -0
  177. machineconfig/scripts/python/.mypy_cache/3.11/_warnings.data.json +1 -0
  178. machineconfig/scripts/python/.mypy_cache/3.11/_warnings.meta.json +1 -0
  179. machineconfig/scripts/python/.mypy_cache/3.11/_weakref.data.json +1 -0
  180. machineconfig/scripts/python/.mypy_cache/3.11/_weakref.meta.json +1 -0
  181. machineconfig/scripts/python/.mypy_cache/3.11/_weakrefset.data.json +1 -0
  182. machineconfig/scripts/python/.mypy_cache/3.11/_weakrefset.meta.json +1 -0
  183. machineconfig/scripts/python/.mypy_cache/3.11/abc.data.json +1 -0
  184. machineconfig/scripts/python/.mypy_cache/3.11/abc.meta.json +1 -0
  185. machineconfig/scripts/python/.mypy_cache/3.11/argparse.data.json +1 -0
  186. machineconfig/scripts/python/.mypy_cache/3.11/argparse.meta.json +1 -0
  187. machineconfig/scripts/python/.mypy_cache/3.11/ast.data.json +1 -0
  188. machineconfig/scripts/python/.mypy_cache/3.11/ast.meta.json +1 -0
  189. machineconfig/scripts/python/.mypy_cache/3.11/binascii.data.json +1 -0
  190. machineconfig/scripts/python/.mypy_cache/3.11/binascii.meta.json +1 -0
  191. machineconfig/scripts/python/.mypy_cache/3.11/builtins.data.json +1 -0
  192. machineconfig/scripts/python/.mypy_cache/3.11/builtins.meta.json +1 -0
  193. machineconfig/scripts/python/.mypy_cache/3.11/bz2.data.json +1 -0
  194. machineconfig/scripts/python/.mypy_cache/3.11/bz2.meta.json +1 -0
  195. machineconfig/scripts/python/.mypy_cache/3.11/calendar.data.json +1 -0
  196. machineconfig/scripts/python/.mypy_cache/3.11/calendar.meta.json +1 -0
  197. machineconfig/scripts/python/.mypy_cache/3.11/codecs.data.json +1 -0
  198. machineconfig/scripts/python/.mypy_cache/3.11/codecs.meta.json +1 -0
  199. machineconfig/scripts/python/.mypy_cache/3.11/collections/__init__.data.json +1 -0
  200. machineconfig/scripts/python/.mypy_cache/3.11/collections/__init__.meta.json +1 -0
  201. machineconfig/scripts/python/.mypy_cache/3.11/collections/abc.data.json +1 -0
  202. machineconfig/scripts/python/.mypy_cache/3.11/collections/abc.meta.json +1 -0
  203. machineconfig/scripts/python/.mypy_cache/3.11/configparser.data.json +1 -0
  204. machineconfig/scripts/python/.mypy_cache/3.11/configparser.meta.json +1 -0
  205. machineconfig/scripts/python/.mypy_cache/3.11/contextlib.data.json +1 -0
  206. machineconfig/scripts/python/.mypy_cache/3.11/contextlib.meta.json +1 -0
  207. machineconfig/scripts/python/.mypy_cache/3.11/dataclasses.data.json +1 -0
  208. machineconfig/scripts/python/.mypy_cache/3.11/dataclasses.meta.json +1 -0
  209. machineconfig/scripts/python/.mypy_cache/3.11/datetime.data.json +1 -0
  210. machineconfig/scripts/python/.mypy_cache/3.11/datetime.meta.json +1 -0
  211. machineconfig/scripts/python/.mypy_cache/3.11/decimal.data.json +1 -0
  212. machineconfig/scripts/python/.mypy_cache/3.11/decimal.meta.json +1 -0
  213. machineconfig/scripts/python/.mypy_cache/3.11/dis.data.json +1 -0
  214. machineconfig/scripts/python/.mypy_cache/3.11/dis.meta.json +1 -0
  215. machineconfig/scripts/python/.mypy_cache/3.11/email/__init__.data.json +1 -0
  216. machineconfig/scripts/python/.mypy_cache/3.11/email/__init__.meta.json +1 -0
  217. machineconfig/scripts/python/.mypy_cache/3.11/email/_policybase.data.json +1 -0
  218. machineconfig/scripts/python/.mypy_cache/3.11/email/_policybase.meta.json +1 -0
  219. machineconfig/scripts/python/.mypy_cache/3.11/email/charset.data.json +1 -0
  220. machineconfig/scripts/python/.mypy_cache/3.11/email/charset.meta.json +1 -0
  221. machineconfig/scripts/python/.mypy_cache/3.11/email/contentmanager.data.json +1 -0
  222. machineconfig/scripts/python/.mypy_cache/3.11/email/contentmanager.meta.json +1 -0
  223. machineconfig/scripts/python/.mypy_cache/3.11/email/errors.data.json +1 -0
  224. machineconfig/scripts/python/.mypy_cache/3.11/email/errors.meta.json +1 -0
  225. machineconfig/scripts/python/.mypy_cache/3.11/email/header.data.json +1 -0
  226. machineconfig/scripts/python/.mypy_cache/3.11/email/header.meta.json +1 -0
  227. machineconfig/scripts/python/.mypy_cache/3.11/email/message.data.json +1 -0
  228. machineconfig/scripts/python/.mypy_cache/3.11/email/message.meta.json +1 -0
  229. machineconfig/scripts/python/.mypy_cache/3.11/email/policy.data.json +1 -0
  230. machineconfig/scripts/python/.mypy_cache/3.11/email/policy.meta.json +1 -0
  231. machineconfig/scripts/python/.mypy_cache/3.11/enum.data.json +1 -0
  232. machineconfig/scripts/python/.mypy_cache/3.11/enum.meta.json +1 -0
  233. machineconfig/scripts/python/.mypy_cache/3.11/fnmatch.data.json +1 -0
  234. machineconfig/scripts/python/.mypy_cache/3.11/fnmatch.meta.json +1 -0
  235. machineconfig/scripts/python/.mypy_cache/3.11/functools.data.json +1 -0
  236. machineconfig/scripts/python/.mypy_cache/3.11/functools.meta.json +1 -0
  237. machineconfig/scripts/python/.mypy_cache/3.11/gc.data.json +1 -0
  238. machineconfig/scripts/python/.mypy_cache/3.11/gc.meta.json +1 -0
  239. machineconfig/scripts/python/.mypy_cache/3.11/genericpath.data.json +1 -0
  240. machineconfig/scripts/python/.mypy_cache/3.11/genericpath.meta.json +1 -0
  241. machineconfig/scripts/python/.mypy_cache/3.11/getpass.data.json +1 -0
  242. machineconfig/scripts/python/.mypy_cache/3.11/getpass.meta.json +1 -0
  243. machineconfig/scripts/python/.mypy_cache/3.11/git/__init__.data.json +1 -0
  244. machineconfig/scripts/python/.mypy_cache/3.11/git/__init__.meta.json +1 -0
  245. machineconfig/scripts/python/.mypy_cache/3.11/git/cmd.data.json +1 -0
  246. machineconfig/scripts/python/.mypy_cache/3.11/git/cmd.meta.json +1 -0
  247. machineconfig/scripts/python/.mypy_cache/3.11/git/compat.data.json +1 -0
  248. machineconfig/scripts/python/.mypy_cache/3.11/git/compat.meta.json +1 -0
  249. machineconfig/scripts/python/.mypy_cache/3.11/git/config.data.json +1 -0
  250. machineconfig/scripts/python/.mypy_cache/3.11/git/config.meta.json +1 -0
  251. machineconfig/scripts/python/.mypy_cache/3.11/git/db.data.json +1 -0
  252. machineconfig/scripts/python/.mypy_cache/3.11/git/db.meta.json +1 -0
  253. machineconfig/scripts/python/.mypy_cache/3.11/git/diff.data.json +1 -0
  254. machineconfig/scripts/python/.mypy_cache/3.11/git/diff.meta.json +1 -0
  255. machineconfig/scripts/python/.mypy_cache/3.11/git/exc.data.json +1 -0
  256. machineconfig/scripts/python/.mypy_cache/3.11/git/exc.meta.json +1 -0
  257. machineconfig/scripts/python/.mypy_cache/3.11/git/index/__init__.data.json +1 -0
  258. machineconfig/scripts/python/.mypy_cache/3.11/git/index/__init__.meta.json +1 -0
  259. machineconfig/scripts/python/.mypy_cache/3.11/git/index/base.data.json +1 -0
  260. machineconfig/scripts/python/.mypy_cache/3.11/git/index/base.meta.json +1 -0
  261. machineconfig/scripts/python/.mypy_cache/3.11/git/index/fun.data.json +1 -0
  262. machineconfig/scripts/python/.mypy_cache/3.11/git/index/fun.meta.json +1 -0
  263. machineconfig/scripts/python/.mypy_cache/3.11/git/index/typ.data.json +1 -0
  264. machineconfig/scripts/python/.mypy_cache/3.11/git/index/typ.meta.json +1 -0
  265. machineconfig/scripts/python/.mypy_cache/3.11/git/index/util.data.json +1 -0
  266. machineconfig/scripts/python/.mypy_cache/3.11/git/index/util.meta.json +1 -0
  267. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/__init__.data.json +1 -0
  268. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/__init__.meta.json +1 -0
  269. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/base.data.json +1 -0
  270. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/base.meta.json +1 -0
  271. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/blob.data.json +1 -0
  272. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/blob.meta.json +1 -0
  273. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/commit.data.json +1 -0
  274. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/commit.meta.json +1 -0
  275. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/fun.data.json +1 -0
  276. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/fun.meta.json +1 -0
  277. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/__init__.data.json +1 -0
  278. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/__init__.meta.json +1 -0
  279. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/base.data.json +1 -0
  280. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/base.meta.json +1 -0
  281. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/root.data.json +1 -0
  282. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/root.meta.json +1 -0
  283. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/util.data.json +1 -0
  284. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/util.meta.json +1 -0
  285. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tag.data.json +1 -0
  286. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tag.meta.json +1 -0
  287. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tree.data.json +1 -0
  288. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tree.meta.json +1 -0
  289. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/util.data.json +1 -0
  290. machineconfig/scripts/python/.mypy_cache/3.11/git/objects/util.meta.json +1 -0
  291. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/__init__.data.json +1 -0
  292. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/__init__.meta.json +1 -0
  293. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/head.data.json +1 -0
  294. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/head.meta.json +1 -0
  295. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/log.data.json +1 -0
  296. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/log.meta.json +1 -0
  297. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/reference.data.json +1 -0
  298. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/reference.meta.json +1 -0
  299. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/remote.data.json +1 -0
  300. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/remote.meta.json +1 -0
  301. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/symbolic.data.json +1 -0
  302. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/symbolic.meta.json +1 -0
  303. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/tag.data.json +1 -0
  304. machineconfig/scripts/python/.mypy_cache/3.11/git/refs/tag.meta.json +1 -0
  305. machineconfig/scripts/python/.mypy_cache/3.11/git/remote.data.json +1 -0
  306. machineconfig/scripts/python/.mypy_cache/3.11/git/remote.meta.json +1 -0
  307. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/__init__.data.json +1 -0
  308. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/__init__.meta.json +1 -0
  309. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/base.data.json +1 -0
  310. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/base.meta.json +1 -0
  311. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/fun.data.json +1 -0
  312. machineconfig/scripts/python/.mypy_cache/3.11/git/repo/fun.meta.json +1 -0
  313. machineconfig/scripts/python/.mypy_cache/3.11/git/types.data.json +1 -0
  314. machineconfig/scripts/python/.mypy_cache/3.11/git/types.meta.json +1 -0
  315. machineconfig/scripts/python/.mypy_cache/3.11/git/util.data.json +1 -0
  316. machineconfig/scripts/python/.mypy_cache/3.11/git/util.meta.json +1 -0
  317. machineconfig/scripts/python/.mypy_cache/3.11/glob.data.json +1 -0
  318. machineconfig/scripts/python/.mypy_cache/3.11/glob.meta.json +1 -0
  319. machineconfig/scripts/python/.mypy_cache/3.11/gzip.data.json +1 -0
  320. machineconfig/scripts/python/.mypy_cache/3.11/gzip.meta.json +1 -0
  321. machineconfig/scripts/python/.mypy_cache/3.11/importlib/__init__.data.json +1 -0
  322. machineconfig/scripts/python/.mypy_cache/3.11/importlib/__init__.meta.json +1 -0
  323. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_abc.data.json +1 -0
  324. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_abc.meta.json +1 -0
  325. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap.data.json +1 -0
  326. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap.meta.json +1 -0
  327. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap_external.data.json +1 -0
  328. machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap_external.meta.json +1 -0
  329. machineconfig/scripts/python/.mypy_cache/3.11/importlib/abc.data.json +1 -0
  330. machineconfig/scripts/python/.mypy_cache/3.11/importlib/abc.meta.json +1 -0
  331. machineconfig/scripts/python/.mypy_cache/3.11/importlib/machinery.data.json +1 -0
  332. machineconfig/scripts/python/.mypy_cache/3.11/importlib/machinery.meta.json +1 -0
  333. machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/__init__.data.json +1 -0
  334. machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/__init__.meta.json +1 -0
  335. machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/_meta.data.json +1 -0
  336. machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/_meta.meta.json +1 -0
  337. machineconfig/scripts/python/.mypy_cache/3.11/importlib/readers.data.json +1 -0
  338. machineconfig/scripts/python/.mypy_cache/3.11/importlib/readers.meta.json +1 -0
  339. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/__init__.data.json +1 -0
  340. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/__init__.meta.json +1 -0
  341. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/_common.data.json +1 -0
  342. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/_common.meta.json +1 -0
  343. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/abc.data.json +1 -0
  344. machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/abc.meta.json +1 -0
  345. machineconfig/scripts/python/.mypy_cache/3.11/inspect.data.json +1 -0
  346. machineconfig/scripts/python/.mypy_cache/3.11/inspect.meta.json +1 -0
  347. machineconfig/scripts/python/.mypy_cache/3.11/io.data.json +1 -0
  348. machineconfig/scripts/python/.mypy_cache/3.11/io.meta.json +1 -0
  349. machineconfig/scripts/python/.mypy_cache/3.11/itertools.data.json +1 -0
  350. machineconfig/scripts/python/.mypy_cache/3.11/itertools.meta.json +1 -0
  351. machineconfig/scripts/python/.mypy_cache/3.11/locale.data.json +1 -0
  352. machineconfig/scripts/python/.mypy_cache/3.11/locale.meta.json +1 -0
  353. machineconfig/scripts/python/.mypy_cache/3.11/logging/__init__.data.json +1 -0
  354. machineconfig/scripts/python/.mypy_cache/3.11/logging/__init__.meta.json +1 -0
  355. machineconfig/scripts/python/.mypy_cache/3.11/mimetypes.data.json +1 -0
  356. machineconfig/scripts/python/.mypy_cache/3.11/mimetypes.meta.json +1 -0
  357. machineconfig/scripts/python/.mypy_cache/3.11/mmap.data.json +1 -0
  358. machineconfig/scripts/python/.mypy_cache/3.11/mmap.meta.json +1 -0
  359. machineconfig/scripts/python/.mypy_cache/3.11/numbers.data.json +1 -0
  360. machineconfig/scripts/python/.mypy_cache/3.11/numbers.meta.json +1 -0
  361. machineconfig/scripts/python/.mypy_cache/3.11/opcode.data.json +1 -0
  362. machineconfig/scripts/python/.mypy_cache/3.11/opcode.meta.json +1 -0
  363. machineconfig/scripts/python/.mypy_cache/3.11/os/__init__.data.json +1 -0
  364. machineconfig/scripts/python/.mypy_cache/3.11/os/__init__.meta.json +1 -0
  365. machineconfig/scripts/python/.mypy_cache/3.11/os/path.data.json +1 -0
  366. machineconfig/scripts/python/.mypy_cache/3.11/os/path.meta.json +1 -0
  367. machineconfig/scripts/python/.mypy_cache/3.11/pathlib.data.json +1 -0
  368. machineconfig/scripts/python/.mypy_cache/3.11/pathlib.meta.json +1 -0
  369. machineconfig/scripts/python/.mypy_cache/3.11/platform.data.json +1 -0
  370. machineconfig/scripts/python/.mypy_cache/3.11/platform.meta.json +1 -0
  371. machineconfig/scripts/python/.mypy_cache/3.11/posixpath.data.json +1 -0
  372. machineconfig/scripts/python/.mypy_cache/3.11/posixpath.meta.json +1 -0
  373. machineconfig/scripts/python/.mypy_cache/3.11/re.data.json +1 -0
  374. machineconfig/scripts/python/.mypy_cache/3.11/re.meta.json +1 -0
  375. machineconfig/scripts/python/.mypy_cache/3.11/resource.data.json +1 -0
  376. machineconfig/scripts/python/.mypy_cache/3.11/resource.meta.json +1 -0
  377. machineconfig/scripts/python/.mypy_cache/3.11/shlex.data.json +1 -0
  378. machineconfig/scripts/python/.mypy_cache/3.11/shlex.meta.json +1 -0
  379. machineconfig/scripts/python/.mypy_cache/3.11/shutil.data.json +1 -0
  380. machineconfig/scripts/python/.mypy_cache/3.11/shutil.meta.json +1 -0
  381. machineconfig/scripts/python/.mypy_cache/3.11/signal.data.json +1 -0
  382. machineconfig/scripts/python/.mypy_cache/3.11/signal.meta.json +1 -0
  383. machineconfig/scripts/python/.mypy_cache/3.11/src/__init__.data.json +1 -0
  384. machineconfig/scripts/python/.mypy_cache/3.11/src/__init__.meta.json +1 -0
  385. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/__init__.data.json +1 -0
  386. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/__init__.meta.json +1 -0
  387. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/__init__.data.json +1 -0
  388. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/__init__.meta.json +1 -0
  389. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/python/__init__.data.json +1 -0
  390. machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/python/__init__.meta.json +1 -0
  391. machineconfig/scripts/python/.mypy_cache/3.11/sre_compile.data.json +1 -0
  392. machineconfig/scripts/python/.mypy_cache/3.11/sre_compile.meta.json +1 -0
  393. machineconfig/scripts/python/.mypy_cache/3.11/sre_constants.data.json +1 -0
  394. machineconfig/scripts/python/.mypy_cache/3.11/sre_constants.meta.json +1 -0
  395. machineconfig/scripts/python/.mypy_cache/3.11/sre_parse.data.json +1 -0
  396. machineconfig/scripts/python/.mypy_cache/3.11/sre_parse.meta.json +1 -0
  397. machineconfig/scripts/python/.mypy_cache/3.11/stat.data.json +1 -0
  398. machineconfig/scripts/python/.mypy_cache/3.11/stat.meta.json +1 -0
  399. machineconfig/scripts/python/.mypy_cache/3.11/string.data.json +1 -0
  400. machineconfig/scripts/python/.mypy_cache/3.11/string.meta.json +1 -0
  401. machineconfig/scripts/python/.mypy_cache/3.11/struct.data.json +1 -0
  402. machineconfig/scripts/python/.mypy_cache/3.11/struct.meta.json +1 -0
  403. machineconfig/scripts/python/.mypy_cache/3.11/subprocess.data.json +1 -0
  404. machineconfig/scripts/python/.mypy_cache/3.11/subprocess.meta.json +1 -0
  405. machineconfig/scripts/python/.mypy_cache/3.11/sys/__init__.data.json +1 -0
  406. machineconfig/scripts/python/.mypy_cache/3.11/sys/__init__.meta.json +1 -0
  407. machineconfig/scripts/python/.mypy_cache/3.11/tarfile.data.json +1 -0
  408. machineconfig/scripts/python/.mypy_cache/3.11/tarfile.meta.json +1 -0
  409. machineconfig/scripts/python/.mypy_cache/3.11/tempfile.data.json +1 -0
  410. machineconfig/scripts/python/.mypy_cache/3.11/tempfile.meta.json +1 -0
  411. machineconfig/scripts/python/.mypy_cache/3.11/textwrap.data.json +1 -0
  412. machineconfig/scripts/python/.mypy_cache/3.11/textwrap.meta.json +1 -0
  413. machineconfig/scripts/python/.mypy_cache/3.11/threading.data.json +1 -0
  414. machineconfig/scripts/python/.mypy_cache/3.11/threading.meta.json +1 -0
  415. machineconfig/scripts/python/.mypy_cache/3.11/time.data.json +1 -0
  416. machineconfig/scripts/python/.mypy_cache/3.11/time.meta.json +1 -0
  417. machineconfig/scripts/python/.mypy_cache/3.11/types.data.json +1 -0
  418. machineconfig/scripts/python/.mypy_cache/3.11/types.meta.json +1 -0
  419. machineconfig/scripts/python/.mypy_cache/3.11/typing.data.json +1 -0
  420. machineconfig/scripts/python/.mypy_cache/3.11/typing.meta.json +1 -0
  421. machineconfig/scripts/python/.mypy_cache/3.11/typing_extensions.data.json +1 -0
  422. machineconfig/scripts/python/.mypy_cache/3.11/typing_extensions.meta.json +1 -0
  423. machineconfig/scripts/python/.mypy_cache/3.11/urllib/__init__.data.json +1 -0
  424. machineconfig/scripts/python/.mypy_cache/3.11/urllib/__init__.meta.json +1 -0
  425. machineconfig/scripts/python/.mypy_cache/3.11/urllib/parse.data.json +1 -0
  426. machineconfig/scripts/python/.mypy_cache/3.11/urllib/parse.meta.json +1 -0
  427. machineconfig/scripts/python/.mypy_cache/3.11/uuid.data.json +1 -0
  428. machineconfig/scripts/python/.mypy_cache/3.11/uuid.meta.json +1 -0
  429. machineconfig/scripts/python/.mypy_cache/3.11/warnings.data.json +1 -0
  430. machineconfig/scripts/python/.mypy_cache/3.11/warnings.meta.json +1 -0
  431. machineconfig/scripts/python/.mypy_cache/3.11/weakref.data.json +1 -0
  432. machineconfig/scripts/python/.mypy_cache/3.11/weakref.meta.json +1 -0
  433. machineconfig/scripts/python/.mypy_cache/3.11/zipfile/__init__.data.json +1 -0
  434. machineconfig/scripts/python/.mypy_cache/3.11/zipfile/__init__.meta.json +1 -0
  435. machineconfig/scripts/python/.mypy_cache/3.11/zlib.data.json +1 -0
  436. machineconfig/scripts/python/.mypy_cache/3.11/zlib.meta.json +1 -0
  437. machineconfig/scripts/python/.mypy_cache/CACHEDIR.TAG +3 -0
  438. machineconfig/scripts/python/__pycache__/__init__.cpython-311.pyc +0 -0
  439. machineconfig/scripts/python/__pycache__/cloud_copy.cpython-311.pyc +0 -0
  440. machineconfig/scripts/python/__pycache__/cloud_mount.cpython-311.pyc +0 -0
  441. machineconfig/scripts/python/__pycache__/cloud_repo_sync.cpython-311.pyc +0 -0
  442. machineconfig/scripts/python/__pycache__/cloud_sync.cpython-311.pyc +0 -0
  443. machineconfig/scripts/python/__pycache__/croshell.cpython-311.pyc +0 -0
  444. machineconfig/scripts/python/__pycache__/devops.cpython-311.pyc +0 -0
  445. machineconfig/scripts/python/__pycache__/devops_backup_retrieve.cpython-311.pyc +0 -0
  446. machineconfig/scripts/python/__pycache__/devops_devapps_install.cpython-311.pyc +0 -0
  447. machineconfig/scripts/python/__pycache__/devops_update_repos.cpython-311.pyc +0 -0
  448. machineconfig/scripts/python/__pycache__/fire_jobs.cpython-311.pyc +0 -0
  449. machineconfig/scripts/python/__pycache__/gh_models.cpython-311.pyc +0 -0
  450. machineconfig/scripts/python/__pycache__/repos.cpython-311.pyc +0 -0
  451. machineconfig/scripts/python/__pycache__/url2md.cpython-311.pyc +0 -0
  452. machineconfig/scripts/python/__pycache__/viewer.cpython-311.pyc +0 -0
  453. machineconfig/scripts/python/__pycache__/vscode_api.cpython-311.pyc +0 -0
  454. machineconfig/scripts/python/archive/im2text.py +36 -0
  455. machineconfig/scripts/python/archive/tmate_conn.py +44 -0
  456. machineconfig/scripts/python/archive/tmate_start.py +48 -0
  457. machineconfig/scripts/python/choose_wezterm_theme.py +23 -4
  458. machineconfig/scripts/python/cloud_copy.py +131 -29
  459. machineconfig/scripts/python/cloud_manager.py +55 -2
  460. machineconfig/scripts/python/cloud_mount.py +43 -4
  461. machineconfig/scripts/python/cloud_repo_sync.py +114 -103
  462. machineconfig/scripts/python/cloud_sync.py +36 -220
  463. machineconfig/scripts/python/croshell.py +102 -32
  464. machineconfig/scripts/python/devops.py +143 -42
  465. machineconfig/scripts/python/devops_add_identity.py +112 -9
  466. machineconfig/scripts/python/devops_add_ssh_key.py +170 -15
  467. machineconfig/scripts/python/devops_backup_retrieve.py +132 -14
  468. machineconfig/scripts/python/devops_devapps_install.py +33 -11
  469. machineconfig/scripts/python/devops_update_repos.py +36 -29
  470. machineconfig/scripts/python/dotfile.py +8 -3
  471. machineconfig/scripts/python/fire_jobs.py +145 -289
  472. machineconfig/scripts/python/ftpx.py +76 -18
  473. machineconfig/scripts/python/get_zellij_cmd.py +14 -0
  474. machineconfig/scripts/python/gh_models.py +72 -25
  475. machineconfig/scripts/python/helpers/__init__.py +0 -0
  476. machineconfig/scripts/python/helpers/__pycache__/__init__.cpython-311.pyc +0 -0
  477. machineconfig/scripts/python/helpers/__pycache__/cloud_helpers.cpython-311.pyc +0 -0
  478. machineconfig/scripts/python/helpers/__pycache__/helpers2.cpython-311.pyc +0 -0
  479. machineconfig/scripts/python/helpers/__pycache__/helpers4.cpython-311.pyc +0 -0
  480. machineconfig/scripts/python/helpers/cloud_helpers.py +134 -0
  481. machineconfig/scripts/python/helpers/helpers2.py +149 -0
  482. machineconfig/scripts/python/helpers/helpers4.py +178 -0
  483. machineconfig/scripts/python/helpers/helpers5.py +50 -0
  484. machineconfig/scripts/python/helpers/repo_sync_helpers.py +126 -0
  485. machineconfig/scripts/python/mount_nfs.py +46 -15
  486. machineconfig/scripts/python/mount_nw_drive.py +22 -10
  487. machineconfig/scripts/python/mount_ssh.py +28 -12
  488. machineconfig/scripts/python/onetimeshare.py +23 -15
  489. machineconfig/scripts/python/pomodoro.py +38 -24
  490. machineconfig/scripts/python/repos.py +29 -32
  491. machineconfig/scripts/python/scheduler.py +19 -18
  492. machineconfig/scripts/python/snapshot.py +14 -6
  493. machineconfig/scripts/python/start_slidev.py +24 -32
  494. machineconfig/scripts/python/start_terminals.py +23 -10
  495. machineconfig/scripts/python/viewer.py +53 -0
  496. machineconfig/scripts/python/viewer_template.py +140 -0
  497. machineconfig/scripts/python/wifi_conn.py +20 -12
  498. machineconfig/scripts/python/wsl_windows_transfer.py +18 -10
  499. machineconfig/scripts/windows/activate_ve.ps1 +54 -0
  500. machineconfig/scripts/windows/archive/gource2vid.ps1 +14 -0
  501. machineconfig/scripts/windows/archive/im2text.ps1 +27 -0
  502. machineconfig/scripts/windows/archive/secure_pull.ps1 +46 -0
  503. machineconfig/scripts/windows/archive/secure_push.ps1 +85 -0
  504. machineconfig/scripts/windows/archive/tmate_conn.ps1 +7 -0
  505. machineconfig/scripts/windows/checkout_version.ps1 +6 -0
  506. machineconfig/scripts/windows/choose_wezterm_theme.ps1 +20 -0
  507. machineconfig/scripts/windows/cloud_copy.ps1 +17 -0
  508. machineconfig/scripts/windows/cloud_manager.ps1 +8 -0
  509. machineconfig/scripts/windows/cloud_mount.ps1 +25 -0
  510. machineconfig/scripts/windows/cloud_repo_sync.ps1 +8 -0
  511. machineconfig/scripts/windows/cloud_sync.ps1 +21 -0
  512. machineconfig/scripts/windows/croshell.ps1 +40 -0
  513. machineconfig/scripts/windows/devops.ps1 +32 -0
  514. machineconfig/scripts/windows/dotfile.ps1 +9 -0
  515. machineconfig/scripts/windows/fire.ps1 +33 -0
  516. machineconfig/scripts/windows/ftpx.ps1 +5 -0
  517. machineconfig/scripts/windows/fzfb.ps1 +3 -0
  518. machineconfig/scripts/windows/fzfg.ps1 +2 -0
  519. machineconfig/scripts/windows/fzfrga.bat +20 -0
  520. machineconfig/scripts/windows/gpt.ps1 +23 -0
  521. machineconfig/scripts/windows/grep.ps1 +2 -0
  522. machineconfig/scripts/windows/kill_process.ps1 +8 -0
  523. machineconfig/scripts/windows/mount_nfs.ps1 +44 -0
  524. machineconfig/scripts/windows/mount_nw.ps1 +9 -0
  525. machineconfig/scripts/windows/mount_smb.ps1 +2 -0
  526. machineconfig/scripts/windows/mount_ssh.ps1 +17 -0
  527. machineconfig/scripts/windows/nano.ps1 +3 -0
  528. machineconfig/scripts/windows/neofetch.ps1 +2 -0
  529. machineconfig/scripts/windows/pomodoro.ps1 +8 -0
  530. machineconfig/scripts/windows/py2exe.ps1 +12 -0
  531. machineconfig/scripts/windows/reload_path.ps1 +3 -0
  532. machineconfig/scripts/windows/repos.ps1 +27 -0
  533. machineconfig/scripts/windows/scheduler.ps1 +6 -0
  534. machineconfig/scripts/windows/share_cloud.cmd +34 -0
  535. machineconfig/scripts/windows/share_nfs.ps1 +0 -0
  536. machineconfig/scripts/windows/share_smb.ps1 +22 -0
  537. machineconfig/scripts/windows/snapshot.ps1 +5 -0
  538. machineconfig/scripts/windows/start_slidev.ps1 +21 -0
  539. machineconfig/scripts/windows/start_terminals.ps1 +22 -0
  540. machineconfig/scripts/windows/unlock_bitlocker.ps1 +10 -0
  541. machineconfig/scripts/windows/utils/op_script_delete.ps1 +7 -0
  542. machineconfig/scripts/windows/wifi_conn.ps1 +7 -0
  543. machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +46 -0
  544. machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +76 -0
  545. machineconfig/scripts/windows/wsl_windows_transfer.ps1 +7 -0
  546. machineconfig/settings/__pycache__/__init__.cpython-311.pyc +0 -0
  547. machineconfig/settings/broot/br.sh +51 -0
  548. machineconfig/settings/broot/brootcd.ps1 +32 -0
  549. machineconfig/settings/broot/conf.toml +5 -0
  550. machineconfig/settings/glow/glow.yml +11 -0
  551. machineconfig/settings/gromit-mpx/gromit-mpx.cfg +34 -0
  552. machineconfig/settings/helix/config.toml +27 -0
  553. machineconfig/settings/helix/languages.toml +22 -0
  554. machineconfig/settings/keras/keras.json +6 -0
  555. machineconfig/settings/keyboard/espanso/config/default.yml +45 -0
  556. machineconfig/settings/keyboard/espanso/match/base.yml +57 -0
  557. machineconfig/settings/keyboard/kanata/kanata.kbd +0 -0
  558. machineconfig/settings/lf/linux/autocall/delete.sh +0 -0
  559. machineconfig/settings/lf/linux/autocall/on-cd.sh +0 -0
  560. machineconfig/settings/lf/linux/autocall/on-quit.sh +0 -0
  561. machineconfig/settings/lf/linux/autocall/open.sh +0 -0
  562. machineconfig/settings/lf/linux/autocall/paste.sh +0 -0
  563. machineconfig/settings/lf/linux/autocall/pre-cd.sh +0 -0
  564. machineconfig/settings/lf/linux/autocall/rename.sh +0 -0
  565. machineconfig/settings/lf/linux/colors +196 -0
  566. machineconfig/settings/lf/linux/exe/cleaner.sh +7 -0
  567. machineconfig/settings/lf/linux/exe/fzf_nano.sh +16 -0
  568. machineconfig/settings/lf/linux/exe/leftpane_previewer.sh +5 -0
  569. machineconfig/settings/lf/linux/exe/lfcd.sh +32 -0
  570. machineconfig/settings/lf/linux/exe/previewer.sh +37 -0
  571. machineconfig/settings/lf/linux/exe/previewer_archive.sh +155 -0
  572. machineconfig/settings/lf/linux/icons +357 -0
  573. machineconfig/settings/lf/linux/lfrc +226 -0
  574. machineconfig/settings/lf/windows/autocall/delete.ps1 +0 -0
  575. machineconfig/settings/lf/windows/autocall/on-cd.ps1 +0 -0
  576. machineconfig/settings/lf/windows/autocall/on-quit.ps1 +0 -0
  577. machineconfig/settings/lf/windows/autocall/open.ps1 +0 -0
  578. machineconfig/settings/lf/windows/autocall/paste.ps1 +0 -0
  579. machineconfig/settings/lf/windows/autocall/pre-cd.ps1 +0 -0
  580. machineconfig/settings/lf/windows/autocall/rename.ps1 +0 -0
  581. machineconfig/settings/lf/windows/cd_tere.ps1 +4 -0
  582. machineconfig/settings/lf/windows/cd_zoxide.ps1 +4 -0
  583. machineconfig/settings/lf/windows/cd_zoxide2.ps1 +4 -0
  584. machineconfig/settings/lf/windows/colors +159 -0
  585. machineconfig/settings/lf/windows/fzf_edit.ps1 +6 -0
  586. machineconfig/settings/lf/windows/icons +357 -0
  587. machineconfig/settings/lf/windows/leftpane_previewer.ps1 +3 -0
  588. machineconfig/settings/lf/windows/lfcd.ps1 +35 -0
  589. machineconfig/settings/lf/windows/lfrc +133 -0
  590. machineconfig/settings/lf/windows/mkdir.ps1 +3 -0
  591. machineconfig/settings/lf/windows/mkfile.ps1 +3 -0
  592. machineconfig/settings/lf/windows/previewer.ps1 +7 -0
  593. machineconfig/settings/lf/windows/tst.ps1 +1 -0
  594. machineconfig/settings/linters/.flake8 +24 -0
  595. machineconfig/settings/linters/.mypy.ini +29 -0
  596. machineconfig/settings/linters/.pylintrc +91 -0
  597. machineconfig/settings/linters/.ruff.toml +77 -0
  598. machineconfig/settings/linters/.ruff_cache/.gitignore +2 -0
  599. machineconfig/settings/linters/.ruff_cache/CACHEDIR.TAG +1 -0
  600. machineconfig/settings/lvim/linux/config.lua +0 -0
  601. machineconfig/settings/lvim/windows/archive/config_additional.lua +39 -0
  602. machineconfig/settings/lvim/windows/lua/user/custom_config.lua +13 -0
  603. machineconfig/settings/mprocs/windows/mprocs.yaml +55 -0
  604. machineconfig/settings/mprocs/windows/other +12 -0
  605. machineconfig/settings/pistol/pistol.conf +8 -0
  606. machineconfig/settings/presenterm/config.yaml +76 -0
  607. machineconfig/settings/procs/.procs.toml +142 -0
  608. machineconfig/settings/pudb/pudb.cfg +25 -0
  609. machineconfig/settings/rofi/config.rasi +4 -0
  610. machineconfig/settings/rofi/config_default.rasi +147 -0
  611. machineconfig/settings/shells/alacritty/alacritty.toml +40 -0
  612. machineconfig/settings/shells/alacritty/alacritty.yml +0 -0
  613. machineconfig/settings/shells/bash/.inputrc +3 -0
  614. machineconfig/settings/shells/bash/init.sh +66 -0
  615. machineconfig/settings/shells/hyper/.hyper.js +201 -0
  616. machineconfig/settings/shells/ipy/profiles/default/__init__.py +0 -0
  617. machineconfig/settings/shells/ipy/profiles/default/__pycache__/__init__.cpython-311.pyc +0 -0
  618. machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py +0 -0
  619. machineconfig/settings/shells/ipy/profiles/default/startup/__pycache__/__init__.cpython-311.pyc +0 -0
  620. machineconfig/settings/shells/ipy/profiles/default/startup/__pycache__/playext.cpython-311.pyc +0 -0
  621. machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +83 -0
  622. machineconfig/settings/shells/kitty/kitty.conf +1476 -0
  623. machineconfig/settings/shells/nushell/config.nu +36 -0
  624. machineconfig/settings/shells/nushell/env.nu +13 -0
  625. machineconfig/settings/shells/pwsh/init.ps1 +88 -0
  626. machineconfig/settings/shells/pwsh/profile.ps1 +0 -0
  627. machineconfig/settings/shells/starship/starship.toml +58 -0
  628. machineconfig/settings/shells/vtm/settings.xml +297 -0
  629. machineconfig/settings/shells/wezterm/wezterm.lua +193 -0
  630. machineconfig/settings/shells/wt/settings.json +526 -0
  631. machineconfig/settings/streamlit/config.toml +22 -0
  632. machineconfig/settings/svim/linux/init.toml +48 -0
  633. machineconfig/settings/svim/windows/init.toml +48 -0
  634. machineconfig/settings/tere/terecd.ps1 +8 -0
  635. machineconfig/settings/tere/terecd.sh +8 -0
  636. machineconfig/settings/tmux/.tmate.conf +3 -0
  637. machineconfig/settings/tmux/.tmux.conf +6 -0
  638. machineconfig/settings/wsl/.wslconfig +35 -0
  639. machineconfig/settings/yazi/keymap.toml +0 -0
  640. machineconfig/settings/yazi/theme.toml +0 -0
  641. machineconfig/settings/yazi/yazi.toml +4 -0
  642. machineconfig/settings/zed/settings.json +35 -0
  643. machineconfig/settings/zellij/commands/monitor +9 -0
  644. machineconfig/settings/zellij/commands/standard_panes +33 -0
  645. machineconfig/settings/zellij/config.kdl +295 -0
  646. machineconfig/settings/zellij/config.orig.kdl +295 -0
  647. machineconfig/settings/zellij/layouts/hist +13 -0
  648. machineconfig/settings/zellij/layouts/panes.kdl +20 -0
  649. machineconfig/settings/zellij/layouts/st.kdl +21 -0
  650. machineconfig/settings/zellij/layouts/st2.kdl +59 -0
  651. machineconfig/settings/zellij/layouts/stacked_panes.kdl +11 -0
  652. machineconfig/setup_linux/nix/cli_installation.sh +166 -0
  653. machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh +30 -0
  654. machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +60 -0
  655. machineconfig/setup_linux/web_shortcuts/all.sh +53 -0
  656. machineconfig/setup_linux/web_shortcuts/ascii_art.sh +100 -0
  657. machineconfig/setup_linux/web_shortcuts/croshell.sh +66 -0
  658. machineconfig/setup_linux/web_shortcuts/interactive.sh +241 -0
  659. machineconfig/setup_linux/web_shortcuts/ssh.sh +64 -0
  660. machineconfig/setup_linux/web_shortcuts/update_system.sh +55 -0
  661. machineconfig/setup_windows/others/docker.ps1 +7 -0
  662. machineconfig/setup_windows/others/obs.ps1 +4 -0
  663. machineconfig/setup_windows/web_shortcuts/all.ps1 +18 -0
  664. machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +36 -0
  665. machineconfig/setup_windows/web_shortcuts/croshell.ps1 +16 -0
  666. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +200 -0
  667. machineconfig/setup_windows/web_shortcuts/ssh.ps1 +11 -0
  668. machineconfig/setup_windows/wt_and_pwsh/install_fonts.ps1 +27 -0
  669. machineconfig/setup_windows/wt_and_pwsh/set_pwsh_theme.py +12 -2
  670. machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +45 -9
  671. machineconfig/utils/ai/__init__.py +0 -0
  672. machineconfig/utils/ai/browser_user_wrapper.py +51 -0
  673. machineconfig/utils/ai/generate_file_checklist.py +74 -0
  674. machineconfig/utils/ai/url2md.py +75 -0
  675. machineconfig/utils/installer.py +101 -253
  676. machineconfig/utils/installer_utils/__init__.py +0 -0
  677. machineconfig/utils/installer_utils/installer_abc.py +100 -0
  678. machineconfig/utils/installer_utils/installer_class.py +253 -0
  679. machineconfig/utils/procs.py +69 -16
  680. machineconfig/utils/scheduling.py +47 -13
  681. machineconfig/utils/utils.py +39 -371
  682. machineconfig/utils/utils_code.py +82 -0
  683. machineconfig/utils/utils_links.py +88 -0
  684. machineconfig/utils/utils_options.py +163 -0
  685. machineconfig/utils/utils_path.py +151 -0
  686. machineconfig/utils/ve.py +37 -225
  687. machineconfig/utils/ve_utils/ve1.py +111 -0
  688. machineconfig/utils/ve_utils/ve2.py +142 -0
  689. {machineconfig-1.92.dist-info → machineconfig-1.94.dist-info}/METADATA +25 -21
  690. machineconfig-1.94.dist-info/RECORD +710 -0
  691. {machineconfig-1.92.dist-info → machineconfig-1.94.dist-info}/WHEEL +1 -1
  692. machineconfig-1.92.dist-info/LICENSE +0 -201
  693. machineconfig-1.92.dist-info/RECORD +0 -70
  694. {machineconfig-1.92.dist-info → machineconfig-1.94.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,178 @@
1
+
2
+ from typing import Any, Callable, Optional
3
+ import inspect
4
+ import os
5
+ import argparse
6
+ from crocodile.core import Display
7
+ from crocodile.file_management import P
8
+ from machineconfig.utils.utils import choose_ssh_host
9
+
10
+
11
+ def search_for_files_of_interest(path_obj: P):
12
+ if path_obj.joinpath(".venv").exists():
13
+ path_objects = path_obj.search("*", not_in=[".venv"]).list
14
+ files: list[P] = []
15
+ for a_path_obj in path_objects:
16
+ files += search_for_files_of_interest(path_obj=a_path_obj)
17
+ return files
18
+ py_files = path_obj.search(pattern="*.py", not_in=["__init__.py"], r=True).list
19
+ ps_files = path_obj.search(pattern="*.ps1", r=True).list
20
+ sh_files = path_obj.search(pattern="*.sh", r=True).list
21
+ files = py_files + ps_files + sh_files
22
+ return files
23
+
24
+
25
+ def convert_kwargs_to_fire_kwargs_str(kwargs: dict[str, Any]) -> str:
26
+ # https://google.github.io/python-fire/guide/
27
+ # https://github.com/google/python-fire/blob/master/docs/guide.md#argument-parsing
28
+ if not kwargs: # empty dict
29
+ kwargs_str = ''
30
+ else:
31
+ if len(kwargs) == 1:
32
+ kwargs_str = f""" --{list(kwargs.keys())[0]} {list(kwargs.values())[0]} """
33
+ else:
34
+ # print(f"len(kwargs) = {len(kwargs)}")
35
+ tmp_list: list[str] = []
36
+ for k, v in kwargs.items():
37
+ if v is not None:
38
+ item = f'"{k}": "{v}"'
39
+ else:
40
+ item = f'"{k}": None'
41
+ tmp_list.append(item)
42
+ tmp__ = ", ".join(tmp_list)
43
+ kwargs_str = "'{" + tmp__ + "}'"
44
+ return kwargs_str
45
+
46
+
47
+ def parse_pyfile(file_path: str):
48
+ print(f"šŸ” Loading {file_path} ...")
49
+ from typing import NamedTuple
50
+ args_spec = NamedTuple("args_spec", [("name", str), ("type", str), ("default", Optional[str])])
51
+ func_args: list[list[args_spec]] = [[]] # this firt prepopulated dict is for the option 'RUN AS MAIN' which has no args
52
+
53
+ import ast
54
+ parsed_ast = ast.parse(P(file_path).read_text(encoding='utf-8'))
55
+ functions = [
56
+ node
57
+ for node in ast.walk(parsed_ast)
58
+ if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef))
59
+ ]
60
+ module__doc__ = ast.get_docstring(parsed_ast)
61
+ main_option = f"RUN AS MAIN -- {Display.get_repr(module__doc__, limit=150) if module__doc__ is not None else 'NoDocs'}"
62
+ options = [main_option]
63
+ for function in functions:
64
+ if function.name.startswith('__') and function.name.endswith('__'): continue
65
+ if any(arg.arg == 'self' for arg in function.args.args): continue
66
+ if any(arg.arg == 'self' for arg in function.args.args): continue
67
+ doc_string_tmp: str | None = ast.get_docstring(function)
68
+ if doc_string_tmp is None: doc_string = "NoDocs"
69
+ else: doc_string = doc_string_tmp.replace('\n', ' ')
70
+ options.append(f"{function.name} -- {', '.join([arg.arg for arg in function.args.args])} -- {doc_string}")
71
+ tmp = []
72
+ for idx, arg in enumerate(function.args.args):
73
+ if arg.annotation is not None:
74
+ try: type_ = arg.annotation.__dict__['id']
75
+ except KeyError as ke:
76
+ # type_ = arg.annotation.__name__
77
+ # print(f"Failed to get type for {arg.annotation}. {ke}")
78
+ # Struct(get_attrs(arg.annotation)).print(as_yaml=True)
79
+ type_ = "Any" # e.g. a callable object
80
+ _ = ke
81
+ # raise ke
82
+ else: type_ = "Any"
83
+ default_tmp = function.args.defaults[idx] if idx < len(function.args.defaults) else None
84
+ if default_tmp is None: default = None
85
+ else:
86
+ if hasattr(default_tmp, "__dict__"): default = default_tmp.__dict__.get("value", None)
87
+ else: default = None
88
+ tmp.append(args_spec(name=arg.arg, type=type_, default=default))
89
+ func_args.append(tmp)
90
+ return options, func_args
91
+
92
+
93
+ def interactively_run_function(func: Callable[[Any], Any]):
94
+ sig = inspect.signature(func)
95
+ params = list(sig.parameters.values())
96
+ args = []
97
+ kwargs = {}
98
+ for param in params:
99
+ if param.annotation is not inspect.Parameter.empty: hint = f" ({param.annotation.__name__})"
100
+ else: hint = ""
101
+ if param.default is not inspect.Parameter.empty:
102
+ default = param.default
103
+ value = input(f"Please enter a value for argument `{param.name}` (type = {hint}) (default = {default}) : ")
104
+ if value == "": value = default
105
+ else: value = input(f"Please enter a value for argument `{param.name}` (type = {hint}) : ")
106
+ try:
107
+ if param.annotation is not inspect.Parameter.empty:
108
+ value = param.annotation
109
+ except (TypeError, ValueError) as err:
110
+ raise ValueError(f"Invalid input: {value} is not of type {param.annotation}") from err
111
+ if param.kind == inspect.Parameter.KEYWORD_ONLY: kwargs[param.name] = value
112
+ else: args.append((param.name, value))
113
+ args_to_kwargs = dict(args)
114
+ return args_to_kwargs, kwargs
115
+
116
+
117
+ def get_attrs_recursively(obj: Any):
118
+ if hasattr(obj, '__dict__'):
119
+ res = {}
120
+ for k, v in obj.__dict__.items():
121
+ res[k] = get_attrs_recursively(v)
122
+ return res
123
+ return obj
124
+
125
+
126
+ def run_on_remote(func_file: str, args: argparse.Namespace):
127
+ host = choose_ssh_host(multi=False)
128
+ assert isinstance(host, str), f"host must be a string. Got {type(host)}"
129
+ from machineconfig.cluster.remote_machine import RemoteMachine, RemoteMachineConfig
130
+ config = RemoteMachineConfig(copy_repo=True, update_repo=False, update_essential_repos=True,
131
+ notify_upon_completion=True, ssh_params=dict(host=host),
132
+ # to_email=None, email_config_name='enaut',
133
+ data=[],
134
+ ipython=False, interactive=args.interactive, pdb=False, pudb=args.debug, wrap_in_try_except=False,
135
+ transfer_method="sftp")
136
+ m = RemoteMachine(func=func_file, func_kwargs=None, config=config)
137
+ m.run()
138
+
139
+
140
+ def find_repo_root_path(start_path: str) -> Optional[str]:
141
+ root_files = ['setup.py', 'pyproject.toml', '.git']
142
+ path: str=start_path
143
+ trials = 0
144
+ root_path = os.path.abspath(os.sep)
145
+ while path != root_path and trials < 20:
146
+ for root_file in root_files:
147
+ if os.path.exists(os.path.join(path, root_file)):
148
+ # print(f"Found repo root path: {path}")
149
+ return path
150
+ path = os.path.dirname(path)
151
+ trials += 1
152
+ return None
153
+
154
+
155
+ def get_import_module_code(module_path: str):
156
+ root_path = find_repo_root_path(module_path)
157
+ if root_path is None: # just make a desperate attempt to import it
158
+ module_name = module_path.lstrip(os.sep).replace(os.sep, '.')
159
+ if module_name.endswith(".py"):
160
+ module_name = module_name[:-3]
161
+ else:
162
+ relative_path = module_path.replace(root_path, '')
163
+ module_name = relative_path.lstrip(os.sep).replace(os.sep, '.')
164
+ if module_name.endswith(".py"):
165
+ module_name = module_name[:-3]
166
+ # module_name = module_name.replace("src.", "").replace("myresources.", "").replace("resources.", "").replace("source.", "")
167
+ if module_name.startswith("src."):
168
+ module_name = module_name[4:]
169
+ if module_name.startswith("myresources."):
170
+ module_name = module_name[12:]
171
+ if module_name.startswith("resources."):
172
+ module_name = module_name[10:]
173
+ if module_name.startswith("source."):
174
+ module_name = module_name[7:]
175
+ if any(char in module_name for char in "- :/\\"):
176
+ module_name = "IncorrectModuleName"
177
+ # TODO: use py_compile to check if the statement is valid code to avoid syntax errors that can't be caught.
178
+ return f"from {module_name} import *"
@@ -0,0 +1,50 @@
1
+ def get_jupyter_notebook(python_code: str):
2
+ template = """
3
+ {
4
+ "cells": [
5
+ {
6
+ "cell_type": "code",
7
+ "execution_count": 1,
8
+ "id": "7412902a-3074-475b-9820-71b82e670a2a",
9
+ "metadata": {},
10
+ "outputs": [],
11
+ "source": [
12
+ "\n",
13
+ "import math"
14
+ ]
15
+ }
16
+ ],
17
+ "metadata": {
18
+ "kernelspec": {
19
+ "display_name": "Python 3 (ipykernel)",
20
+ "language": "python",
21
+ "name": "python3"
22
+ },
23
+ "language_info": {
24
+ "codemirror_mode": {
25
+ "name": "ipython",
26
+ "version": 3
27
+ },
28
+ "file_extension": ".py",
29
+ "mimetype": "text/x-python",
30
+ "name": "python",
31
+ "nbconvert_exporter": "python",
32
+ "pygments_lexer": "ipython3",
33
+ "version": "3.11.7"
34
+ }
35
+ },
36
+ "nbformat": 4,
37
+ "nbformat_minor": 5
38
+ }
39
+ """
40
+ template.replace('"import math"', python_code)
41
+ return template
42
+
43
+
44
+ def create_jupyter_notebook(py_script: str) -> None:
45
+ import nbformat as nbf
46
+ from nbformat.notebooknode import NotebookNode
47
+ nb: NotebookNode = nbf.v4.new_notebook()
48
+ nb.cells.append(nbf.v4.new_code_cell(py_script))
49
+ with open("new_notebook.ipynb", mode="w", encoding="utf-8") as f:
50
+ nbf.write(nb,f)
@@ -0,0 +1,126 @@
1
+
2
+ from crocodile.file_management import P, Read
3
+ from crocodile.meta import Terminal
4
+ from machineconfig.scripts.python.get_zellij_cmd import get_zellij_cmd
5
+ from machineconfig.utils.utils import CONFIG_PATH, DEFAULTS_PATH, get_shell_script, write_shell_script
6
+ import platform
7
+
8
+
9
+ def delete_remote_repo_copy_and_push_local(remote_repo: str, local_repo: str, cloud: str):
10
+ print(f"""
11
+ ā•”{'═' * 70}ā•—
12
+ ā•‘ šŸ—‘ļø Deleting remote repo copy and pushing local copy ā•‘
13
+ ā•š{'═' * 70}ā•
14
+ """)
15
+ repo_sync_root = P(remote_repo).expanduser().absolute()
16
+ repo_root_path = P(local_repo).expanduser().absolute()
17
+ repo_sync_root.delete(sure=True)
18
+ print("🧹 Removed temporary remote copy")
19
+ from git.remote import Remote
20
+ from git.repo import Repo
21
+ try:
22
+ Remote.remove(Repo(repo_root_path), "originEnc")
23
+ print("šŸ”— Removed originEnc remote reference")
24
+ except Exception: pass # type: ignore
25
+ print(f"""
26
+ ā•­{'─' * 70}ā•®
27
+ │ šŸ“¤ Uploading local repository to cloud... │
28
+ ā•°{'─' * 70}╯
29
+ """)
30
+
31
+ repo_root_path.to_cloud(cloud=cloud, zip=True, encrypt=True, rel2home=True, os_specific=False)
32
+
33
+ print(f"""
34
+ ā•”{'═' * 70}ā•—
35
+ ā•‘ āœ… Repository successfully pushed to cloud ā•‘
36
+ ā•š{'═' * 70}ā•
37
+ """)
38
+
39
+
40
+ # import sys
41
+ # import subprocess
42
+
43
+
44
+ def get_wt_cmd(wd1: P, wd2: P) -> str:
45
+ lines = [
46
+ f"""wt --window 0 new-tab --profile pwsh --title "gitdiff" --tabColor `#3b04d1 --startingDirectory {wd1} ` --colorScheme "Solarized Dark" """,
47
+ f"""split-pane --horizontal --profile pwsh --startingDirectory {wd2} --size 0.5 --colorScheme "Tango Dark" -- pwsh -Interactive """
48
+ ]
49
+ return " `; ".join(lines)
50
+
51
+
52
+ def inspect_repos(repo_local_root: str, repo_remote_root: str):
53
+ print(f"""
54
+ ā•”{'═' * 70}ā•—
55
+ ā•‘ šŸ” Inspecting Repositories ā•‘
56
+ ā• {'═' * 70}ā•£
57
+ ā•‘ šŸ“‚ Local: {repo_local_root}
58
+ ā•‘ šŸ“‚ Remote: {repo_remote_root}
59
+ ā•š{'═' * 70}ā•
60
+ """)
61
+
62
+ if platform.system() == "Windows":
63
+ program = get_wt_cmd(wd1=P(repo_local_root), wd2=P(repo_local_root))
64
+ write_shell_script(program=program, execute=True, desc="Inspecting repos ...", preserve_cwd=True, display=True)
65
+ return None
66
+ elif platform.system() == "Linux":
67
+ program = get_zellij_cmd(wd1=P(repo_local_root), wd2=P(repo_remote_root))
68
+ write_shell_script(program=program, execute=True, desc="Inspecting repos ...", preserve_cwd=True, display=True)
69
+ return None
70
+ else: raise NotImplementedError(f"Platform {platform.system()} not implemented.")
71
+
72
+
73
+ def fetch_dotfiles():
74
+ print(f"""
75
+ ā•”{'═' * 70}ā•—
76
+ ā•‘ šŸ“ Fetching Dotfiles ā•‘
77
+ ā•š{'═' * 70}ā•
78
+ """)
79
+
80
+ cloud_resolved = Read.ini(DEFAULTS_PATH)['general']['rclone_config_name']
81
+ print(f"""
82
+ ā•­{'─' * 70}ā•®
83
+ │ āš ļø Using default cloud: `{cloud_resolved}` from {DEFAULTS_PATH} │
84
+ ā•°{'─' * 70}╯
85
+ """)
86
+
87
+ dotfiles_local = P.home().joinpath("dotfiles")
88
+ CONFIG_PATH.joinpath("remote").create()
89
+ dotfiles_remote = CONFIG_PATH.joinpath("remote", dotfiles_local.rel2home())
90
+ remote_path = dotfiles_local.get_remote_path(rel2home=True, os_specific=False, root="myhome") + ".zip.enc"
91
+
92
+ print(f"""
93
+ ā•­{'─' * 70}ā•®
94
+ │ šŸ“„ Downloading dotfiles from cloud... │
95
+ ā•°{'─' * 70}╯
96
+ """)
97
+
98
+ dotfiles_remote.from_cloud(remotepath=remote_path, cloud=cloud_resolved,
99
+ unzip=True, decrypt=True, rel2home=True, os_specific=False, pwd=None)
100
+
101
+ print(f"""
102
+ ā•­{'─' * 70}ā•®
103
+ │ šŸ—‘ļø Removing old dotfiles and replacing with cloud version... │
104
+ ā•°{'─' * 70}╯
105
+ """)
106
+
107
+ dotfiles_local.delete(sure=True)
108
+ dotfiles_remote.move(folder=P.home())
109
+ script = f"""
110
+ # rm -rf {dotfiles_local}
111
+ # mv {dotfiles_remote} {dotfiles_local}
112
+ """
113
+ if platform.system() == "Linux": script += """
114
+ sudo chmod 600 $HOME/.ssh/*
115
+ sudo chmod 700 $HOME/.ssh
116
+ sudo chmod +x $HOME/dotfiles/scripts/linux -R
117
+ """
118
+ shell_path = get_shell_script(shell_script=script)
119
+ Terminal().run(f". {shell_path}", shell="bash").capture().print()
120
+
121
+ print(f"""
122
+ ā•”{'═' * 70}ā•—
123
+ ā•‘ āœ… Dotfiles successfully fetched and installed ā•‘
124
+ ā•š{'═' * 70}ā•
125
+ """)
126
+
@@ -1,54 +1,85 @@
1
-
2
1
  """NFS mounting script
3
2
  """
4
3
 
5
-
6
4
  from crocodile.file_management import P
7
5
  from crocodile.meta import SSH, Terminal
8
6
  from crocodile.core import List as L
9
7
  from machineconfig.utils.utils import display_options, PROGRAM_PATH, choose_ssh_host
10
8
  import platform
11
9
 
12
-
13
10
  def main():
14
- print("Mounting NFS Share ... ")
15
- share_info = input("share path? (e.g. machine:~/data/share_nfs) [press enter for interactive choice] = ")
11
+ print("\n" + "=" * 50)
12
+ print("šŸš€ Starting NFS Mounting Process")
13
+ print("=" * 50 + "\n")
14
+
15
+ share_info = input("šŸ”— Enter share path (e.g., machine:~/data/share_nfs) [Press Enter for interactive choice]: ")
16
16
  if share_info == "":
17
+ print("\nšŸ” Interactive mode selected for choosing share path.")
17
18
  tmp = choose_ssh_host(multi=False)
18
19
  assert isinstance(tmp, str)
19
20
  ssh = SSH(tmp)
20
21
  default = f"{ssh.hostname}:{ssh.run('echo $HOME').op}/data/share_nfs"
21
- share_info = display_options("Choose a share path: ", options=L(ssh.run("cat /etc/exports").op.split("\n")).filter(lambda x: not x.startswith("#")).apply(lambda x: f"{ssh.hostname}:{x.split(' ')[0]}").list + [default], default=default)
22
- assert isinstance(share_info, str), f"share_info must be a string. Got {type(share_info)}"
22
+ share_info = display_options(
23
+ "šŸ“‚ Choose a share path:",
24
+ options=L(ssh.run("cat /etc/exports").op.split("\n"))
25
+ .filter(lambda x: not x.startswith("#"))
26
+ .apply(lambda x: f"{ssh.hostname}:{x.split(' ')[0]}").list + [default],
27
+ default=default
28
+ )
29
+ assert isinstance(share_info, str), f"āŒ share_info must be a string. Got {type(share_info)}"
30
+
23
31
  remote_server = share_info.split(":")[0]
24
32
  share_path = share_info.split(":")[1]
25
33
 
34
+ print(f"\n🌐 Remote Server: {remote_server}")
35
+ print(f"šŸ“ Share Path: {share_path}\n")
36
+
26
37
  if platform.system() == "Linux":
27
38
  mount_path_1 = P(share_path)
28
- print(remote_server)
29
39
  mount_path_2 = P.home().joinpath(f"data/mount_nfs/{remote_server}")
30
- if str(mount_path_1).startswith("/home"): mount_path_3 = P.home().joinpath(*mount_path_1.parts[3:])
31
- else: mount_path_3 = mount_path_2
32
- local_mount_point = display_options(msg="choose mount path OR input custom one", options=[mount_path_1, mount_path_2, mount_path_3], default=mount_path_2, custom_input=True)
33
- assert isinstance(local_mount_point, P), f"local_mount_point must be a pathlib.Path. Got {type(local_mount_point)}"
40
+ if str(mount_path_1).startswith("/home"):
41
+ mount_path_3 = P.home().joinpath(*mount_path_1.parts[3:])
42
+ else:
43
+ mount_path_3 = mount_path_2
44
+
45
+ print("šŸ”§ Preparing mount paths...")
46
+ local_mount_point = display_options(
47
+ msg="šŸ“‚ Choose mount path OR input custom one:",
48
+ options=[mount_path_1, mount_path_2, mount_path_3],
49
+ default=mount_path_2,
50
+ custom_input=True
51
+ )
52
+ assert isinstance(local_mount_point, P), f"āŒ local_mount_point must be a pathlib.Path. Got {type(local_mount_point)}"
34
53
  local_mount_point = P(local_mount_point).expanduser()
54
+
35
55
  PROGRAM_PATH.write_text(f"""
36
56
  share_info={share_info}
37
57
  remote_server={remote_server}
38
58
  share_path={share_path}
39
59
  local_mount_point={local_mount_point}
40
- """)
60
+ """)
61
+
62
+ print("āœ… Mount paths prepared successfully!\n")
63
+
41
64
  elif platform.system() == "Windows":
65
+ print("\nšŸ” Checking existing drives...")
42
66
  print(Terminal().run("Get-PSDrive -PSProvider 'FileSystem'", shell="powershell").op)
43
- driver_letter = input(r"Choose driver letter (e.g. Z:\) (avoid the ones already used) : ") or "Z:\\"
67
+ driver_letter = input(r"šŸ–„ļø Choose driver letter (e.g., Z:\\) [Avoid already used ones]: ") or "Z:\\"
68
+
44
69
  PROGRAM_PATH.write_text(f"""
45
70
  $server = "{remote_server}"
46
71
  $sharePath = "{share_path}"
47
72
  $driveLetter = "{driver_letter}"
48
73
  """)
49
- # P.home().joinpath(f"data/mount_nfs/{remote_server}").symlink_to(target="") # can't be created until the mount is finished
74
+
75
+ print("āœ… Drive letter selected and configuration saved!\n")
76
+
77
+ print("\nšŸ“„ Configuration File Content:")
78
+ print("-" * 50)
50
79
  print(PROGRAM_PATH.read_text())
80
+ print("-" * 50 + "\n")
51
81
 
82
+ print("šŸŽ‰ NFS Mounting Process Completed Successfully!\n")
52
83
 
53
84
  if __name__ == '__main__':
54
85
  main()
@@ -1,21 +1,29 @@
1
-
2
-
3
1
  from machineconfig.utils.utils import PROGRAM_PATH
4
2
  from crocodile.file_management import P
5
3
  import platform
6
4
 
7
-
8
5
  def main():
9
- print("Welcome to the WindowsNetworkDrive Mounting Wizard")
10
- drive_location = input("Enter the network drive location (ex: //192.168.1.100/Share): ")
6
+ print("\n" + "=" * 50)
7
+ print("šŸš€ Welcome to the Windows Network Drive Mounting Wizard")
8
+ print("=" * 50 + "\n")
9
+
10
+ drive_location = input("šŸ”— Enter the network drive location (e.g., //192.168.1.100/Share): ")
11
11
  machine_name = drive_location.split("//")[1].split("/")[0]
12
- mount_point = input(f"Enter the mount point directory (ex: /mnt/network) [default: ~/data/mount_nw/{machine_name}]: ")
13
- if mount_point == "": mount_point = P.home().joinpath(fr"data/mount_nw/{machine_name}")
14
- else: mount_point = P(mount_point).expanduser()
15
12
 
16
- username = input("Enter the username: ")
17
- password = input("Enter the password: ")
13
+ mount_point = input(f"šŸ“‚ Enter the mount point directory (e.g., /mnt/network) [Default: ~/data/mount_nw/{machine_name}]: ")
14
+ if mount_point == "":
15
+ mount_point = P.home().joinpath(fr"data/mount_nw/{machine_name}")
16
+ else:
17
+ mount_point = P(mount_point).expanduser()
18
+
19
+ print(f"\n🌐 Network Drive Location: {drive_location}")
20
+ print(f"šŸ“ Mount Point: {mount_point}\n")
21
+
22
+ username = input("šŸ‘¤ Enter the username: ")
23
+ password = input("šŸ”’ Enter the password: ")
24
+
18
25
  if platform.system() == "Linux":
26
+ print("\nšŸ”§ Saving configuration for Linux...")
19
27
  PROGRAM_PATH.write_text(f"""
20
28
  drive_location='{drive_location}'
21
29
  mount_point='{mount_point}'
@@ -23,9 +31,13 @@ username='{username}'
23
31
  password='{password}'
24
32
 
25
33
  """)
34
+ print("āœ… Configuration saved successfully!\n")
35
+
26
36
  elif platform.system() == "Windows":
37
+ print("āŒ Windows platform is not yet supported.")
27
38
  raise NotImplementedError
28
39
 
40
+ print("šŸŽ‰ Windows Network Drive Mounting Process Completed!\n")
29
41
 
30
42
  if __name__ == '__main__':
31
43
  main()
@@ -1,43 +1,59 @@
1
-
2
1
  """Mount a remote SSHFS share on a local directory
3
2
  """
4
3
 
5
-
6
4
  from platform import system
7
5
  from crocodile.meta import SSH, Terminal
8
6
  from crocodile.file_management import P
9
-
10
7
  from machineconfig.utils.utils import PROGRAM_PATH, choose_ssh_host
11
8
 
12
-
13
9
  def main():
14
- print("Mounting SSHFS ... ")
15
- share_info = input("share path? (e.g. user@host:/path) [press enter for interactive choice] = ")
10
+ print("\n" + "=" * 50)
11
+ print("šŸš€ Starting SSHFS Mounting Process")
12
+ print("=" * 50 + "\n")
13
+
14
+ share_info = input("šŸ”— Enter share path (e.g., user@host:/path) [Press Enter for interactive choice]: ")
16
15
  if share_info == "":
16
+ print("\nšŸ” Interactive mode selected for choosing share path.")
17
17
  tmp = choose_ssh_host(multi=False)
18
18
  assert isinstance(tmp, str)
19
19
  ssh = SSH(host=tmp)
20
20
  share_info = f"{ssh.username}@{ssh.hostname}:{ssh.run('echo $HOME').op}/data/share_ssh"
21
21
  else:
22
22
  ssh = SSH(share_info.split(":")[0])
23
- print(Terminal().run("net use", shell="powershell").op)
24
- driver_letter = input(r"Choose driver letter (e.g. Z:\) (avoid the ones already used) : ") or "Z:\\"
25
23
 
26
- mount_point = input(f"Enter the mount point directory (ex: /mnt/network) [default: ~/data/mount_ssh/{ssh.hostname}]: ")
27
- if mount_point == "": mount_point = P.home().joinpath(fr"data/mount_ssh/{ssh.hostname}")
24
+ print(f"\n🌐 Share Info: {share_info}")
25
+
26
+ if system() == "Windows":
27
+ print("\nšŸ” Checking existing drives...")
28
+ print(Terminal().run("net use", shell="powershell").op)
29
+ driver_letter = input(r"šŸ–„ļø Choose driver letter (e.g., Z:\\) [Avoid already used ones]: ") or "Z:\\"
30
+ else:
31
+ driver_letter = None
32
+
33
+ mount_point = input(f"šŸ“‚ Enter the mount point directory (e.g., /mnt/network) [Default: ~/data/mount_ssh/{ssh.hostname}]: ")
34
+ if mount_point == "":
35
+ mount_point = P.home().joinpath(fr"data/mount_ssh/{ssh.hostname}")
36
+
37
+ print(f"\nšŸ“ Mount Point: {mount_point}")
28
38
 
29
39
  if system() == "Linux":
30
40
  txt = """
31
41
  sshfs alex@:/media/dbhdd /media/dbhdd\
32
42
  """
43
+ print("\nšŸ”§ Preparing SSHFS mount command for Linux...")
33
44
  elif system() == "Windows":
34
45
  txt = fr"""
35
46
  net use {driver_letter} {share_info}
36
47
  fusermount -u /mnt/dbhdd
37
48
  """
38
- else: raise ValueError(f"Not implemented for this system {system()}")
49
+ print("\nšŸ”§ Preparing SSHFS mount command for Windows...")
50
+ else:
51
+ raise ValueError(f"āŒ Not implemented for this system: {system()}")
52
+
39
53
  PROGRAM_PATH.write_text(txt)
54
+ print("āœ… Configuration saved successfully!\n")
40
55
 
56
+ print("šŸŽ‰ SSHFS Mounting Process Completed!\n")
41
57
 
42
58
  if __name__ == '__main__':
43
- pass
59
+ main()
@@ -1,4 +1,3 @@
1
-
2
1
  """Share
3
2
  """
4
3
 
@@ -6,18 +5,15 @@
6
5
  # this script is pure python and connects to server to create a secret
7
6
  # or use ots executable to do this job
8
7
 
9
-
10
8
  import requests
11
9
  import crocodile.file_management as fm
12
10
  from crocodile.core import install_n_import
13
11
  import base64
14
12
  from typing import Optional
15
13
 
16
-
17
14
  def encrypt(key: str, pwd: str):
15
+ print("\nšŸ”’ Encrypting the secret...")
18
16
  install_n_import(library="Crypto.Cipher", package="pycryptodome")
19
- # from Crypto.Cipher import AES
20
- # from Crypto.Hash import MD5
21
17
  AES = __import__("Crypto", fromlist=["Cipher"]).Cipher.AES
22
18
  MD5 = __import__("Crypto", fromlist=["Hash"]).Hash.MD5
23
19
  pwd_enc = pwd.encode("utf-8")
@@ -28,33 +24,45 @@ def encrypt(key: str, pwd: str):
28
24
  pad = 16 - (len(pwd_enc) % 16)
29
25
  pwd_enc += bytes([pad] * pad)
30
26
  encrypted_password = cipher.encrypt(pwd_enc)
27
+ print("āœ… Encryption completed successfully!\n")
31
28
  return base64.b64encode(encrypted_password).decode("utf-8")
32
29
 
33
-
34
30
  def share(secret: str, password: Optional[str]):
35
- if password is not None: encoded_secret = encrypt(password, secret)
36
- else: encoded_secret = secret
31
+ print("\nšŸš€ Initiating the sharing process...")
32
+ if password is not None:
33
+ print("šŸ”‘ Password provided. Encrypting the secret...")
34
+ encoded_secret = encrypt(password, secret)
35
+ else:
36
+ print("šŸ”“ No password provided. Sharing the secret as is.")
37
+ encoded_secret = secret
37
38
 
38
39
  url = "https://ots.fyi/api/create"
39
40
 
40
41
  payload = {"secret": encoded_secret}
41
42
  headers = {'Content-Type': 'application/json'}
42
43
 
44
+ print("\n🌐 Sending request to the server...")
43
45
  response = requests.post(url, json=payload, headers=headers, timeout=10)
44
46
 
45
47
  if response.status_code == 201:
46
48
  res = response.json()
47
- print(res)
48
- assert res["success"] is True, "Request have failed"
49
+ print("āœ… Request successful! Response received.")
50
+ assert res["success"] is True, "āŒ Request failed."
49
51
  share_url = fm.P(f"https://ots.fyi/#{res['secret_id']}") + (f"|{password}" if password is not None else "")
50
- print(repr(share_url))
52
+ print(f"\nšŸ”— Share URL: {repr(share_url)}\n")
51
53
  return share_url
52
54
  else:
53
- print("Request failed")
55
+ print("āŒ Request failed. Server returned an error.")
54
56
  raise RuntimeError(response.text)
55
57
 
56
-
57
58
  if __name__ == "__main__":
58
- sc = input("Secret: ")
59
- pwdd = input("Password: ") or None
59
+ print("\n" + "=" * 50)
60
+ print("šŸ” Welcome to the One-Time Secret Sharing Tool")
61
+ print("=" * 50 + "\n")
62
+
63
+ sc = input("šŸ“ Enter the secret to share: ")
64
+ pwdd = input("šŸ”‘ Enter a password (optional): ") or None
65
+
66
+ print("\nšŸ“¤ Sharing the secret...")
60
67
  share(secret=sc, password=pwdd)
68
+ print("šŸŽ‰ Secret shared successfully!\n")