machineconfig 1.94__py3-none-any.whl → 1.96__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.
- machineconfig/cluster/cloud_manager.py +445 -343
- machineconfig/cluster/data_transfer.py +63 -56
- machineconfig/cluster/distribute.py +284 -280
- machineconfig/cluster/file_manager.py +234 -237
- machineconfig/cluster/job_params.py +133 -133
- machineconfig/cluster/loader_runner.py +183 -149
- machineconfig/cluster/remote_machine.py +269 -252
- machineconfig/cluster/script_execution.py +215 -209
- machineconfig/cluster/script_notify_upon_completion.py +50 -43
- machineconfig/cluster/self_ssh.py +52 -54
- machineconfig/cluster/sessions_managers/__init__.py +0 -0
- machineconfig/cluster/sessions_managers/archive/__init__.py +0 -0
- machineconfig/{jobs/python → cluster/sessions_managers/archive}/create_zellij_template.py +5 -3
- machineconfig/cluster/sessions_managers/archive/session_managers.py +184 -0
- machineconfig/cluster/sessions_managers/demo_rich_zellij.py +0 -0
- machineconfig/cluster/sessions_managers/enhanced_command_runner.py +160 -0
- machineconfig/cluster/sessions_managers/wt_local.py +494 -0
- machineconfig/cluster/sessions_managers/wt_local_manager.py +577 -0
- machineconfig/cluster/sessions_managers/wt_remote.py +288 -0
- machineconfig/cluster/sessions_managers/wt_remote_manager.py +483 -0
- machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +196 -0
- machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +418 -0
- machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +175 -0
- machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +300 -0
- machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +228 -0
- machineconfig/cluster/sessions_managers/zellij_local.py +418 -0
- machineconfig/cluster/sessions_managers/zellij_local_manager.py +533 -0
- machineconfig/cluster/sessions_managers/zellij_remote.py +229 -0
- machineconfig/cluster/sessions_managers/zellij_remote_manager.py +188 -0
- machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +64 -0
- machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +126 -0
- machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +334 -0
- machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +68 -0
- machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +119 -0
- machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +85 -0
- machineconfig/cluster/templates/cli_click.py +0 -1
- machineconfig/cluster/templates/cli_gooey.py +102 -104
- machineconfig/cluster/templates/run_cloud.py +51 -51
- machineconfig/cluster/templates/run_cluster.py +103 -59
- machineconfig/cluster/templates/run_remote.py +57 -58
- machineconfig/cluster/templates/utils.py +69 -36
- machineconfig/jobs/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/jobs/linux/msc/lid.sh +2 -4
- machineconfig/jobs/linux/msc/network.sh +3 -6
- machineconfig/jobs/python/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/jobs/python/check_installations.py +258 -190
- machineconfig/jobs/python/create_bootable_media.py +7 -3
- machineconfig/jobs/python/python_cargo_build_share.py +50 -50
- machineconfig/jobs/python/python_ve_symlink.py +10 -10
- machineconfig/jobs/python/vscode/__pycache__/select_interpreter.cpython-311.pyc +0 -0
- machineconfig/jobs/python/vscode/api.py +3 -3
- machineconfig/jobs/python/vscode/link_ve.py +6 -6
- machineconfig/jobs/python/vscode/select_interpreter.py +13 -9
- machineconfig/jobs/python/vscode/sync_code.py +14 -11
- machineconfig/jobs/python_custom_installers/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/jobs/python_custom_installers/archive/ngrok.py +5 -5
- machineconfig/jobs/python_custom_installers/dev/aider.py +4 -4
- machineconfig/jobs/python_custom_installers/dev/alacritty.py +7 -6
- machineconfig/jobs/python_custom_installers/dev/brave.py +11 -7
- machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +7 -8
- machineconfig/jobs/python_custom_installers/dev/code.py +7 -5
- machineconfig/jobs/python_custom_installers/dev/cursor.py +66 -5
- machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +4 -5
- machineconfig/jobs/python_custom_installers/dev/espanso.py +21 -17
- machineconfig/jobs/python_custom_installers/dev/goes.py +6 -12
- machineconfig/jobs/python_custom_installers/dev/lvim.py +7 -6
- machineconfig/jobs/python_custom_installers/dev/nerdfont.py +5 -5
- machineconfig/jobs/python_custom_installers/dev/redis.py +11 -7
- machineconfig/jobs/python_custom_installers/dev/wezterm.py +12 -8
- machineconfig/jobs/python_custom_installers/dev/winget.py +194 -0
- machineconfig/jobs/python_custom_installers/{dev/docker.py → docker.py} +12 -7
- machineconfig/jobs/python_custom_installers/gh.py +10 -9
- machineconfig/jobs/python_custom_installers/hx.py +36 -65
- machineconfig/jobs/python_custom_installers/scripts/linux/brave.sh +4 -8
- machineconfig/jobs/python_custom_installers/scripts/linux/docker.sh +5 -10
- machineconfig/jobs/python_custom_installers/scripts/linux/docker_start.sh +3 -6
- machineconfig/jobs/python_custom_installers/scripts/linux/edge.sh +3 -6
- machineconfig/jobs/python_custom_installers/scripts/linux/nerdfont.sh +5 -10
- machineconfig/jobs/python_custom_installers/scripts/linux/pgsql.sh +4 -8
- machineconfig/jobs/python_custom_installers/scripts/linux/redis.sh +5 -10
- machineconfig/jobs/python_custom_installers/scripts/linux/timescaledb.sh +6 -12
- machineconfig/jobs/python_custom_installers/scripts/linux/vscode.sh +101 -33
- machineconfig/jobs/python_custom_installers/scripts/linux/warp-cli.sh +5 -10
- machineconfig/jobs/python_custom_installers/scripts/linux/wezterm.sh +3 -6
- machineconfig/jobs/python_custom_installers/{dev/warp-cli.py → warp-cli.py} +5 -5
- machineconfig/jobs/python_generic_installers/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/jobs/python_generic_installers/config.json +133 -9
- machineconfig/jobs/python_generic_installers/dev/config.json +208 -37
- machineconfig/jobs/python_generic_installers/update.py +3 -0
- machineconfig/jobs/python_linux_installers/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/jobs/python_linux_installers/config.json +42 -6
- machineconfig/jobs/python_linux_installers/dev/config.json +79 -11
- machineconfig/jobs/python_windows_installers/config.json +6 -0
- machineconfig/profile/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/profile/__pycache__/create.cpython-311.pyc +0 -0
- machineconfig/profile/__pycache__/shell.cpython-311.pyc +0 -0
- machineconfig/profile/create.py +5 -5
- machineconfig/profile/create_hardlinks.py +5 -5
- machineconfig/profile/shell.py +69 -63
- machineconfig/scripts/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/scripts/__pycache__/__init__.cpython-313.pyc +0 -0
- machineconfig/scripts/cloud/init.sh +9 -18
- machineconfig/scripts/linux/fire +5 -24
- machineconfig/scripts/linux/fire_agents +27 -0
- machineconfig/scripts/linux/share_cloud.sh +6 -12
- machineconfig/scripts/linux/wifi_conn +24 -0
- machineconfig/scripts/python/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/__init__.cpython-313.pyc +0 -0
- machineconfig/scripts/python/__pycache__/cloud_copy.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/cloud_mount.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/cloud_sync.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/croshell.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/devops.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/devops_backup_retrieve.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/devops_devapps_install.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/devops_update_repos.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/fire_agents.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/fire_jobs.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/fire_jobs.cpython-313.pyc +0 -0
- machineconfig/scripts/python/__pycache__/get_zellij_cmd.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/repos.cpython-311.pyc +0 -0
- machineconfig/scripts/python/archive/im2text.py +28 -30
- machineconfig/scripts/python/archive/tmate_conn.py +10 -13
- machineconfig/scripts/python/archive/tmate_start.py +12 -16
- machineconfig/scripts/python/choose_wezterm_theme.py +12 -21
- machineconfig/scripts/python/cloud_copy.py +49 -104
- machineconfig/scripts/python/cloud_manager.py +77 -91
- machineconfig/scripts/python/cloud_mount.py +36 -46
- machineconfig/scripts/python/cloud_repo_sync.py +33 -79
- machineconfig/scripts/python/cloud_sync.py +35 -45
- machineconfig/scripts/python/croshell.py +70 -92
- machineconfig/scripts/python/devops.py +54 -113
- machineconfig/scripts/python/devops_add_identity.py +71 -109
- machineconfig/scripts/python/devops_add_ssh_key.py +42 -149
- machineconfig/scripts/python/devops_backup_retrieve.py +31 -119
- machineconfig/scripts/python/devops_devapps_install.py +6 -10
- machineconfig/scripts/python/devops_update_repos.py +5 -4
- machineconfig/scripts/python/dotfile.py +10 -7
- machineconfig/scripts/python/fire_agents.py +69 -0
- machineconfig/scripts/python/fire_jobs.py +117 -78
- machineconfig/scripts/python/ftpx.py +8 -8
- machineconfig/scripts/python/get_zellij_cmd.py +3 -3
- machineconfig/scripts/python/gh_models.py +6 -4
- machineconfig/scripts/python/helpers/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/scripts/python/helpers/__pycache__/__init__.cpython-313.pyc +0 -0
- machineconfig/scripts/python/helpers/__pycache__/cloud_helpers.cpython-311.pyc +0 -0
- machineconfig/scripts/python/helpers/__pycache__/helpers2.cpython-311.pyc +0 -0
- machineconfig/scripts/python/helpers/__pycache__/helpers4.cpython-311.pyc +0 -0
- machineconfig/scripts/python/helpers/__pycache__/helpers4.cpython-313.pyc +0 -0
- machineconfig/scripts/python/helpers/__pycache__/repo_sync_helpers.cpython-311.pyc +0 -0
- machineconfig/scripts/python/helpers/cloud_helpers.py +49 -46
- machineconfig/scripts/python/helpers/helpers2.py +26 -39
- machineconfig/scripts/python/helpers/helpers4.py +23 -35
- machineconfig/scripts/python/helpers/repo_sync_helpers.py +33 -67
- machineconfig/scripts/python/mount_nfs.py +8 -11
- machineconfig/scripts/python/mount_nw_drive.py +4 -4
- machineconfig/scripts/python/mount_ssh.py +2 -2
- machineconfig/scripts/python/onetimeshare.py +56 -57
- machineconfig/scripts/python/pomodoro.py +55 -55
- machineconfig/scripts/python/repos.py +72 -49
- machineconfig/scripts/python/scheduler.py +70 -53
- machineconfig/scripts/python/snapshot.py +21 -24
- machineconfig/scripts/python/start_slidev.py +6 -5
- machineconfig/scripts/python/start_terminals.py +3 -1
- machineconfig/scripts/python/viewer.py +5 -4
- machineconfig/scripts/python/viewer_template.py +138 -140
- machineconfig/scripts/python/wifi_conn.py +416 -62
- machineconfig/scripts/python/wsl_windows_transfer.py +18 -3
- machineconfig/scripts/windows/fire.ps1 +27 -15
- machineconfig/settings/linters/.pylintrc +6 -7
- machineconfig/settings/lvim/windows/config.lua +0 -0
- machineconfig/settings/shells/bash/init.sh +6 -0
- machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +7 -6
- machineconfig/settings/shells/pwsh/init.ps1 +6 -6
- machineconfig/settings/shells/wt/settings.json +51 -266
- machineconfig/setup_linux/nix/cli_installation.sh +9 -18
- machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +3 -6
- machineconfig/setup_linux/web_shortcuts/all.sh +5 -10
- machineconfig/setup_linux/web_shortcuts/ascii_art.sh +7 -14
- machineconfig/setup_linux/web_shortcuts/croshell.sh +6 -12
- machineconfig/setup_linux/web_shortcuts/interactive.sh +39 -70
- machineconfig/setup_linux/web_shortcuts/ssh.sh +8 -16
- machineconfig/setup_linux/web_shortcuts/update_system.sh +7 -14
- machineconfig/setup_windows/wt_and_pwsh/set_pwsh_theme.py +3 -6
- machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +27 -21
- machineconfig/utils/ai/browser_user_wrapper.py +60 -45
- machineconfig/utils/ai/generate_file_checklist.py +4 -7
- machineconfig/utils/ai/url2md.py +15 -7
- machineconfig/utils/cloud/onedrive/setup_oauth.py +59 -0
- machineconfig/utils/cloud/onedrive/transaction.py +796 -0
- machineconfig/utils/{utils_code.py → code.py} +25 -22
- machineconfig/utils/installer.py +81 -44
- machineconfig/utils/installer_utils/installer_abc.py +7 -6
- machineconfig/utils/installer_utils/installer_class.py +44 -25
- machineconfig/utils/io_save.py +107 -0
- machineconfig/utils/{utils_links.py → links.py} +28 -35
- machineconfig/utils/{utils_options.py → options.py} +14 -28
- machineconfig/utils/path.py +112 -0
- machineconfig/utils/path_reduced.py +608 -0
- machineconfig/utils/procs.py +134 -73
- machineconfig/utils/scheduling.py +312 -222
- machineconfig/utils/utils.py +19 -26
- machineconfig/utils/utils2.py +42 -0
- machineconfig/utils/utils5.py +84 -0
- machineconfig/utils/ve.py +49 -103
- {machineconfig-1.94.dist-info → machineconfig-1.96.dist-info}/METADATA +5 -3
- machineconfig-1.96.dist-info/RECORD +437 -0
- {machineconfig-1.94.dist-info → machineconfig-1.96.dist-info}/WHEEL +1 -1
- machineconfig/cluster/session_managers.py +0 -183
- machineconfig/cluster/templates/f.py +0 -4
- machineconfig/jobs/python/__pycache__/check_installations.cpython-311.pyc +0 -0
- machineconfig/jobs/python/__pycache__/checkout_version.cpython-311.pyc +0 -0
- machineconfig/jobs/python/__pycache__/python_ve_symlink.cpython-311.pyc +0 -0
- machineconfig/jobs/python/checkout_version.py +0 -123
- machineconfig/jobs/python/vscode/__pycache__/api.cpython-311.pyc +0 -0
- machineconfig/jobs/python/vscode/__pycache__/link_ve.cpython-311.pyc +0 -0
- machineconfig/jobs/python_custom_installers/__pycache__/hx.cpython-311.pyc +0 -0
- machineconfig/jobs/python_windows_installers/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/scripts/python/.mypy_cache/.gitignore +0 -2
- machineconfig/scripts/python/.mypy_cache/3.11/@plugins_snapshot.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/__future__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/__future__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_ast.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_ast.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_bz2.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_bz2.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_codecs.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_codecs.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_collections_abc.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_collections_abc.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_compression.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_compression.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_decimal.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_decimal.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib_external.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_frozen_importlib_external.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_io.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_io.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_locale.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_locale.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_stat.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_stat.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_struct.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_struct.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_thread.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_thread.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/importlib.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_typeshed/importlib.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_warnings.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_warnings.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_weakref.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_weakref.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_weakrefset.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/_weakrefset.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/abc.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/abc.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/argparse.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/argparse.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/ast.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/ast.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/binascii.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/binascii.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/builtins.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/builtins.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/bz2.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/bz2.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/calendar.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/calendar.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/codecs.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/codecs.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/collections/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/collections/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/collections/abc.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/collections/abc.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/configparser.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/configparser.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/contextlib.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/contextlib.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/dataclasses.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/dataclasses.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/datetime.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/datetime.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/decimal.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/decimal.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/dis.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/dis.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/_policybase.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/_policybase.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/charset.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/charset.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/contentmanager.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/contentmanager.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/errors.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/errors.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/header.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/header.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/message.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/message.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/policy.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/email/policy.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/enum.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/enum.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/fnmatch.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/fnmatch.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/functools.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/functools.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/gc.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/gc.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/genericpath.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/genericpath.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/getpass.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/getpass.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/cmd.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/cmd.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/compat.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/compat.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/config.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/config.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/db.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/db.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/diff.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/diff.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/exc.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/exc.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/base.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/base.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/fun.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/fun.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/typ.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/typ.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/util.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/index/util.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/base.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/base.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/blob.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/blob.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/commit.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/commit.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/fun.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/fun.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/base.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/base.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/root.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/root.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/util.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/submodule/util.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tag.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tag.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tree.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/tree.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/util.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/objects/util.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/head.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/head.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/log.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/log.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/reference.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/reference.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/remote.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/remote.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/symbolic.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/symbolic.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/tag.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/refs/tag.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/remote.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/remote.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/repo/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/repo/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/repo/base.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/repo/base.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/repo/fun.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/repo/fun.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/types.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/types.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/util.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/git/util.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/glob.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/glob.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/gzip.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/gzip.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/_abc.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/_abc.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap_external.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/_bootstrap_external.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/abc.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/abc.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/machinery.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/machinery.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/_meta.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/metadata/_meta.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/readers.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/readers.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/_common.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/_common.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/abc.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/importlib/resources/abc.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/inspect.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/inspect.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/io.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/io.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/itertools.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/itertools.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/locale.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/locale.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/logging/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/logging/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/mimetypes.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/mimetypes.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/mmap.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/mmap.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/numbers.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/numbers.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/opcode.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/opcode.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/os/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/os/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/os/path.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/os/path.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/pathlib.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/pathlib.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/platform.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/platform.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/posixpath.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/posixpath.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/re.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/re.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/resource.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/resource.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/shlex.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/shlex.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/shutil.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/shutil.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/signal.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/signal.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/src/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/src/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/python/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/src/machineconfig/scripts/python/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/sre_compile.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/sre_compile.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/sre_constants.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/sre_constants.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/sre_parse.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/sre_parse.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/stat.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/stat.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/string.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/string.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/struct.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/struct.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/subprocess.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/subprocess.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/sys/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/sys/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/tarfile.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/tarfile.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/tempfile.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/tempfile.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/textwrap.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/textwrap.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/threading.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/threading.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/time.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/time.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/types.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/types.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/typing.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/typing.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/typing_extensions.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/typing_extensions.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/urllib/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/urllib/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/urllib/parse.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/urllib/parse.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/uuid.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/uuid.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/warnings.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/warnings.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/weakref.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/weakref.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/zipfile/__init__.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/zipfile/__init__.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/zlib.data.json +0 -1
- machineconfig/scripts/python/.mypy_cache/3.11/zlib.meta.json +0 -1
- machineconfig/scripts/python/.mypy_cache/CACHEDIR.TAG +0 -3
- machineconfig/scripts/python/__pycache__/cloud_repo_sync.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/gh_models.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/url2md.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/viewer.cpython-311.pyc +0 -0
- machineconfig/scripts/python/__pycache__/vscode_api.cpython-311.pyc +0 -0
- machineconfig/settings/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/settings/linters/.ruff_cache/.gitignore +0 -2
- machineconfig/settings/linters/.ruff_cache/CACHEDIR.TAG +0 -1
- machineconfig/settings/shells/ipy/profiles/default/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/settings/shells/ipy/profiles/default/startup/__pycache__/__init__.cpython-311.pyc +0 -0
- machineconfig/settings/shells/ipy/profiles/default/startup/__pycache__/playext.cpython-311.pyc +0 -0
- machineconfig/utils/utils_path.py +0 -151
- machineconfig/utils/ve_utils/ve1.py +0 -111
- machineconfig/utils/ve_utils/ve2.py +0 -142
- machineconfig-1.94.dist-info/RECORD +0 -710
- {machineconfig-1.94.dist-info → machineconfig-1.96.dist-info}/top_level.txt +0 -0
|
@@ -1,28 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
from crocodile.core import Struct
|
|
4
|
-
from crocodile.file_management import Read
|
|
5
1
|
from machineconfig.scripts.python.helpers.cloud_helpers import Args, ArgsDefaults, absolute, find_cloud_config, get_secure_share_cloud_config
|
|
6
2
|
from machineconfig.utils.utils import DEFAULTS_PATH
|
|
3
|
+
from machineconfig.utils.utils2 import read_ini, pprint
|
|
7
4
|
from typing import Optional
|
|
5
|
+
from rich.console import Console
|
|
6
|
+
from rich.panel import Panel
|
|
8
7
|
|
|
9
8
|
|
|
10
9
|
ES = "^" # chosen carefully to not mean anything on any shell. `$` was a bad choice.
|
|
10
|
+
console = Console()
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
def parse_cloud_source_target(args: Args, source: str, target: str) -> tuple[str, str, str]:
|
|
14
|
+
print("Source:", source)
|
|
15
|
+
print("Target:", target)
|
|
14
16
|
config = args.config
|
|
15
17
|
if config == "ss":
|
|
16
18
|
cloud_maybe: Optional[str] = target.split(":")[0]
|
|
17
|
-
if cloud_maybe == "": cloud_maybe = source.split(":")[0]
|
|
19
|
+
# if cloud_maybe == "": cloud_maybe = source.split(":")[0]
|
|
18
20
|
if cloud_maybe == "": cloud_maybe = None
|
|
21
|
+
print("cloud_maybe:", cloud_maybe)
|
|
19
22
|
maybe_config = get_secure_share_cloud_config(interactive=True, cloud=cloud_maybe)
|
|
20
23
|
elif config is not None:
|
|
21
|
-
print(f"""
|
|
22
|
-
╭{'─' * 70}╮
|
|
23
|
-
│ 📄 Loading configuration from: {config} │
|
|
24
|
-
╰{'─' * 70}╯
|
|
25
|
-
""")
|
|
24
|
+
console.print(Panel(f"📄 Loading configuration from: {config}", width=150, border_style="blue"))
|
|
26
25
|
maybe_config = Args.from_config(absolute(config))
|
|
27
26
|
else:
|
|
28
27
|
maybe_config = None
|
|
@@ -54,12 +53,8 @@ def parse_cloud_source_target(args: Args, source: str, target: str) -> tuple[str
|
|
|
54
53
|
maybe_config = tmp_maybe_config
|
|
55
54
|
|
|
56
55
|
if maybe_config is None:
|
|
57
|
-
default_cloud: str=
|
|
58
|
-
print(f"""
|
|
59
|
-
╭{'─' * 70}╮
|
|
60
|
-
│ ⚠️ No cloud config found. Using default cloud: {default_cloud} │
|
|
61
|
-
╰{'─' * 70}╯
|
|
62
|
-
""")
|
|
56
|
+
default_cloud: str=read_ini(DEFAULTS_PATH)['general']['rclone_config_name']
|
|
57
|
+
console.print(Panel(f"⚠️ No cloud config found. Using default cloud: {default_cloud}", width=150, border_style="yellow"))
|
|
63
58
|
source = default_cloud + ":" + source[1:]
|
|
64
59
|
else:
|
|
65
60
|
tmp = maybe_config
|
|
@@ -74,18 +69,17 @@ def parse_cloud_source_target(args: Args, source: str, target: str) -> tuple[str
|
|
|
74
69
|
if target.startswith(":"): # default cloud name is omitted cloud_name: # or ES in target
|
|
75
70
|
assert ES not in source, "Not Implemented here yet."
|
|
76
71
|
path = absolute(source)
|
|
77
|
-
if maybe_config is None:
|
|
72
|
+
if maybe_config is None:
|
|
73
|
+
maybe_config = find_cloud_config(path)
|
|
78
74
|
|
|
79
75
|
if maybe_config is None:
|
|
80
|
-
default_cloud =
|
|
81
|
-
print(f"""
|
|
82
|
-
╭{'─' * 70}╮
|
|
83
|
-
│ ⚠️ No cloud config found. Using default cloud: {default_cloud} │
|
|
84
|
-
╰{'─' * 70}╯
|
|
85
|
-
""")
|
|
76
|
+
default_cloud = read_ini(DEFAULTS_PATH)['general']['rclone_config_name']
|
|
77
|
+
console.print(Panel(f"⚠️ No cloud config found. Using default cloud: {default_cloud}", width=150, border_style="yellow"))
|
|
86
78
|
target = default_cloud + ":" + target[1:]
|
|
79
|
+
print("target mutated to:", target, f"because of default cloud being {default_cloud}")
|
|
87
80
|
else:
|
|
88
81
|
tmp = maybe_config
|
|
82
|
+
# print("target mutated to:", target, f"because of cloud config being {tmp.cloud}")
|
|
89
83
|
target = f"{tmp.cloud}:" + target[1:]
|
|
90
84
|
root = tmp.root
|
|
91
85
|
rel2home = tmp.rel2home
|
|
@@ -102,7 +96,8 @@ def parse_cloud_source_target(args: Args, source: str, target: str) -> tuple[str
|
|
|
102
96
|
if len(source_parts) > 1 and source_parts[1] == ES: # the source path is to be inferred from target.
|
|
103
97
|
assert ES not in target, f"You can't use expand symbol `{ES}` in both source and target. Cyclical inference dependency arised."
|
|
104
98
|
target_obj = absolute(target)
|
|
105
|
-
|
|
99
|
+
from machineconfig.utils.path_reduced import P as PathExtended
|
|
100
|
+
remote_path = PathExtended(target_obj).get_remote_path(os_specific=os_specific, root=root, rel2home=rel2home, strict=False)
|
|
106
101
|
source = f"{cloud}:{remote_path.as_posix()}"
|
|
107
102
|
else: # source path is mentioned, target? maybe.
|
|
108
103
|
if target == ES: # target path is to be inferred from source.
|
|
@@ -120,7 +115,8 @@ def parse_cloud_source_target(args: Args, source: str, target: str) -> tuple[str
|
|
|
120
115
|
if len(target_parts) > 1 and target_parts[1] == ES: # the target path is to be inferred from source.
|
|
121
116
|
assert ES not in source, "You can't use $ in both source and target. Cyclical inference dependency arised."
|
|
122
117
|
source_obj = absolute(source)
|
|
123
|
-
|
|
118
|
+
from machineconfig.utils.path_reduced import P as PathExtended
|
|
119
|
+
remote_path = PathExtended(source_obj).get_remote_path(os_specific=os_specific, root=root, rel2home=rel2home, strict=False)
|
|
124
120
|
target = f"{cloud}:{remote_path.as_posix()}"
|
|
125
121
|
else: # target path is mentioned, source? maybe.
|
|
126
122
|
target = str(target)
|
|
@@ -131,19 +127,10 @@ def parse_cloud_source_target(args: Args, source: str, target: str) -> tuple[str
|
|
|
131
127
|
if zip_arg and ".zip" not in target: target += ".zip"
|
|
132
128
|
if encrypt and ".enc" not in target: target += ".enc"
|
|
133
129
|
else:
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
║ ❌ ERROR: Invalid path configuration ║
|
|
137
|
-
╠{'═' * 70}╣
|
|
138
|
-
║ Either source or target must be a remote path (i.e. machine:path) ║
|
|
139
|
-
╚{'═' * 70}╝
|
|
140
|
-
""")
|
|
130
|
+
console.print(Panel("❌ ERROR: Invalid path configuration\nEither source or target must be a remote path (i.e. machine:path)", title="[bold red]Error[/bold red]", border_style="red"))
|
|
131
|
+
raise ValueError(f"Either source or target must be a remote path (i.e. machine:path)\nGot: source: `{source}`, target: `{target}`")
|
|
141
132
|
|
|
142
|
-
print(
|
|
143
|
-
|
|
144
|
-
│ 🔍 Path resolution complete │
|
|
145
|
-
╰{'─' * 70}╯
|
|
146
|
-
""")
|
|
147
|
-
Struct({"cloud": cloud, "source": str(source), "target": str(target)}).print(as_config=True, title="CLI Resolution")
|
|
133
|
+
console.print(Panel("🔍 Path resolution complete", title="[bold blue]Resolution[/bold blue]", border_style="blue"))
|
|
134
|
+
pprint({"cloud": cloud, "source": str(source), "target": str(target)}, "CLI Resolution")
|
|
148
135
|
_ = pwd, encrypt, zip_arg, share
|
|
149
|
-
return cloud, str(source), str(target)
|
|
136
|
+
return cloud, str(source), str(target)
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
from typing import Any, Callable, Optional
|
|
3
3
|
import inspect
|
|
4
4
|
import os
|
|
5
|
-
import argparse
|
|
5
|
+
# import argparse
|
|
6
6
|
from crocodile.core import Display
|
|
7
|
-
from
|
|
8
|
-
from machineconfig.utils.utils import choose_ssh_host
|
|
7
|
+
from machineconfig.utils.path_reduced import P as PathExtended
|
|
8
|
+
# from machineconfig.utils.utils import choose_ssh_host
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
def search_for_files_of_interest(path_obj:
|
|
11
|
+
def search_for_files_of_interest(path_obj: PathExtended):
|
|
12
12
|
if path_obj.joinpath(".venv").exists():
|
|
13
13
|
path_objects = path_obj.search("*", not_in=[".venv"]).list
|
|
14
|
-
files: list[
|
|
14
|
+
files: list[PathExtended] = []
|
|
15
15
|
for a_path_obj in path_objects:
|
|
16
16
|
files += search_for_files_of_interest(path_obj=a_path_obj)
|
|
17
17
|
return files
|
|
@@ -28,19 +28,11 @@ def convert_kwargs_to_fire_kwargs_str(kwargs: dict[str, Any]) -> str:
|
|
|
28
28
|
if not kwargs: # empty dict
|
|
29
29
|
kwargs_str = ''
|
|
30
30
|
else:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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__ + "}'"
|
|
31
|
+
# For fire module, all keyword arguments should be passed as --key value pairs
|
|
32
|
+
tmp_list: list[str] = []
|
|
33
|
+
for k, v in kwargs.items():
|
|
34
|
+
tmp_list.append(f"--{k} {v}")
|
|
35
|
+
kwargs_str = " " + " ".join(tmp_list) + " "
|
|
44
36
|
return kwargs_str
|
|
45
37
|
|
|
46
38
|
|
|
@@ -51,7 +43,7 @@ def parse_pyfile(file_path: str):
|
|
|
51
43
|
func_args: list[list[args_spec]] = [[]] # this firt prepopulated dict is for the option 'RUN AS MAIN' which has no args
|
|
52
44
|
|
|
53
45
|
import ast
|
|
54
|
-
parsed_ast = ast.parse(
|
|
46
|
+
parsed_ast = ast.parse(PathExtended(file_path).read_text(encoding='utf-8'))
|
|
55
47
|
functions = [
|
|
56
48
|
node
|
|
57
49
|
for node in ast.walk(parsed_ast)
|
|
@@ -73,12 +65,8 @@ def parse_pyfile(file_path: str):
|
|
|
73
65
|
if arg.annotation is not None:
|
|
74
66
|
try: type_ = arg.annotation.__dict__['id']
|
|
75
67
|
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
68
|
type_ = "Any" # e.g. a callable object
|
|
80
69
|
_ = ke
|
|
81
|
-
# raise ke
|
|
82
70
|
else: type_ = "Any"
|
|
83
71
|
default_tmp = function.args.defaults[idx] if idx < len(function.args.defaults) else None
|
|
84
72
|
if default_tmp is None: default = None
|
|
@@ -123,18 +111,18 @@ def get_attrs_recursively(obj: Any):
|
|
|
123
111
|
return obj
|
|
124
112
|
|
|
125
113
|
|
|
126
|
-
def run_on_remote(func_file: str, args: argparse.Namespace):
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
114
|
+
# def run_on_remote(func_file: str, args: argparse.Namespace):
|
|
115
|
+
# host = choose_ssh_host(multi=False)
|
|
116
|
+
# assert isinstance(host, str), f"host must be a string. Got {type(host)}"
|
|
117
|
+
# from machineconfig.cluster.remote_machine import RemoteMachine, RemoteMachineConfig
|
|
118
|
+
# config = RemoteMachineConfig(copy_repo=True, update_repo=False, update_essential_repos=True,
|
|
119
|
+
# notify_upon_completion=True, ssh_params=dict(host=host),
|
|
120
|
+
# # to_email=None, email_config_name='enaut',
|
|
121
|
+
# data=[],
|
|
122
|
+
# ipython=False, interactive=args.interactive, pdb=False, pudb=args.debug, wrap_in_try_except=False,
|
|
123
|
+
# transfer_method="sftp")
|
|
124
|
+
# m = RemoteMachine(func=func_file, func_kwargs=None, config=config)
|
|
125
|
+
# m.run()
|
|
138
126
|
|
|
139
127
|
|
|
140
128
|
def find_repo_root_path(start_path: str) -> Optional[str]:
|
|
@@ -1,47 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
from crocodile.file_management import P, Read
|
|
1
|
+
from machineconfig.utils.path_reduced import P as PathExtended
|
|
3
2
|
from crocodile.meta import Terminal
|
|
4
3
|
from machineconfig.scripts.python.get_zellij_cmd import get_zellij_cmd
|
|
5
|
-
from machineconfig.utils.utils import CONFIG_PATH, DEFAULTS_PATH
|
|
4
|
+
from machineconfig.utils.utils import CONFIG_PATH, DEFAULTS_PATH
|
|
5
|
+
from machineconfig.utils.utils2 import read_ini
|
|
6
|
+
from machineconfig.utils.code import write_shell_script_to_file
|
|
6
7
|
import platform
|
|
8
|
+
from rich.console import Console
|
|
9
|
+
from rich.panel import Panel
|
|
10
|
+
|
|
11
|
+
console = Console()
|
|
7
12
|
|
|
8
13
|
|
|
9
14
|
def delete_remote_repo_copy_and_push_local(remote_repo: str, local_repo: str, cloud: str):
|
|
10
|
-
print(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
╚{'═' * 70}╝
|
|
14
|
-
""")
|
|
15
|
-
repo_sync_root = P(remote_repo).expanduser().absolute()
|
|
16
|
-
repo_root_path = P(local_repo).expanduser().absolute()
|
|
15
|
+
console.print(Panel("🗑️ Deleting remote repo copy and pushing local copy", title="[bold blue]Repo Sync[/bold blue]", border_style="blue"))
|
|
16
|
+
repo_sync_root = PathExtended(remote_repo).expanduser().absolute()
|
|
17
|
+
repo_root_path = PathExtended(local_repo).expanduser().absolute()
|
|
17
18
|
repo_sync_root.delete(sure=True)
|
|
18
19
|
print("🧹 Removed temporary remote copy")
|
|
19
20
|
from git.remote import Remote
|
|
20
21
|
from git.repo import Repo
|
|
21
22
|
try:
|
|
22
23
|
Remote.remove(Repo(repo_root_path), "originEnc")
|
|
23
|
-
print("🔗 Removed originEnc remote reference")
|
|
24
|
+
console.print(Panel("🔗 Removed originEnc remote reference", border_style="blue"))
|
|
24
25
|
except Exception: pass # type: ignore
|
|
25
|
-
print(
|
|
26
|
-
╭{'─' * 70}╮
|
|
27
|
-
│ 📤 Uploading local repository to cloud... │
|
|
28
|
-
╰{'─' * 70}╯
|
|
29
|
-
""")
|
|
26
|
+
console.print(Panel("📈 Deleting remote repository copy and pushing local changes", width=150, border_style="blue"))
|
|
30
27
|
|
|
31
28
|
repo_root_path.to_cloud(cloud=cloud, zip=True, encrypt=True, rel2home=True, os_specific=False)
|
|
32
29
|
|
|
33
|
-
print(
|
|
34
|
-
╔{'═' * 70}╗
|
|
35
|
-
║ ✅ Repository successfully pushed to cloud ║
|
|
36
|
-
╚{'═' * 70}╝
|
|
37
|
-
""")
|
|
30
|
+
console.print(Panel("✅ Repository successfully pushed to cloud", title="[bold green]Repo Sync[/bold green]", border_style="green"))
|
|
38
31
|
|
|
39
32
|
|
|
40
33
|
# import sys
|
|
41
34
|
# import subprocess
|
|
42
35
|
|
|
43
36
|
|
|
44
|
-
def get_wt_cmd(wd1:
|
|
37
|
+
def get_wt_cmd(wd1: PathExtended, wd2: PathExtended) -> str:
|
|
45
38
|
lines = [
|
|
46
39
|
f"""wt --window 0 new-tab --profile pwsh --title "gitdiff" --tabColor `#3b04d1 --startingDirectory {wd1} ` --colorScheme "Solarized Dark" """,
|
|
47
40
|
f"""split-pane --horizontal --profile pwsh --startingDirectory {wd2} --size 0.5 --colorScheme "Tango Dark" -- pwsh -Interactive """
|
|
@@ -50,62 +43,39 @@ def get_wt_cmd(wd1: P, wd2: P) -> str:
|
|
|
50
43
|
|
|
51
44
|
|
|
52
45
|
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
|
-
""")
|
|
46
|
+
console.print(Panel(f"📂 Local: {repo_local_root}\n📂 Remote: {repo_remote_root}", title="[bold blue]🔍 Inspecting Repositories[/bold blue]", border_style="blue"))
|
|
61
47
|
|
|
62
48
|
if platform.system() == "Windows":
|
|
63
|
-
program = get_wt_cmd(wd1=
|
|
64
|
-
|
|
49
|
+
program = get_wt_cmd(wd1=PathExtended(repo_local_root), wd2=PathExtended(repo_local_root))
|
|
50
|
+
write_shell_script_to_file(shell_script=program)
|
|
65
51
|
return None
|
|
66
|
-
elif platform.system()
|
|
67
|
-
program = get_zellij_cmd(wd1=
|
|
68
|
-
|
|
52
|
+
elif platform.system() in ["Linux", "Darwin"]:
|
|
53
|
+
program = get_zellij_cmd(wd1=PathExtended(repo_local_root), wd2=PathExtended(repo_remote_root))
|
|
54
|
+
write_shell_script_to_file(shell_script=program)
|
|
69
55
|
return None
|
|
70
56
|
else: raise NotImplementedError(f"Platform {platform.system()} not implemented.")
|
|
71
57
|
|
|
72
58
|
|
|
73
59
|
def fetch_dotfiles():
|
|
74
|
-
print(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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()
|
|
60
|
+
console.print(Panel("📁 Fetching Dotfiles", title="[bold blue]Dotfiles[/bold blue]", border_style="blue"))
|
|
61
|
+
|
|
62
|
+
cloud_resolved = read_ini(DEFAULTS_PATH)['general']['rclone_config_name']
|
|
63
|
+
console.print(Panel(f"⚠️ Using default cloud: `{cloud_resolved}` from {DEFAULTS_PATH}", width=150, border_style="yellow"))
|
|
64
|
+
|
|
65
|
+
dotfiles_local = PathExtended.home().joinpath("dotfiles")
|
|
66
|
+
CONFIG_PATH.joinpath("remote").mkdir(parents=True, exist_ok=True)
|
|
89
67
|
dotfiles_remote = CONFIG_PATH.joinpath("remote", dotfiles_local.rel2home())
|
|
90
68
|
remote_path = dotfiles_local.get_remote_path(rel2home=True, os_specific=False, root="myhome") + ".zip.enc"
|
|
91
69
|
|
|
92
|
-
print(
|
|
93
|
-
╭{'─' * 70}╮
|
|
94
|
-
│ 📥 Downloading dotfiles from cloud... │
|
|
95
|
-
╰{'─' * 70}╯
|
|
96
|
-
""")
|
|
70
|
+
console.print(Panel("📥 Downloading dotfiles from cloud...", width=150, border_style="blue"))
|
|
97
71
|
|
|
98
72
|
dotfiles_remote.from_cloud(remotepath=remote_path, cloud=cloud_resolved,
|
|
99
73
|
unzip=True, decrypt=True, rel2home=True, os_specific=False, pwd=None)
|
|
100
74
|
|
|
101
|
-
print(
|
|
102
|
-
╭{'─' * 70}╮
|
|
103
|
-
│ 🗑️ Removing old dotfiles and replacing with cloud version... │
|
|
104
|
-
╰{'─' * 70}╯
|
|
105
|
-
""")
|
|
75
|
+
console.print(Panel("🗑️ Removing old dotfiles and replacing with cloud version...", width=150, border_style="blue"))
|
|
106
76
|
|
|
107
77
|
dotfiles_local.delete(sure=True)
|
|
108
|
-
dotfiles_remote.move(folder=
|
|
78
|
+
dotfiles_remote.move(folder=PathExtended.home())
|
|
109
79
|
script = f"""
|
|
110
80
|
# rm -rf {dotfiles_local}
|
|
111
81
|
# mv {dotfiles_remote} {dotfiles_local}
|
|
@@ -115,12 +85,8 @@ sudo chmod 600 $HOME/.ssh/*
|
|
|
115
85
|
sudo chmod 700 $HOME/.ssh
|
|
116
86
|
sudo chmod +x $HOME/dotfiles/scripts/linux -R
|
|
117
87
|
"""
|
|
118
|
-
shell_path =
|
|
88
|
+
shell_path = write_shell_script_to_file(shell_script=script)
|
|
119
89
|
Terminal().run(f". {shell_path}", shell="bash").capture().print()
|
|
120
90
|
|
|
121
|
-
print(
|
|
122
|
-
╔{'═' * 70}╗
|
|
123
|
-
║ ✅ Dotfiles successfully fetched and installed ║
|
|
124
|
-
╚{'═' * 70}╝
|
|
125
|
-
""")
|
|
91
|
+
console.print(Panel("✅ Dotfiles successfully fetched and installed", title="[bold green]Dotfiles[/bold green]", border_style="green"))
|
|
126
92
|
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"""NFS mounting script
|
|
2
2
|
"""
|
|
3
3
|
|
|
4
|
-
from
|
|
4
|
+
from machineconfig.utils.path_reduced import P as PathExtended
|
|
5
5
|
from crocodile.meta import SSH, Terminal
|
|
6
|
-
from crocodile.core import List as L
|
|
7
6
|
from machineconfig.utils.utils import display_options, PROGRAM_PATH, choose_ssh_host
|
|
8
7
|
import platform
|
|
9
8
|
|
|
@@ -21,9 +20,7 @@ def main():
|
|
|
21
20
|
default = f"{ssh.hostname}:{ssh.run('echo $HOME').op}/data/share_nfs"
|
|
22
21
|
share_info = display_options(
|
|
23
22
|
"📂 Choose a share path:",
|
|
24
|
-
options=
|
|
25
|
-
.filter(lambda x: not x.startswith("#"))
|
|
26
|
-
.apply(lambda x: f"{ssh.hostname}:{x.split(' ')[0]}").list + [default],
|
|
23
|
+
options=[f"{ssh.hostname}:{item.split(' ')[0]}" for item in ssh.run("cat /etc/exports").op.split("\n") if not item.startswith("#")] + [default],
|
|
27
24
|
default=default
|
|
28
25
|
)
|
|
29
26
|
assert isinstance(share_info, str), f"❌ share_info must be a string. Got {type(share_info)}"
|
|
@@ -34,11 +31,11 @@ def main():
|
|
|
34
31
|
print(f"\n🌐 Remote Server: {remote_server}")
|
|
35
32
|
print(f"📁 Share Path: {share_path}\n")
|
|
36
33
|
|
|
37
|
-
if platform.system()
|
|
38
|
-
mount_path_1 =
|
|
39
|
-
mount_path_2 =
|
|
34
|
+
if platform.system() in ["Linux", "Darwin"]:
|
|
35
|
+
mount_path_1 = PathExtended(share_path)
|
|
36
|
+
mount_path_2 = PathExtended.home().joinpath(f"data/mount_nfs/{remote_server}")
|
|
40
37
|
if str(mount_path_1).startswith("/home"):
|
|
41
|
-
mount_path_3 =
|
|
38
|
+
mount_path_3 = PathExtended.home().joinpath(*mount_path_1.parts[3:])
|
|
42
39
|
else:
|
|
43
40
|
mount_path_3 = mount_path_2
|
|
44
41
|
|
|
@@ -49,8 +46,8 @@ def main():
|
|
|
49
46
|
default=mount_path_2,
|
|
50
47
|
custom_input=True
|
|
51
48
|
)
|
|
52
|
-
assert isinstance(local_mount_point,
|
|
53
|
-
local_mount_point =
|
|
49
|
+
assert isinstance(local_mount_point, PathExtended), f"❌ local_mount_point must be a pathlib.Path. Got {type(local_mount_point)}"
|
|
50
|
+
local_mount_point = PathExtended(local_mount_point).expanduser()
|
|
54
51
|
|
|
55
52
|
PROGRAM_PATH.write_text(f"""
|
|
56
53
|
share_info={share_info}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from machineconfig.utils.utils import PROGRAM_PATH
|
|
2
|
-
from
|
|
2
|
+
from pathlib import Path
|
|
3
3
|
import platform
|
|
4
4
|
|
|
5
5
|
def main():
|
|
@@ -12,9 +12,9 @@ def main():
|
|
|
12
12
|
|
|
13
13
|
mount_point = input(f"📂 Enter the mount point directory (e.g., /mnt/network) [Default: ~/data/mount_nw/{machine_name}]: ")
|
|
14
14
|
if mount_point == "":
|
|
15
|
-
mount_point =
|
|
15
|
+
mount_point = Path.home().joinpath(fr"data/mount_nw/{machine_name}")
|
|
16
16
|
else:
|
|
17
|
-
mount_point =
|
|
17
|
+
mount_point = Path(mount_point).expanduser()
|
|
18
18
|
|
|
19
19
|
print(f"\n🌐 Network Drive Location: {drive_location}")
|
|
20
20
|
print(f"📁 Mount Point: {mount_point}\n")
|
|
@@ -22,7 +22,7 @@ def main():
|
|
|
22
22
|
username = input("👤 Enter the username: ")
|
|
23
23
|
password = input("🔒 Enter the password: ")
|
|
24
24
|
|
|
25
|
-
if platform.system()
|
|
25
|
+
if platform.system() in ["Linux", "Darwin"]:
|
|
26
26
|
print("\n🔧 Saving configuration for Linux...")
|
|
27
27
|
PROGRAM_PATH.write_text(f"""
|
|
28
28
|
drive_location='{drive_location}'
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
from platform import system
|
|
5
5
|
from crocodile.meta import SSH, Terminal
|
|
6
|
-
from
|
|
6
|
+
from machineconfig.utils.path_reduced import P as PathExtended
|
|
7
7
|
from machineconfig.utils.utils import PROGRAM_PATH, choose_ssh_host
|
|
8
8
|
|
|
9
9
|
def main():
|
|
@@ -32,7 +32,7 @@ def main():
|
|
|
32
32
|
|
|
33
33
|
mount_point = input(f"📂 Enter the mount point directory (e.g., /mnt/network) [Default: ~/data/mount_ssh/{ssh.hostname}]: ")
|
|
34
34
|
if mount_point == "":
|
|
35
|
-
mount_point =
|
|
35
|
+
mount_point = PathExtended.home().joinpath(fr"data/mount_ssh/{ssh.hostname}")
|
|
36
36
|
|
|
37
37
|
print(f"\n📁 Mount Point: {mount_point}")
|
|
38
38
|
|
|
@@ -1,68 +1,67 @@
|
|
|
1
|
-
"""Share
|
|
2
|
-
"""
|
|
1
|
+
# """Share
|
|
2
|
+
# """
|
|
3
3
|
|
|
4
|
-
# as per https://github.com/Luzifer/ots
|
|
5
|
-
# this script is pure python and connects to server to create a secret
|
|
6
|
-
# or use ots executable to do this job
|
|
4
|
+
# # as per https://github.com/Luzifer/ots
|
|
5
|
+
# # this script is pure python and connects to server to create a secret
|
|
6
|
+
# # or use ots executable to do this job
|
|
7
7
|
|
|
8
|
-
import requests
|
|
9
|
-
import crocodile.file_management as fm
|
|
10
|
-
|
|
11
|
-
import
|
|
12
|
-
from typing import Optional
|
|
8
|
+
# import requests
|
|
9
|
+
# import crocodile.file_management as fm
|
|
10
|
+
# import base64
|
|
11
|
+
# from typing import Optional
|
|
13
12
|
|
|
14
|
-
def encrypt(key: str, pwd: str):
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
13
|
+
# def encrypt(key: str, pwd: str):
|
|
14
|
+
# print("\n🔒 Encrypting the secret...")
|
|
15
|
+
# import pycryptodome
|
|
16
|
+
# AES = __import__("Crypto", fromlist=["Cipher"]).Cipher.AES
|
|
17
|
+
# MD5 = __import__("Crypto", fromlist=["Hash"]).Hash.MD5
|
|
18
|
+
# pwd_enc = pwd.encode("utf-8")
|
|
19
|
+
# hash_object = MD5.new(key.encode("utf-8"))
|
|
20
|
+
# key_digest = hash_object.digest()
|
|
21
|
+
# iv = b'\x00' * 16
|
|
22
|
+
# cipher = AES.new(key_digest, AES.MODE_CBC, iv)
|
|
23
|
+
# pad = 16 - (len(pwd_enc) % 16)
|
|
24
|
+
# pwd_enc += bytes([pad] * pad)
|
|
25
|
+
# encrypted_password = cipher.encrypt(pwd_enc)
|
|
26
|
+
# print("✅ Encryption completed successfully!\n")
|
|
27
|
+
# return base64.b64encode(encrypted_password).decode("utf-8")
|
|
29
28
|
|
|
30
|
-
def share(secret: str, password: Optional[str]):
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
# def share(secret: str, password: Optional[str]):
|
|
30
|
+
# print("\n🚀 Initiating the sharing process...")
|
|
31
|
+
# if password is not None:
|
|
32
|
+
# print("🔑 Password provided. Encrypting the secret...")
|
|
33
|
+
# encoded_secret = encrypt(password, secret)
|
|
34
|
+
# else:
|
|
35
|
+
# print("🔓 No password provided. Sharing the secret as is.")
|
|
36
|
+
# encoded_secret = secret
|
|
38
37
|
|
|
39
|
-
|
|
38
|
+
# url = "https://ots.fyi/api/create"
|
|
40
39
|
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
# payload = {"secret": encoded_secret}
|
|
41
|
+
# headers = {'Content-Type': 'application/json'}
|
|
43
42
|
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
# print("\n🌐 Sending request to the server...")
|
|
44
|
+
# response = requests.post(url, json=payload, headers=headers, timeout=10)
|
|
46
45
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
46
|
+
# if response.status_code == 201:
|
|
47
|
+
# res = response.json()
|
|
48
|
+
# print("✅ Request successful! Response received.")
|
|
49
|
+
# assert res["success"] is True, "❌ Request failed."
|
|
50
|
+
# share_url = fm.P(f"https://ots.fyi/#{res['secret_id']}") + (f"|{password}" if password is not None else "")
|
|
51
|
+
# print(f"\n🔗 Share URL: {repr(share_url)}\n")
|
|
52
|
+
# return share_url
|
|
53
|
+
# else:
|
|
54
|
+
# print("❌ Request failed. Server returned an error.")
|
|
55
|
+
# raise RuntimeError(response.text)
|
|
57
56
|
|
|
58
|
-
if __name__ == "__main__":
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
# if __name__ == "__main__":
|
|
58
|
+
# print("\n" + "=" * 50)
|
|
59
|
+
# print("🔐 Welcome to the One-Time Secret Sharing Tool")
|
|
60
|
+
# print("=" * 50 + "\n")
|
|
62
61
|
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
# sc = input("📝 Enter the secret to share: ")
|
|
63
|
+
# pwdd = input("🔑 Enter a password (optional): ") or None
|
|
65
64
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
# print("\n📤 Sharing the secret...")
|
|
66
|
+
# share(secret=sc, password=pwdd)
|
|
67
|
+
# print("🎉 Secret shared successfully!\n")
|