machineconfig 3.7__py3-none-any.whl → 7.69__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/__init__.py +0 -28
- machineconfig/cluster/remote/distribute.py +0 -1
- machineconfig/cluster/remote/file_manager.py +0 -2
- machineconfig/cluster/remote/script_execution.py +1 -2
- machineconfig/cluster/sessions_managers/{enhanced_command_runner.py → helpers/enhanced_command_runner.py} +4 -6
- machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py +145 -0
- machineconfig/cluster/sessions_managers/utils/load_balancer.py +53 -0
- machineconfig/cluster/sessions_managers/utils/maker.py +69 -0
- machineconfig/cluster/sessions_managers/wt_local.py +128 -330
- machineconfig/cluster/sessions_managers/wt_local_manager.py +53 -187
- machineconfig/cluster/sessions_managers/wt_remote.py +51 -43
- machineconfig/cluster/sessions_managers/wt_remote_manager.py +49 -197
- machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +6 -19
- machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
- machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
- machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +4 -2
- machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
- machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
- machineconfig/cluster/sessions_managers/zellij_local.py +81 -375
- machineconfig/cluster/sessions_managers/zellij_local_manager.py +22 -172
- machineconfig/cluster/sessions_managers/zellij_remote.py +40 -41
- machineconfig/cluster/sessions_managers/zellij_remote_manager.py +13 -10
- machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +4 -8
- machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +5 -20
- machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +3 -9
- machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +3 -1
- machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper.py +298 -0
- machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_restart.py +77 -0
- machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_with_panes.py +228 -0
- machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_manager_helper.py +165 -0
- machineconfig/jobs/{python → installer}/check_installations.py +7 -21
- machineconfig/jobs/installer/custom/boxes.py +61 -0
- machineconfig/jobs/installer/custom/gh.py +128 -0
- machineconfig/jobs/{python_custom_installers → installer/custom}/hx.py +84 -18
- machineconfig/jobs/installer/custom_dev/alacritty.py +86 -0
- machineconfig/jobs/installer/custom_dev/brave.py +82 -0
- machineconfig/jobs/installer/custom_dev/bypass_paywall.py +59 -0
- machineconfig/jobs/installer/custom_dev/cloudflare_warp_cli.py +23 -0
- machineconfig/jobs/installer/custom_dev/code.py +63 -0
- machineconfig/jobs/{python_custom_installers/dev → installer/custom_dev}/cursor.py +7 -7
- machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +30 -0
- machineconfig/jobs/installer/custom_dev/espanso.py +117 -0
- machineconfig/jobs/installer/custom_dev/goes.py +68 -0
- machineconfig/jobs/installer/custom_dev/lvim.py +89 -0
- machineconfig/jobs/installer/custom_dev/nerdfont.py +111 -0
- machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +149 -0
- machineconfig/jobs/installer/custom_dev/redis.py +88 -0
- machineconfig/jobs/installer/custom_dev/sysabc.py +145 -0
- machineconfig/jobs/installer/custom_dev/wezterm.py +92 -0
- machineconfig/jobs/{python_custom_installers/dev → installer/custom_dev}/winget.py +2 -3
- machineconfig/jobs/installer/installer_data.json +3440 -0
- machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/brave.sh +4 -14
- machineconfig/jobs/{python_custom_installers/scripts/linux/warp-cli.sh → installer/linux_scripts/cloudflare_warp_cli.sh} +5 -17
- machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/docker.sh +6 -18
- machineconfig/jobs/installer/linux_scripts/docker_start.sh +37 -0
- machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/edge.sh +3 -11
- machineconfig/jobs/{linux/msc → installer/linux_scripts}/lid.sh +2 -8
- machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/nerdfont.sh +5 -17
- machineconfig/jobs/{linux/msc → installer/linux_scripts}/network.sh +2 -8
- machineconfig/jobs/installer/linux_scripts/ngrok.sh +6 -0
- machineconfig/jobs/installer/linux_scripts/q.sh +9 -0
- machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/redis.sh +6 -17
- machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/vscode.sh +5 -17
- machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/wezterm.sh +4 -12
- machineconfig/jobs/installer/package_groups.py +255 -0
- machineconfig/logger.py +0 -1
- machineconfig/profile/backup.toml +49 -0
- machineconfig/profile/bash_shell_profiles.md +11 -0
- machineconfig/profile/create_helper.py +74 -0
- machineconfig/profile/create_links.py +288 -0
- machineconfig/profile/create_links_export.py +100 -0
- machineconfig/profile/create_shell_profile.py +136 -0
- machineconfig/profile/mapper.toml +258 -0
- machineconfig/scripts/__init__.py +0 -4
- machineconfig/scripts/linux/{share_cloud.sh → other/share_cloud.sh} +14 -25
- machineconfig/scripts/linux/wrap_mcfg +47 -0
- machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
- machineconfig/scripts/python/agents.py +198 -0
- machineconfig/scripts/python/ai/command_runner/command_runner.sh +9 -0
- machineconfig/scripts/python/ai/command_runner/prompt.txt +9 -0
- machineconfig/scripts/python/ai/generate_files.py +307 -42
- machineconfig/scripts/python/ai/{mcinit.py → initai.py} +3 -38
- machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +114 -0
- machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +88 -22
- machineconfig/scripts/python/ai/solutions/_shared.py +9 -1
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +4 -1
- machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +16 -0
- machineconfig/scripts/python/ai/solutions/gemini/settings.json +1 -1
- machineconfig/scripts/python/ai/solutions/generic.py +27 -4
- machineconfig/scripts/python/ai/vscode_tasks.py +37 -0
- machineconfig/scripts/python/cloud.py +29 -0
- machineconfig/scripts/python/croshell.py +129 -198
- machineconfig/scripts/python/define.py +31 -0
- machineconfig/scripts/python/devops.py +45 -131
- machineconfig/scripts/python/devops_navigator.py +6 -0
- machineconfig/scripts/python/env_manager/__init__.py +1 -0
- machineconfig/scripts/python/env_manager/path_manager_backend.py +47 -0
- machineconfig/scripts/python/env_manager/path_manager_tui.py +228 -0
- machineconfig/scripts/python/fire_jobs.py +166 -235
- machineconfig/scripts/python/ftpx.py +164 -100
- machineconfig/scripts/python/helpers/ast_search.py +74 -0
- machineconfig/scripts/python/helpers/repo_rag.py +325 -0
- machineconfig/scripts/python/helpers/symantic_search.py +25 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.json +14 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +37 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_cursor_agents.py +22 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +42 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
- machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py +110 -0
- machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +34 -0
- machineconfig/scripts/python/helpers_agents/fire_agents_load_balancer.py +22 -0
- machineconfig/scripts/python/helpers_agents/templates/prompt.txt +6 -0
- machineconfig/scripts/python/helpers_agents/templates/template.ps1 +14 -0
- machineconfig/scripts/python/helpers_agents/templates/template.sh +24 -0
- machineconfig/scripts/python/{cloud_copy.py → helpers_cloud/cloud_copy.py} +52 -39
- machineconfig/scripts/python/{cloud_mount.py → helpers_cloud/cloud_mount.py} +13 -18
- machineconfig/scripts/python/helpers_cloud/cloud_sync.py +81 -0
- machineconfig/scripts/python/{helpers → helpers_cloud}/helpers2.py +3 -3
- machineconfig/scripts/python/helpers_croshell/crosh.py +39 -0
- machineconfig/scripts/python/{scheduler.py → helpers_croshell/scheduler.py} +0 -1
- machineconfig/scripts/python/{start_slidev.py → helpers_croshell/start_slidev.py} +32 -20
- machineconfig/scripts/python/helpers_devops/cli_config.py +95 -0
- machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +89 -0
- machineconfig/scripts/python/helpers_devops/cli_data.py +25 -0
- machineconfig/scripts/python/helpers_devops/cli_nw.py +134 -0
- machineconfig/scripts/python/helpers_devops/cli_repos.py +182 -0
- machineconfig/scripts/python/helpers_devops/cli_self.py +134 -0
- machineconfig/scripts/python/helpers_devops/cli_share_file.py +137 -0
- machineconfig/scripts/python/helpers_devops/cli_share_server.py +141 -0
- machineconfig/scripts/python/helpers_devops/cli_terminal.py +156 -0
- machineconfig/scripts/python/helpers_devops/cli_utils.py +96 -0
- machineconfig/scripts/python/{devops_backup_retrieve.py → helpers_devops/devops_backup_retrieve.py} +7 -10
- machineconfig/scripts/python/helpers_devops/devops_status.py +511 -0
- machineconfig/scripts/python/helpers_devops/devops_update_repos.py +269 -0
- machineconfig/scripts/python/helpers_devops/themes/choose_pwsh_theme.ps1 +81 -0
- machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +3 -0
- machineconfig/scripts/python/{choose_wezterm_theme.py → helpers_devops/themes/choose_wezterm_theme.py} +2 -2
- machineconfig/scripts/python/{cloud_manager.py → helpers_fire_command/cloud_manager.py} +0 -2
- machineconfig/scripts/python/{helpers/helpers4.py → helpers_fire_command/file_wrangler.py} +57 -89
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +145 -0
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +110 -0
- machineconfig/scripts/python/helpers_msearch/__init__.py +5 -0
- machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfag +1 -1
- machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfg +1 -1
- machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfrga +1 -1
- machineconfig/scripts/python/helpers_navigator/__init__.py +20 -0
- machineconfig/scripts/python/helpers_navigator/command_builder.py +111 -0
- machineconfig/scripts/python/helpers_navigator/command_detail.py +44 -0
- machineconfig/scripts/python/helpers_navigator/command_tree.py +620 -0
- machineconfig/scripts/python/helpers_navigator/data_models.py +28 -0
- machineconfig/scripts/python/helpers_navigator/main_app.py +272 -0
- machineconfig/scripts/python/helpers_navigator/search_bar.py +15 -0
- machineconfig/scripts/python/helpers_repos/action.py +209 -0
- machineconfig/scripts/python/helpers_repos/action_helper.py +150 -0
- machineconfig/scripts/python/{repos_helper_clone.py → helpers_repos/clone.py} +6 -7
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +218 -0
- machineconfig/scripts/python/helpers_repos/count_lines.py +348 -0
- machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +17 -0
- machineconfig/scripts/python/helpers_repos/entrypoint.py +77 -0
- machineconfig/scripts/python/helpers_repos/grource.py +340 -0
- machineconfig/scripts/python/{repos_helper_record.py → helpers_repos/record.py} +7 -4
- machineconfig/scripts/python/helpers_repos/sync.py +66 -0
- machineconfig/scripts/python/{repos_helper_update.py → helpers_repos/update.py} +3 -3
- machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +58 -0
- machineconfig/scripts/python/helpers_utils/download.py +152 -0
- machineconfig/scripts/python/helpers_utils/path.py +108 -0
- machineconfig/scripts/python/interactive.py +187 -0
- machineconfig/scripts/python/mcfg_entry.py +63 -0
- machineconfig/scripts/python/msearch.py +40 -0
- machineconfig/scripts/python/{devops_add_identity.py → nw/devops_add_identity.py} +1 -3
- machineconfig/scripts/python/{devops_add_ssh_key.py → nw/devops_add_ssh_key.py} +74 -44
- machineconfig/scripts/{linux → python/nw}/mount_nfs +1 -1
- machineconfig/scripts/python/{mount_nfs.py → nw/mount_nfs.py} +19 -16
- machineconfig/scripts/{linux → python/nw}/mount_nw_drive +1 -2
- machineconfig/scripts/python/{mount_ssh.py → nw/mount_ssh.py} +7 -8
- machineconfig/scripts/python/{onetimeshare.py → nw/onetimeshare.py} +0 -1
- machineconfig/scripts/python/nw/ssh_debug_linux.py +391 -0
- machineconfig/scripts/python/nw/ssh_debug_windows.py +338 -0
- machineconfig/scripts/python/{wifi_conn.py → nw/wifi_conn.py} +1 -51
- machineconfig/scripts/python/nw/wsl_windows_transfer.py +67 -0
- machineconfig/scripts/python/sessions.py +167 -0
- machineconfig/scripts/python/terminal.py +127 -0
- machineconfig/scripts/python/utils.py +66 -0
- machineconfig/scripts/windows/mounts/Restore-ThunderbirdProfile.ps1 +92 -0
- machineconfig/scripts/windows/{mount_nfs.ps1 → mounts/mount_nfs.ps1} +1 -3
- machineconfig/scripts/windows/{mount_ssh.ps1 → mounts/mount_ssh.ps1} +1 -1
- machineconfig/scripts/windows/{share_smb.ps1 → mounts/share_smb.ps1} +0 -6
- machineconfig/scripts/windows/wrap_mcfg.ps1 +60 -0
- machineconfig/settings/broot/br.sh +0 -4
- machineconfig/settings/broot/conf.toml +1 -1
- machineconfig/settings/helix/config.toml +16 -0
- machineconfig/settings/helix/languages.toml +13 -4
- machineconfig/settings/helix/yazi-picker.sh +12 -0
- machineconfig/settings/lf/linux/exe/lfcd.sh +1 -0
- machineconfig/settings/lf/linux/exe/previewer.sh +9 -3
- machineconfig/settings/lf/linux/lfrc +10 -12
- machineconfig/settings/lf/windows/fzf_edit.ps1 +2 -2
- machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
- machineconfig/settings/lf/windows/lfrc +18 -38
- machineconfig/settings/lf/windows/mkfile.ps1 +1 -1
- machineconfig/settings/linters/.ruff.toml +1 -1
- machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -6
- machineconfig/settings/marimo/marimo.toml +80 -0
- machineconfig/settings/marimo/snippets/globalize.py +34 -0
- machineconfig/settings/pistol/pistol.conf +1 -1
- machineconfig/settings/shells/bash/init.sh +55 -31
- machineconfig/settings/shells/nushell/config.nu +1 -34
- machineconfig/settings/shells/nushell/init.nu +127 -0
- machineconfig/settings/shells/pwsh/init.ps1 +61 -43
- machineconfig/settings/shells/starship/starship.toml +16 -0
- machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
- machineconfig/settings/shells/wt/settings.json +32 -17
- machineconfig/settings/shells/zsh/init.sh +89 -0
- machineconfig/settings/svim/linux/init.toml +0 -4
- machineconfig/settings/svim/windows/init.toml +0 -3
- machineconfig/settings/yazi/init.lua +57 -0
- machineconfig/settings/yazi/keymap_linux.toml +79 -0
- machineconfig/settings/yazi/keymap_windows.toml +78 -0
- machineconfig/settings/yazi/shell/yazi_cd.ps1 +33 -0
- machineconfig/settings/yazi/shell/yazi_cd.sh +8 -0
- machineconfig/settings/yazi/yazi.toml +14 -1
- machineconfig/setup_linux/__init__.py +10 -0
- machineconfig/setup_linux/apps_desktop.sh +89 -0
- machineconfig/setup_linux/apps_gui.sh +64 -0
- machineconfig/setup_linux/{nix → others}/cli_installation.sh +9 -29
- machineconfig/setup_linux/ssh/openssh_all.sh +25 -0
- machineconfig/setup_linux/ssh/openssh_wsl.sh +38 -0
- machineconfig/setup_linux/uv.sh +15 -0
- machineconfig/setup_linux/web_shortcuts/interactive.sh +28 -203
- machineconfig/setup_mac/__init__.py +16 -0
- machineconfig/setup_mac/apps_gui.sh +248 -0
- machineconfig/setup_mac/ssh/openssh_setup.sh +114 -0
- machineconfig/setup_mac/uv.sh +36 -0
- machineconfig/setup_windows/__init__.py +8 -0
- machineconfig/setup_windows/others/power_options.ps1 +7 -0
- machineconfig/setup_windows/ssh/add-sshkey.ps1 +29 -0
- machineconfig/setup_windows/ssh/add_identity.ps1 +11 -0
- machineconfig/setup_windows/ssh/openssh-server.ps1 +37 -0
- machineconfig/setup_windows/uv.ps1 +17 -0
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +28 -189
- machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
- machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +37 -23
- machineconfig/utils/accessories.py +52 -12
- machineconfig/utils/cloud/onedrive/README.md +139 -0
- machineconfig/utils/code.py +140 -93
- machineconfig/utils/files/art/fat_croco.txt +10 -0
- machineconfig/utils/files/art/halfwit_croco.txt +9 -0
- machineconfig/utils/files/art/happy_croco.txt +22 -0
- machineconfig/utils/files/art/water_croco.txt +11 -0
- machineconfig/utils/files/ascii_art.py +118 -0
- machineconfig/utils/files/dbms.py +257 -0
- machineconfig/utils/files/headers.py +68 -0
- machineconfig/utils/files/ouch/decompress.py +45 -0
- machineconfig/utils/files/read.py +95 -0
- machineconfig/utils/installer_utils/github_release_bulk.py +188 -0
- machineconfig/utils/installer_utils/install_from_url.py +180 -0
- machineconfig/utils/installer_utils/installer_class.py +239 -316
- machineconfig/utils/installer_utils/installer_cli.py +186 -0
- machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +90 -5
- machineconfig/utils/installer_utils/installer_runner.py +191 -0
- machineconfig/utils/io.py +77 -24
- machineconfig/utils/links.py +309 -100
- machineconfig/utils/meta.py +255 -0
- machineconfig/utils/notifications.py +1 -1
- machineconfig/utils/options.py +19 -47
- machineconfig/utils/path_extended.py +111 -121
- machineconfig/utils/path_helper.py +75 -22
- machineconfig/utils/procs.py +50 -74
- machineconfig/utils/scheduler.py +94 -97
- machineconfig/utils/scheduling.py +0 -3
- machineconfig/utils/schemas/fire_agents/fire_agents_input.py +5 -17
- machineconfig/utils/schemas/installer/installer_types.py +28 -6
- machineconfig/utils/schemas/layouts/layout_types.py +34 -1
- machineconfig/utils/source_of_truth.py +3 -6
- machineconfig/utils/ssh.py +742 -254
- machineconfig/utils/ssh_utils/utils.py +0 -0
- machineconfig/utils/terminal.py +3 -140
- machineconfig/utils/tst.py +20 -0
- machineconfig/utils/upgrade_packages.py +109 -28
- machineconfig/utils/ve.py +13 -5
- machineconfig-7.69.dist-info/METADATA +124 -0
- machineconfig-7.69.dist-info/RECORD +454 -0
- machineconfig-7.69.dist-info/entry_points.txt +15 -0
- machineconfig/cluster/templates/cli_click.py +0 -102
- machineconfig/cluster/templates/cli_gooey.py +0 -115
- machineconfig/cluster/templates/utils.py +0 -51
- machineconfig/jobs/linux/msc/cli_agents.sh +0 -32
- machineconfig/jobs/python/create_bootable_media.py +0 -16
- machineconfig/jobs/python/python_cargo_build_share.py +0 -59
- machineconfig/jobs/python/python_ve_symlink.py +0 -29
- machineconfig/jobs/python/tasks.py +0 -3
- machineconfig/jobs/python/vscode/api.py +0 -48
- machineconfig/jobs/python/vscode/link_ve.py +0 -63
- machineconfig/jobs/python/vscode/select_interpreter.py +0 -87
- machineconfig/jobs/python/vscode/sync_code.py +0 -58
- machineconfig/jobs/python_custom_installers/archive/ngrok.py +0 -63
- machineconfig/jobs/python_custom_installers/dev/aider.py +0 -37
- machineconfig/jobs/python_custom_installers/dev/alacritty.py +0 -65
- machineconfig/jobs/python_custom_installers/dev/brave.py +0 -71
- machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +0 -50
- machineconfig/jobs/python_custom_installers/dev/code.py +0 -51
- machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +0 -78
- machineconfig/jobs/python_custom_installers/dev/espanso.py +0 -90
- machineconfig/jobs/python_custom_installers/dev/goes.py +0 -55
- machineconfig/jobs/python_custom_installers/dev/lvim.py +0 -77
- machineconfig/jobs/python_custom_installers/dev/nerdfont.py +0 -68
- machineconfig/jobs/python_custom_installers/dev/redis.py +0 -65
- machineconfig/jobs/python_custom_installers/dev/reverse_proxy.md +0 -31
- machineconfig/jobs/python_custom_installers/dev/wezterm.py +0 -70
- machineconfig/jobs/python_custom_installers/docker.py +0 -74
- machineconfig/jobs/python_custom_installers/gh.py +0 -97
- machineconfig/jobs/python_custom_installers/scripts/linux/docker_start.sh +0 -45
- machineconfig/jobs/python_custom_installers/scripts/linux/pgsql.sh +0 -49
- machineconfig/jobs/python_custom_installers/scripts/linux/timescaledb.sh +0 -85
- machineconfig/jobs/python_custom_installers/warp-cli.py +0 -71
- machineconfig/jobs/python_generic_installers/config.json +0 -603
- machineconfig/jobs/python_generic_installers/config.json.bak +0 -414
- machineconfig/jobs/python_generic_installers/dev/config.archive.json +0 -18
- machineconfig/jobs/python_generic_installers/dev/config.json +0 -825
- machineconfig/jobs/python_generic_installers/dev/config.json.bak +0 -565
- machineconfig/jobs/python_linux_installers/archive/config.json +0 -18
- machineconfig/jobs/python_linux_installers/archive/config.json.bak +0 -10
- machineconfig/jobs/python_linux_installers/config.json +0 -145
- machineconfig/jobs/python_linux_installers/config.json.bak +0 -110
- machineconfig/jobs/python_linux_installers/dev/config.json +0 -276
- machineconfig/jobs/python_linux_installers/dev/config.json.bak +0 -206
- machineconfig/jobs/python_windows_installers/archive/file.json +0 -11
- machineconfig/jobs/python_windows_installers/config.json +0 -82
- machineconfig/jobs/python_windows_installers/config.json.bak +0 -56
- machineconfig/jobs/python_windows_installers/dev/config.json +0 -4
- machineconfig/jobs/python_windows_installers/dev/config.json.bak +0 -3
- machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -14
- machineconfig/jobs/windows/start_terminal.ps1 +0 -6
- machineconfig/jobs/windows/startup_file.cmd +0 -2
- machineconfig/profile/create.py +0 -169
- machineconfig/profile/shell.py +0 -176
- machineconfig/scripts/cloud/init.sh +0 -119
- machineconfig/scripts/linux/choose_wezterm_theme +0 -3
- machineconfig/scripts/linux/cloud_copy +0 -2
- machineconfig/scripts/linux/cloud_mount +0 -2
- machineconfig/scripts/linux/cloud_repo_sync +0 -2
- machineconfig/scripts/linux/cloud_sync +0 -2
- machineconfig/scripts/linux/croshell +0 -3
- machineconfig/scripts/linux/devops +0 -2
- machineconfig/scripts/linux/fire +0 -2
- machineconfig/scripts/linux/fire_agents +0 -2
- machineconfig/scripts/linux/ftpx +0 -2
- machineconfig/scripts/linux/fzf2g +0 -21
- machineconfig/scripts/linux/fzffg +0 -25
- machineconfig/scripts/linux/gh_models +0 -2
- machineconfig/scripts/linux/kill_process +0 -2
- machineconfig/scripts/linux/mcinit +0 -2
- machineconfig/scripts/linux/programs +0 -21
- machineconfig/scripts/linux/repos +0 -2
- machineconfig/scripts/linux/scheduler +0 -2
- machineconfig/scripts/linux/share_smb +0 -1
- machineconfig/scripts/linux/start_slidev +0 -2
- machineconfig/scripts/linux/start_terminals +0 -3
- machineconfig/scripts/linux/warp-cli.sh +0 -122
- machineconfig/scripts/linux/wifi_conn +0 -2
- machineconfig/scripts/linux/z_ls +0 -104
- machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -5
- machineconfig/scripts/python/archive/im2text.py +0 -34
- machineconfig/scripts/python/archive/tmate_conn.py +0 -41
- machineconfig/scripts/python/archive/tmate_start.py +0 -44
- machineconfig/scripts/python/cloud_repo_sync.py +0 -192
- machineconfig/scripts/python/cloud_sync.py +0 -85
- machineconfig/scripts/python/devops_devapps_install.py +0 -202
- machineconfig/scripts/python/devops_update_repos.py +0 -180
- machineconfig/scripts/python/dotfile.py +0 -52
- machineconfig/scripts/python/fire_agents.py +0 -176
- machineconfig/scripts/python/fire_agents_help_launch.py +0 -143
- machineconfig/scripts/python/fire_agents_load_balancer.py +0 -50
- machineconfig/scripts/python/fire_jobs_args_helper.py +0 -84
- machineconfig/scripts/python/fire_jobs_layout_helper.py +0 -66
- machineconfig/scripts/python/get_zellij_cmd.py +0 -15
- machineconfig/scripts/python/gh_models.py +0 -104
- machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -114
- machineconfig/scripts/python/repos.py +0 -160
- machineconfig/scripts/python/snapshot.py +0 -25
- machineconfig/scripts/python/start_terminals.py +0 -121
- machineconfig/scripts/python/wsl_windows_transfer.py +0 -72
- machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -1
- machineconfig/scripts/windows/cloud_copy.ps1 +0 -1
- machineconfig/scripts/windows/cloud_mount.ps1 +0 -1
- machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -1
- machineconfig/scripts/windows/cloud_sync.ps1 +0 -1
- machineconfig/scripts/windows/croshell.ps1 +0 -1
- machineconfig/scripts/windows/devops.ps1 +0 -1
- machineconfig/scripts/windows/dotfile.ps1 +0 -1
- machineconfig/scripts/windows/fire.ps1 +0 -1
- machineconfig/scripts/windows/ftpx.ps1 +0 -1
- machineconfig/scripts/windows/gpt.ps1 +0 -1
- machineconfig/scripts/windows/grep.ps1 +0 -2
- machineconfig/scripts/windows/kill_process.ps1 +0 -1
- machineconfig/scripts/windows/mcinit.ps1 +0 -1
- machineconfig/scripts/windows/nano.ps1 +0 -3
- machineconfig/scripts/windows/pomodoro.ps1 +0 -1
- machineconfig/scripts/windows/reload_path.ps1 +0 -3
- machineconfig/scripts/windows/repos.ps1 +0 -1
- machineconfig/scripts/windows/scheduler.ps1 +0 -1
- machineconfig/scripts/windows/snapshot.ps1 +0 -1
- machineconfig/scripts/windows/start_slidev.ps1 +0 -1
- machineconfig/scripts/windows/start_terminals.ps1 +0 -1
- machineconfig/scripts/windows/wifi_conn.ps1 +0 -2
- machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -46
- machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -76
- machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
- machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -57
- machineconfig/setup_linux/web_shortcuts/ascii_art.sh +0 -93
- machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -11
- machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -52
- machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -18
- machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -36
- machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -16
- machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -11
- machineconfig/setup_windows/wt_and_pwsh/install_nerd_fonts.py +0 -100
- machineconfig/utils/ai/generate_file_checklist.py +0 -68
- machineconfig/utils/installer.py +0 -255
- machineconfig-3.7.dist-info/METADATA +0 -165
- machineconfig-3.7.dist-info/RECORD +0 -432
- machineconfig-3.7.dist-info/entry_points.txt +0 -18
- machineconfig/cluster/{templates → remote}/run_cloud.py +0 -0
- machineconfig/cluster/{templates → remote}/run_cluster.py +0 -0
- machineconfig/cluster/{templates → remote}/run_remote.py +0 -0
- machineconfig/jobs/{python → installer}/__init__.py +0 -0
- machineconfig/jobs/{python_custom_installers → installer/custom_dev}/__init__.py +0 -0
- machineconfig/{setup_windows/wt_and_pwsh → jobs/installer/powershell_scripts}/install_fonts.ps1 +0 -0
- machineconfig/scripts/linux/{share_nfs → other/share_nfs} +0 -0
- machineconfig/scripts/linux/{start_docker → other/start_docker} +0 -0
- machineconfig/scripts/linux/{switch_ip → other/switch_ip} +0 -0
- machineconfig/{jobs/python_generic_installers → scripts/python/helpers_agents}/__init__.py +0 -0
- machineconfig/{jobs/python_linux_installers → scripts/python/helpers_agents/agentic_frameworks}/__init__.py +0 -0
- machineconfig/scripts/python/{fire_agents_help_search.py → helpers_agents/fire_agents_help_search.py} +0 -0
- machineconfig/{jobs/python_linux_installers/dev → scripts/python/helpers_cloud}/__init__.py +0 -0
- machineconfig/scripts/python/{helpers → helpers_cloud}/cloud_helpers.py +1 -1
- /machineconfig/scripts/python/{helpers → helpers_cloud}/helpers5.py +0 -0
- /machineconfig/{jobs/python_windows_installers → scripts/python/helpers_croshell}/__init__.py +0 -0
- /machineconfig/scripts/python/{pomodoro.py → helpers_croshell/pomodoro.py} +0 -0
- /machineconfig/scripts/python/{viewer.py → helpers_croshell/viewer.py} +0 -0
- /machineconfig/scripts/python/{viewer_template.py → helpers_croshell/viewer_template.py} +0 -0
- /machineconfig/{jobs/python_windows_installers/archive → scripts/python/helpers_devops}/__init__.py +0 -0
- /machineconfig/{jobs/python_windows_installers/dev → scripts/python/helpers_devops/themes}/__init__.py +0 -0
- /machineconfig/{jobs/windows/msc/cli_agents.bat → scripts/python/helpers_devops/themes/choose_starship_theme.ps1} +0 -0
- /machineconfig/scripts/python/{helpers → helpers_fire_command}/__init__.py +0 -0
- /machineconfig/scripts/python/{fire_jobs_streamlit_helper.py → helpers_fire_command/fire_jobs_streamlit_helper.py} +0 -0
- /machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/skrg +0 -0
- /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfb.ps1 +0 -0
- /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfg.ps1 +0 -0
- /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfrga.bat +0 -0
- /machineconfig/{jobs/windows/msc/cli_agents.ps1 → scripts/python/helpers_sessions/__init__.py} +0 -0
- /machineconfig/scripts/{windows/share_nfs.ps1 → python/nw/__init__.py} +0 -0
- /machineconfig/scripts/{linux → python/nw}/mount_drive +0 -0
- /machineconfig/scripts/python/{mount_nw_drive.py → nw/mount_nw_drive.py} +0 -0
- /machineconfig/scripts/{linux → python/nw}/mount_smb +0 -0
- /machineconfig/scripts/windows/{mount_nw.ps1 → mounts/mount_nw.ps1} +0 -0
- /machineconfig/scripts/windows/{mount_smb.ps1 → mounts/mount_smb.ps1} +0 -0
- /machineconfig/scripts/windows/{share_cloud.cmd → mounts/share_cloud.cmd} +0 -0
- /machineconfig/scripts/windows/{unlock_bitlocker.ps1 → mounts/unlock_bitlocker.ps1} +0 -0
- /machineconfig/setup_linux/{web_shortcuts → others}/android.sh +0 -0
- /machineconfig/{jobs/windows/archive → setup_windows/ssh}/openssh-server_add_key.ps1 +0 -0
- /machineconfig/{jobs/windows/archive → setup_windows/ssh}/openssh-server_copy-ssh-id.ps1 +0 -0
- /machineconfig/{settings/yazi/keymap.toml → utils/files/ouch/__init__.py} +0 -0
- {machineconfig-3.7.dist-info → machineconfig-7.69.dist-info}/WHEEL +0 -0
- {machineconfig-3.7.dist-info → machineconfig-7.69.dist-info}/top_level.txt +0 -0
machineconfig/utils/installer.py
DELETED
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
"""package manager"""
|
|
2
|
-
|
|
3
|
-
from machineconfig.utils.installer_utils.installer_abc import LINUX_INSTALL_PATH
|
|
4
|
-
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
5
|
-
from machineconfig.utils.schemas.installer.installer_types import APP_INSTALLER_CATEGORY, InstallerData, InstallerDataFiles
|
|
6
|
-
from rich.console import Console
|
|
7
|
-
from rich.panel import Panel # Added import
|
|
8
|
-
|
|
9
|
-
from machineconfig.utils.path_extended import PathExtended as PathExtended
|
|
10
|
-
from machineconfig.utils.source_of_truth import INSTALL_VERSION_ROOT
|
|
11
|
-
from machineconfig.utils.io import read_json
|
|
12
|
-
|
|
13
|
-
from typing import Any
|
|
14
|
-
import platform
|
|
15
|
-
from joblib import Parallel, delayed
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def check_latest():
|
|
19
|
-
console = Console() # Added console initialization
|
|
20
|
-
console.print(Panel("🔍 CHECKING FOR LATEST VERSIONS", title="Status", expand=False)) # Replaced print with Panel
|
|
21
|
-
installers = get_installers(system=platform.system(), dev=False)
|
|
22
|
-
# installers += get_installers(system=platform.system(), dev=True)
|
|
23
|
-
installers_github = []
|
|
24
|
-
for inst__ in installers:
|
|
25
|
-
app_name = inst__.installer_data.get("appName", "unknown")
|
|
26
|
-
repo_url = inst__.installer_data.get("repoURL", "")
|
|
27
|
-
if "ntop" in app_name:
|
|
28
|
-
print(f"⏭️ Skipping {app_name} (ntop)")
|
|
29
|
-
continue
|
|
30
|
-
if "github" not in repo_url:
|
|
31
|
-
print(f"⏭️ Skipping {app_name} (not a GitHub release)")
|
|
32
|
-
continue
|
|
33
|
-
installers_github.append(inst__)
|
|
34
|
-
|
|
35
|
-
print(f"\n🔍 Checking {len(installers_github)} GitHub-based installers...\n")
|
|
36
|
-
|
|
37
|
-
def func(inst: Installer):
|
|
38
|
-
exe_name = inst.installer_data.get("exeName", "unknown")
|
|
39
|
-
repo_url = inst.installer_data.get("repoURL", "")
|
|
40
|
-
print(f"🔎 Checking {exe_name}...")
|
|
41
|
-
_release_url, version_to_be_installed = inst.get_github_release(repo_url=repo_url, version=None)
|
|
42
|
-
verdict, current_ver, new_ver = inst.check_if_installed_already(exe_name=exe_name, version=version_to_be_installed, use_cache=False)
|
|
43
|
-
return exe_name, verdict, current_ver, new_ver
|
|
44
|
-
|
|
45
|
-
print("\n⏳ Processing installers...\n")
|
|
46
|
-
res = [func(inst) for inst in installers_github]
|
|
47
|
-
|
|
48
|
-
print("\n📊 Generating results table...\n")
|
|
49
|
-
|
|
50
|
-
# Convert to list of dictionaries and group by status
|
|
51
|
-
result_data = []
|
|
52
|
-
for tool, status, current_ver, new_ver in res:
|
|
53
|
-
result_data.append({"Tool": tool, "Status": status, "Current Version": current_ver, "New Version": new_ver})
|
|
54
|
-
|
|
55
|
-
# Group by status
|
|
56
|
-
grouped_data: dict[str, list[dict[str, Any]]] = {}
|
|
57
|
-
for item in result_data:
|
|
58
|
-
status = item["Status"]
|
|
59
|
-
if status not in grouped_data:
|
|
60
|
-
grouped_data[status] = []
|
|
61
|
-
grouped_data[status].append(item)
|
|
62
|
-
|
|
63
|
-
console.print(Panel("📊 INSTALLATION STATUS SUMMARY", title="Status", expand=False))
|
|
64
|
-
|
|
65
|
-
# Print each group
|
|
66
|
-
for status, items in grouped_data.items():
|
|
67
|
-
print(f"\n{status.upper()}:")
|
|
68
|
-
print("-" * 60)
|
|
69
|
-
for item in items:
|
|
70
|
-
print(f" {item['Tool']:<20} | Current: {item['Current Version']:<15} | New: {item['New Version']}")
|
|
71
|
-
print("-" * 60)
|
|
72
|
-
print(f"{'═' * 80}")
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
def get_installed_cli_apps():
|
|
76
|
-
print(f"\n{'=' * 80}\n🔍 LISTING INSTALLED CLI APPS 🔍\n{'=' * 80}")
|
|
77
|
-
if platform.system() == "Windows":
|
|
78
|
-
print("🪟 Searching for Windows executables...")
|
|
79
|
-
apps = PathExtended.home().joinpath("AppData/Local/Microsoft/WindowsApps").search("*.exe", not_in=["notepad"])
|
|
80
|
-
elif platform.system() in ["Linux", "Darwin"]:
|
|
81
|
-
print(f"🐧 Searching for {platform.system()} executables...")
|
|
82
|
-
if platform.system() == "Linux":
|
|
83
|
-
apps = PathExtended(LINUX_INSTALL_PATH).search("*") + PathExtended("/usr/local/bin").search("*")
|
|
84
|
-
else: # Darwin/macOS
|
|
85
|
-
apps = PathExtended("/usr/local/bin").search("*") + PathExtended("/opt/homebrew/bin").search("*")
|
|
86
|
-
else:
|
|
87
|
-
error_msg = f"❌ ERROR: System {platform.system()} not supported"
|
|
88
|
-
print(error_msg)
|
|
89
|
-
raise NotImplementedError(error_msg)
|
|
90
|
-
apps = [app for app in apps if app.size("kb") > 0.1 and not app.is_symlink()] # no symlinks like paint and wsl and bash
|
|
91
|
-
print(f"✅ Found {len(apps)} installed applications\n{'=' * 80}")
|
|
92
|
-
return apps
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
def get_installers(system: str, dev: bool) -> list[Installer]:
|
|
96
|
-
print(f"\n{'=' * 80}\n🔍 LOADING INSTALLER CONFIGURATIONS 🔍\n{'=' * 80}")
|
|
97
|
-
res_all = get_all_installer_data_files(system=system)
|
|
98
|
-
if not dev:
|
|
99
|
-
print("ℹ️ Excluding development installers...")
|
|
100
|
-
del res_all["CUSTOM_DEV"]
|
|
101
|
-
del res_all["OS_SPECIFIC_DEV"]
|
|
102
|
-
del res_all["OS_GENERIC_DEV"]
|
|
103
|
-
|
|
104
|
-
# Flatten the installer data from all categories
|
|
105
|
-
all_installers: list[InstallerData] = []
|
|
106
|
-
for _category, installer_data_files in res_all.items():
|
|
107
|
-
all_installers.extend(installer_data_files["installers"])
|
|
108
|
-
|
|
109
|
-
print(f"✅ Loaded {len(all_installers)} installer configurations\n{'=' * 80}")
|
|
110
|
-
return [Installer(installer_data=installer_data) for installer_data in all_installers]
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
def get_all_installer_data_files(system: str) -> dict[APP_INSTALLER_CATEGORY, InstallerDataFiles]:
|
|
114
|
-
print(f"\n{'=' * 80}\n📂 LOADING CONFIGURATION FILES 📂\n{'=' * 80}")
|
|
115
|
-
|
|
116
|
-
print(f"🔍 Importing OS-specific installers for {system}...")
|
|
117
|
-
if system == "Windows":
|
|
118
|
-
import machineconfig.jobs.python_windows_installers as os_specific_installer
|
|
119
|
-
else:
|
|
120
|
-
import machineconfig.jobs.python_linux_installers as os_specific_installer
|
|
121
|
-
|
|
122
|
-
print("🔍 Importing generic installers...")
|
|
123
|
-
import machineconfig.jobs.python_generic_installers as generic_installer
|
|
124
|
-
|
|
125
|
-
path_os_specific = PathExtended(os_specific_installer.__file__).parent
|
|
126
|
-
path_os_generic = PathExtended(generic_installer.__file__).parent
|
|
127
|
-
|
|
128
|
-
path_os_specific_dev = path_os_specific.joinpath("dev")
|
|
129
|
-
path_os_generic_dev = path_os_generic.joinpath("dev")
|
|
130
|
-
|
|
131
|
-
print("📂 Loading configuration files...")
|
|
132
|
-
res_final: dict[APP_INSTALLER_CATEGORY, InstallerDataFiles] = {}
|
|
133
|
-
|
|
134
|
-
print(f"""📄 Loading OS-specific config from: {path_os_specific.joinpath("config.json")}""")
|
|
135
|
-
os_specific_data = read_json(path=path_os_specific.joinpath("config.json"))
|
|
136
|
-
res_final["OS_SPECIFIC"] = InstallerDataFiles(os_specific_data)
|
|
137
|
-
|
|
138
|
-
print(f"""📄 Loading OS-generic config from: {path_os_generic.joinpath("config.json")}""")
|
|
139
|
-
os_generic_data = read_json(path=path_os_generic.joinpath("config.json"))
|
|
140
|
-
res_final["OS_GENERIC"] = InstallerDataFiles(os_generic_data)
|
|
141
|
-
|
|
142
|
-
print(f"""📄 Loading OS-specific dev config from: {path_os_specific_dev.joinpath("config.json")}""")
|
|
143
|
-
os_specific_dev_data = read_json(path=path_os_specific_dev.joinpath("config.json"))
|
|
144
|
-
res_final["OS_SPECIFIC_DEV"] = InstallerDataFiles(os_specific_dev_data)
|
|
145
|
-
|
|
146
|
-
print(f"""📄 Loading OS-generic dev config from: {path_os_generic_dev.joinpath("config.json")}""")
|
|
147
|
-
os_generic_dev_data = read_json(path=path_os_generic_dev.joinpath("config.json"))
|
|
148
|
-
res_final["OS_GENERIC_DEV"] = InstallerDataFiles(os_generic_dev_data)
|
|
149
|
-
|
|
150
|
-
path_custom_installer = path_os_generic.with_name("python_custom_installers")
|
|
151
|
-
path_custom_installer_dev = path_custom_installer.joinpath("dev")
|
|
152
|
-
|
|
153
|
-
print(f"🔍 Loading custom installers from: {path_custom_installer}")
|
|
154
|
-
import runpy
|
|
155
|
-
|
|
156
|
-
res_custom_installers: list[InstallerData] = []
|
|
157
|
-
for item in path_custom_installer.search("*.py", r=False, not_in=["__init__"]):
|
|
158
|
-
try:
|
|
159
|
-
print(f"📄 Loading custom installer: {item.name}")
|
|
160
|
-
installer_data: InstallerData = runpy.run_path(str(item), run_name=None)["config_dict"]
|
|
161
|
-
res_custom_installers.append(installer_data)
|
|
162
|
-
except Exception as ex:
|
|
163
|
-
print(f"❌ Failed to load {item}: {ex}")
|
|
164
|
-
|
|
165
|
-
print(f"🔍 Loading custom dev installers from: {path_custom_installer_dev}")
|
|
166
|
-
res_custom_dev_installers: list[InstallerData] = []
|
|
167
|
-
for item in path_custom_installer_dev.search("*.py", r=False, not_in=["__init__"]):
|
|
168
|
-
try:
|
|
169
|
-
print(f"📄 Loading custom dev installer: {item.name}")
|
|
170
|
-
installer_data: InstallerData = runpy.run_path(str(item), run_name=None)["config_dict"]
|
|
171
|
-
res_custom_dev_installers.append(installer_data)
|
|
172
|
-
except Exception as ex:
|
|
173
|
-
print(f"❌ Failed to load {item}: {ex}")
|
|
174
|
-
|
|
175
|
-
res_final["CUSTOM"] = InstallerDataFiles({"version": "1", "installers": res_custom_installers})
|
|
176
|
-
res_final["CUSTOM_DEV"] = InstallerDataFiles({"version": "1", "installers": res_custom_dev_installers})
|
|
177
|
-
|
|
178
|
-
print(
|
|
179
|
-
f"✅ Configuration loading complete:\n - OS_SPECIFIC: {len(res_final['OS_SPECIFIC']['installers'])} items\n - OS_GENERIC: {len(res_final['OS_GENERIC']['installers'])} items\n - CUSTOM: {len(res_final['CUSTOM']['installers'])} items\n{'=' * 80}"
|
|
180
|
-
)
|
|
181
|
-
return res_final
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
def install_all(installers: list[Installer], safe: bool = False, jobs: int = 10, fresh: bool = False):
|
|
185
|
-
print(f"\n{'=' * 80}\n🚀 BULK INSTALLATION PROCESS 🚀\n{'=' * 80}")
|
|
186
|
-
if fresh:
|
|
187
|
-
print("🧹 Fresh install requested - clearing version cache...")
|
|
188
|
-
PathExtended(INSTALL_VERSION_ROOT).delete(sure=True)
|
|
189
|
-
print("✅ Version cache cleared")
|
|
190
|
-
|
|
191
|
-
if safe:
|
|
192
|
-
pass
|
|
193
|
-
# print("⚠️ Safe installation mode activated...")
|
|
194
|
-
# from machineconfig.jobs.python.check_installations import APP_SUMMARY_PATH
|
|
195
|
-
# if platform.system().lower() == "windows":
|
|
196
|
-
# print("🪟 Moving applications to Windows Apps folder...")
|
|
197
|
-
# # PathExtended.get_env().WindowsPaths().WindowsApps)
|
|
198
|
-
# folder = PathExtended.home().joinpath("AppData/Local/Microsoft/WindowsApps")
|
|
199
|
-
# apps_dir.search("*").apply(lambda app: app.move(folder=folder))
|
|
200
|
-
# elif platform.system().lower() in ["linux", "darwin"]:
|
|
201
|
-
# system_name = "Linux" if platform.system().lower() == "linux" else "macOS"
|
|
202
|
-
# print(f"🐧 Moving applications to {system_name} bin folder...")
|
|
203
|
-
# if platform.system().lower() == "linux":
|
|
204
|
-
# install_path = LINUX_INSTALL_PATH
|
|
205
|
-
# else: # Darwin/macOS
|
|
206
|
-
# install_path = "/usr/local/bin"
|
|
207
|
-
# Terminal().run(f"sudo mv {apps_dir.as_posix()}/* {install_path}/").capture().print_if_unsuccessful(desc=f"MOVING executable to {install_path}", strict_err=True, strict_returncode=True)
|
|
208
|
-
# else:
|
|
209
|
-
# error_msg = f"❌ ERROR: System {platform.system()} not supported"
|
|
210
|
-
# print(error_msg)
|
|
211
|
-
# raise NotImplementedError(error_msg)
|
|
212
|
-
|
|
213
|
-
# apps_dir.delete(sure=True)
|
|
214
|
-
# print(f"✅ Safe installation completed\n{'='*80}")
|
|
215
|
-
# return None
|
|
216
|
-
|
|
217
|
-
print(f"🚀 Starting installation of {len(installers)} packages...")
|
|
218
|
-
print(f"\n{'=' * 80}\n📦 INSTALLING FIRST PACKAGE 📦\n{'=' * 80}")
|
|
219
|
-
installers[0].install(version=None)
|
|
220
|
-
installers_remaining = installers[1:]
|
|
221
|
-
print(f"\n{'=' * 80}\n📦 INSTALLING REMAINING PACKAGES 📦\n{'=' * 80}")
|
|
222
|
-
|
|
223
|
-
# Use joblib for parallel processing of remaining installers
|
|
224
|
-
res = Parallel(n_jobs=jobs)(delayed(lambda x: x.install_robust(version=None))(installer) for installer in installers_remaining)
|
|
225
|
-
|
|
226
|
-
console = Console()
|
|
227
|
-
|
|
228
|
-
print("\n")
|
|
229
|
-
console.rule("📊 INSTALLATION RESULTS SUMMARY 📊")
|
|
230
|
-
|
|
231
|
-
print("\n")
|
|
232
|
-
console.rule("✓ Same Version Apps")
|
|
233
|
-
same_version_results = [r for r in res if r and "same version" in str(r)]
|
|
234
|
-
for result in same_version_results:
|
|
235
|
-
print(f" {result}")
|
|
236
|
-
|
|
237
|
-
print("\n")
|
|
238
|
-
console.rule("⬆️ Updated Apps")
|
|
239
|
-
updated_results = [r for r in res if r and "updated from" in str(r)]
|
|
240
|
-
for result in updated_results:
|
|
241
|
-
print(f" {result}")
|
|
242
|
-
|
|
243
|
-
print("\n")
|
|
244
|
-
console.rule("❌ Failed Apps")
|
|
245
|
-
failed_results = [r for r in res if r and "Failed at" in str(r)]
|
|
246
|
-
for result in failed_results:
|
|
247
|
-
print(f" {result}")
|
|
248
|
-
|
|
249
|
-
print("\n")
|
|
250
|
-
print("✨ INSTALLATION COMPLETE ✨".center(100, "="))
|
|
251
|
-
print("\n" * 2)
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
if __name__ == "__main__":
|
|
255
|
-
pass
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: machineconfig
|
|
3
|
-
Version: 3.7
|
|
4
|
-
Summary: Dotfiles management package
|
|
5
|
-
Author-email: Alex Al-Saffar <programmer@usa.com>
|
|
6
|
-
License: Apache 2.0
|
|
7
|
-
Project-URL: Homepage, https://github.com/thisismygitrepo/machineconfig
|
|
8
|
-
Project-URL: Bug Tracker, https://github.com/thisismygitrepo/machineconfig/issues
|
|
9
|
-
Classifier: Programming Language :: Python :: 3
|
|
10
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
11
|
-
Classifier: Operating System :: OS Independent
|
|
12
|
-
Requires-Python: >=3.13
|
|
13
|
-
Description-Content-Type: text/markdown
|
|
14
|
-
Requires-Dist: cryptography>=44.0.2
|
|
15
|
-
Requires-Dist: fire>=0.7.0
|
|
16
|
-
Requires-Dist: joblib>=1.5.2
|
|
17
|
-
Requires-Dist: paramiko>=3.5.1
|
|
18
|
-
Requires-Dist: randomname>=0.2.1
|
|
19
|
-
Requires-Dist: requests>=2.32.5
|
|
20
|
-
Requires-Dist: rich>=14.0.0
|
|
21
|
-
Requires-Dist: tenacity>=9.1.2
|
|
22
|
-
Requires-Dist: psutil>=7.0.0
|
|
23
|
-
Requires-Dist: gitpython>=3.1.44
|
|
24
|
-
Requires-Dist: pyfzf>=0.3.1
|
|
25
|
-
Requires-Dist: rclone-python>=0.1.23
|
|
26
|
-
Requires-Dist: pyjson5>=1.6.9
|
|
27
|
-
Provides-Extra: windows
|
|
28
|
-
Requires-Dist: pywin32; extra == "windows"
|
|
29
|
-
Provides-Extra: docs
|
|
30
|
-
Requires-Dist: pdoc>=15.0.2; extra == "docs"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
<p align="center">
|
|
34
|
-
|
|
35
|
-
<a href="https://github.com/thisismygitrepo/machineconfig/commits">
|
|
36
|
-
<img src="https://img.shields.io/github/commit-activity/m/thisismygitrepo/machineconfig" />
|
|
37
|
-
</a>
|
|
38
|
-
|
|
39
|
-
</p>
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
# Welcome to machineconfig
|
|
43
|
-
|
|
44
|
-
# Shortcuts
|
|
45
|
-
* `bit.ly/cfgroot` is a shortcut to this repo.
|
|
46
|
-
* `glow https://bit.ly/cfgread` OR `curl bit.ly/cfgread -L | bat -l md --style="header"` to get the readme file.
|
|
47
|
-
|
|
48
|
-
Machineconfig is a package for managing configuration files (aka dotfiles). The idea is to collect those critical, time-consuming-files-to-setup in one directory and reference them via symbolic links from their original locations. Thus, when a new machine is to be setup, all that is required is to clone the repo in that machine and create the symbolic links.
|
|
49
|
-
Dotfiles include, but are not limited to:
|
|
50
|
-
* `~/.gitconfig`
|
|
51
|
-
* `~/.ssh`
|
|
52
|
-
* `~/.aws`
|
|
53
|
-
* `~/.bash_profile`
|
|
54
|
-
* `~/.bashrc`
|
|
55
|
-
* `~/.config`
|
|
56
|
-
* `$profile` in Windows Powershell
|
|
57
|
-
* etc
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
Additionally, files that contain data, sensitive information that should not be pushed to a repository are contained in a directory `~/dotfiles`. The files therein are encrypted before backedup.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
## Windows Setup
|
|
64
|
-
With elevated `PowerShell`, run the following: (short `curl bit.ly/cfgallwindows -L | iex`)
|
|
65
|
-
|
|
66
|
-
**You have to have `winget` first. If its not available in the your terminal, try those resources:**
|
|
67
|
-
|
|
68
|
-
* https://github.com/asheroto/winget-install
|
|
69
|
-
* https://github.com/microsoft/winget-cli
|
|
70
|
-
* https://github.com/microsoft/winget-cli/discussions/3258
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
```shell
|
|
74
|
-
# apps # short: `(iwr bit.ly/cfgappswindows).Content | iex`
|
|
75
|
-
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/apps.ps1 | Invoke-Expression
|
|
76
|
-
# virtual enviornment # short (iwr bit.ly/cfgvewindows).Content | iex OR `curl bit.ly/cfgvewindows -L | iex`
|
|
77
|
-
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/ve.ps1 | Invoke-Expression
|
|
78
|
-
# symlinks # short `(iwr bit.ly/cfgsymlinkswindows).Content | iex` OR `curl bit.ly/cfgsymlinkswindows -L | iex`
|
|
79
|
-
. $HOME/code/machineconfig/src/machineconfig/setup_windows/symlinks.ps1
|
|
80
|
-
# devapps:
|
|
81
|
-
$HOME/code/machineconfig/src/machineconfig/setup_windows/devapps.ps1
|
|
82
|
-
# pwsh and wt settings: (iwr bit.ly/cfgwt).Content | iex
|
|
83
|
-
iwr https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/wt_and_pwsh.ps1 | iex
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
```shell
|
|
88
|
-
|
|
89
|
-
(iwr bit.ly/cfgappswindows).Content | iex
|
|
90
|
-
(iwr bit.ly/cfgvewindows).Content | iex
|
|
91
|
-
. $HOME/code/machineconfig/src/machineconfig/setup_windows/devapps.ps1
|
|
92
|
-
(iwr bit.ly/cfgwt).Content | iex
|
|
93
|
-
. $HOME/code/machineconfig/src/machineconfig/setup_windows/symlinks.ps1
|
|
94
|
-
|
|
95
|
-
& "$HOME\code\machineconfig\.venv\Scripts\activate.ps1"
|
|
96
|
-
python -m fire machineconfig.profile.create main2 --choice=all
|
|
97
|
-
deactivate
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
###### Setup SSH connection:
|
|
102
|
-
```shell
|
|
103
|
-
# CHANGE pubkey_string APPROPRIATELY
|
|
104
|
-
$pubkey_string=(Invoke-WebRequest 'https://github.com/thisismygitrepo.keys').Content
|
|
105
|
-
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/openssh_all.ps1 | Invoke-Expression
|
|
106
|
-
```
|
|
107
|
-
short `(iwr bit.ly/cfgsshwindows).Content | iex` OR `curl bit.ly/cfgsshwindows -L | iex`
|
|
108
|
-
|
|
109
|
-
###### Install Croshell Terminal Directly,
|
|
110
|
-
```shell
|
|
111
|
-
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/web_shortcuts/croshell.ps1 | Invoke-Expression
|
|
112
|
-
```
|
|
113
|
-
short: `curl bit.ly/cfgcroshellwindows -L | iex` OR `(iwr bit.ly/cfgcroshellwindows).Content | iex`
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
# Linux Setup
|
|
117
|
-
With `sudo` access, run the following: (short `curl bit.ly/cfgalllinux -L | bash`)
|
|
118
|
-
```bash
|
|
119
|
-
export package_manager="nala"
|
|
120
|
-
export package_manager="nix"
|
|
121
|
-
|
|
122
|
-
# apps # short: `curl bit.ly/cfgappslinux -L | bash`
|
|
123
|
-
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/apps.sh | bash
|
|
124
|
-
# Optionally: curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/apps_dev.sh | bash
|
|
125
|
-
|
|
126
|
-
# virtual enviornment # short `curl bit.ly/cfgvelinux -L | bash`
|
|
127
|
-
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/ve.sh | bash
|
|
128
|
-
|
|
129
|
-
# repos # short `curl bit.ly/cfgreposlinux -L | bash`
|
|
130
|
-
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/repos.sh | bash
|
|
131
|
-
# symlinks and bash profile: # short `curl bit.ly/cfgsymlinkslinux -L | bash`
|
|
132
|
-
source ~/code/machineconfig/src/machineconfig/setup_linux/symlinks.sh # requires sudo since it invloves chmod of dotfiles/.ssh, however sudo doesn't work with source. best to have sudo -s earlier.
|
|
133
|
-
|
|
134
|
-
# devapps
|
|
135
|
-
source <(sudo cat ~/code/machineconfig/src/machineconfig/setup_linux/devapps.sh)
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
###### Setup SSH connection:
|
|
139
|
-
```bash
|
|
140
|
-
pubkey_url='https://github.com/thisismygitrepo.keys' # (CHANGE APPROPRIATELY)
|
|
141
|
-
export pubkey_string=$(curl --silent $pubkey_url)
|
|
142
|
-
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/openssh_all.sh | sudo bash
|
|
143
|
-
# For WSL only, also run the following:
|
|
144
|
-
export port=2223
|
|
145
|
-
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/openssh_wsl.sh | sudo bash
|
|
146
|
-
# don't forget to run `wsl_ssh_windows_port_forwarding -p 2223` from Windows using the designated port with
|
|
147
|
-
```
|
|
148
|
-
short `curl bit.ly/cfgsshlinux -L | bash`
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
###### Install Croshell Terminal Directly
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
|
|
155
|
-
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/web_shortcuts/croshell.sh | sudo bash
|
|
156
|
-
|
|
157
|
-
```
|
|
158
|
-
short `curl bit.ly/cfgcroshelllinux -L | bash`
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
# Author
|
|
162
|
-
Alex Al-Saffar. [email](mailto:programmer@usa.com)
|
|
163
|
-
|
|
164
|
-
[](https://github.com/ashutosh00710/github-readme-activity-graph)
|
|
165
|
-
|