machineconfig 5.15__py3-none-any.whl → 7.98__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.
- machineconfig/__init__.py +0 -28
- machineconfig/cluster/remote/cloud_manager.py +1 -1
- machineconfig/cluster/remote/distribute.py +0 -1
- machineconfig/cluster/remote/file_manager.py +0 -2
- machineconfig/cluster/remote/script_execution.py +0 -1
- machineconfig/cluster/sessions_managers/{utils → helpers}/enhanced_command_runner.py +4 -6
- machineconfig/cluster/sessions_managers/utils/load_balancer.py +1 -1
- machineconfig/cluster/sessions_managers/utils/maker.py +69 -0
- machineconfig/cluster/sessions_managers/wt_local.py +114 -289
- machineconfig/cluster/sessions_managers/wt_local_manager.py +70 -210
- machineconfig/cluster/sessions_managers/wt_remote.py +51 -43
- machineconfig/cluster/sessions_managers/wt_remote_manager.py +52 -198
- 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 +25 -170
- machineconfig/cluster/sessions_managers/zellij_remote.py +40 -41
- machineconfig/cluster/sessions_managers/zellij_remote_manager.py +16 -12
- 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 +2 -3
- machineconfig/jobs/installer/custom/boxes.py +61 -0
- machineconfig/jobs/installer/custom/hx.py +76 -19
- machineconfig/jobs/installer/custom/yazi.py +119 -0
- machineconfig/jobs/installer/custom_dev/alacritty.py +4 -4
- machineconfig/jobs/installer/custom_dev/brave.py +5 -9
- machineconfig/jobs/installer/custom_dev/cloudflare_warp_cli.py +23 -0
- machineconfig/jobs/installer/custom_dev/code.py +4 -1
- machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +30 -0
- machineconfig/jobs/installer/custom_dev/nerdfont.py +1 -1
- machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +33 -28
- machineconfig/jobs/installer/custom_dev/sysabc.py +139 -0
- machineconfig/jobs/installer/custom_dev/wezterm.py +2 -19
- machineconfig/jobs/installer/custom_dev/winget.py +10 -14
- machineconfig/jobs/installer/installer_data.json +1487 -229
- machineconfig/jobs/installer/linux_scripts/brave.sh +4 -14
- machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +5 -17
- machineconfig/jobs/installer/linux_scripts/docker.sh +5 -17
- machineconfig/jobs/installer/linux_scripts/docker_start.sh +6 -14
- machineconfig/jobs/installer/linux_scripts/edge.sh +3 -11
- machineconfig/jobs/{linux/msc → installer/linux_scripts}/lid.sh +2 -8
- machineconfig/jobs/installer/linux_scripts/nerdfont.sh +5 -17
- machineconfig/jobs/{linux/msc → installer/linux_scripts}/network.sh +2 -8
- machineconfig/jobs/installer/linux_scripts/q.sh +10 -6
- machineconfig/jobs/installer/linux_scripts/redis.sh +6 -17
- machineconfig/jobs/installer/linux_scripts/vscode.sh +5 -17
- machineconfig/jobs/installer/linux_scripts/wezterm.sh +4 -12
- machineconfig/jobs/installer/package_groups.py +106 -177
- machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
- machineconfig/logger.py +0 -1
- machineconfig/profile/backup.toml +49 -0
- machineconfig/profile/bash_shell_profiles.md +11 -0
- machineconfig/profile/create_helper.py +62 -0
- machineconfig/profile/create_links.py +288 -0
- machineconfig/profile/create_links_export.py +100 -0
- machineconfig/profile/create_shell_profile.py +147 -0
- machineconfig/profile/mapper.toml +263 -0
- machineconfig/scripts/__init__.py +0 -4
- machineconfig/scripts/linux/{share_cloud.sh → other/share_cloud.sh} +14 -25
- machineconfig/scripts/linux/wrap_mcfg +46 -0
- machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
- machineconfig/scripts/python/agents.py +123 -117
- machineconfig/scripts/python/ai/initai.py +3 -28
- machineconfig/scripts/python/ai/scripts/command_runner.ps1 +33 -0
- machineconfig/scripts/python/ai/scripts/command_runner.sh +9 -0
- machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +17 -18
- machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +17 -18
- machineconfig/scripts/python/ai/solutions/_shared.py +9 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Thinking-Beast-Mode.chatmode.md → agents/Thinking-Beast-Mode.agent.md} +0 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md → agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md} +0 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/deepResearch.chatmode.md → agents/deepResearch.agent.md} +2 -2
- machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +5 -5
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +5 -1
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/watch_exec.prompt.md +20 -0
- machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +16 -0
- machineconfig/scripts/python/ai/solutions/generic.py +28 -5
- machineconfig/scripts/python/ai/utils/generate_files.py +348 -0
- machineconfig/scripts/python/ai/utils/vscode_tasks.py +37 -0
- machineconfig/scripts/python/cloud.py +29 -0
- machineconfig/scripts/python/croshell.py +137 -113
- machineconfig/scripts/python/devops.py +61 -101
- machineconfig/scripts/python/devops_navigator.py +6 -0
- machineconfig/scripts/python/env_manager/__init__.py +1 -0
- machineconfig/scripts/python/env_manager/env_manager_tui.py +204 -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 +110 -150
- machineconfig/scripts/python/ftpx.py +51 -24
- machineconfig/scripts/python/helpers/ast_search.py +74 -0
- machineconfig/scripts/python/helpers/qr_code.py +166 -0
- machineconfig/scripts/python/helpers/repo_rag.py +325 -0
- machineconfig/scripts/python/helpers/run_py_script.py +79 -0
- machineconfig/scripts/python/helpers/symantic_search.py +25 -0
- machineconfig/scripts/python/helpers/tmp_py_scripts/a.py +26 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.json +14 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +39 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_cursor_agents.py +22 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +55 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
- machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py +126 -0
- machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +41 -0
- machineconfig/scripts/python/helpers_agents/templates/prompt.txt +10 -0
- machineconfig/scripts/python/helpers_agents/templates/template.ps1 +14 -0
- machineconfig/scripts/python/helpers_agents/templates/template.sh +32 -0
- machineconfig/scripts/python/{cloud_copy.py → helpers_cloud/cloud_copy.py} +30 -23
- machineconfig/scripts/python/{cloud_mount.py → helpers_cloud/cloud_mount.py} +29 -35
- machineconfig/scripts/python/{cloud_sync.py → helpers_cloud/cloud_sync.py} +12 -18
- machineconfig/scripts/python/{helpers → helpers_cloud}/helpers2.py +1 -1
- machineconfig/scripts/python/helpers_croshell/crosh.py +39 -0
- machineconfig/scripts/python/{start_slidev.py → helpers_croshell/start_slidev.py} +8 -9
- machineconfig/scripts/python/helpers_devops/cli_config.py +105 -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 +214 -0
- machineconfig/scripts/python/helpers_devops/cli_repos.py +215 -0
- machineconfig/scripts/python/helpers_devops/cli_self.py +172 -0
- machineconfig/scripts/python/helpers_devops/cli_share_file.py +137 -0
- machineconfig/scripts/python/helpers_devops/cli_share_server.py +142 -0
- machineconfig/scripts/python/{share_terminal.py → helpers_devops/cli_share_terminal.py} +45 -35
- 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 +499 -0
- machineconfig/scripts/python/{devops_update_repos.py → helpers_devops/devops_update_repos.py} +68 -49
- 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} +3 -3
- machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
- machineconfig/scripts/python/helpers_fire_command/f.py +0 -0
- machineconfig/scripts/python/{helpers/helpers4.py → helpers_fire_command/file_wrangler.py} +56 -20
- machineconfig/scripts/python/{fire_jobs_args_helper.py → helpers_fire_command/fire_jobs_args_helper.py} +5 -1
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +121 -0
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
- machineconfig/scripts/python/helpers_msearch/__init__.py +5 -0
- machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfg +3 -3
- machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +59 -0
- 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_network/__init__.py +0 -0
- machineconfig/scripts/python/helpers_network/address.py +132 -0
- machineconfig/scripts/python/{devops_add_identity.py → helpers_network/devops_add_identity.py} +0 -2
- machineconfig/scripts/python/helpers_network/devops_add_ssh_key.py +153 -0
- machineconfig/scripts/{linux → python/helpers_network}/mount_nfs +0 -1
- machineconfig/scripts/python/{mount_nfs.py → helpers_network/mount_nfs.py} +3 -3
- machineconfig/scripts/{linux → python/helpers_network}/mount_nw_drive +1 -2
- machineconfig/scripts/python/{mount_ssh.py → helpers_network/mount_ssh.py} +3 -3
- machineconfig/scripts/python/{onetimeshare.py → helpers_network/onetimeshare.py} +0 -1
- machineconfig/scripts/python/helpers_network/ssh_debug_linux.py +391 -0
- machineconfig/scripts/python/helpers_network/ssh_debug_windows.py +338 -0
- machineconfig/scripts/python/{wifi_conn.py → helpers_network/wifi_conn.py} +1 -53
- machineconfig/scripts/python/{wsl_windows_transfer.py → helpers_network/wsl_windows_transfer.py} +5 -4
- 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} +2 -3
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +218 -0
- machineconfig/scripts/python/{repos_helper.py → helpers_repos/entrypoint.py} +9 -17
- machineconfig/scripts/python/helpers_repos/grource.py +340 -0
- machineconfig/scripts/python/{repos_helper_record.py → helpers_repos/record.py} +4 -3
- machineconfig/scripts/python/helpers_repos/repo_analyzer_1.py +160 -0
- machineconfig/scripts/python/{count_lines.py → helpers_repos/repo_analyzer_2.py} +113 -192
- 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/__init__.py +0 -0
- machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +65 -0
- machineconfig/scripts/python/helpers_utils/download.py +150 -0
- machineconfig/scripts/python/helpers_utils/path.py +185 -0
- machineconfig/scripts/python/interactive.py +64 -84
- machineconfig/scripts/python/mcfg_entry.py +58 -0
- machineconfig/scripts/python/msearch.py +71 -0
- machineconfig/scripts/python/sessions.py +119 -45
- machineconfig/scripts/python/terminal.py +133 -0
- machineconfig/scripts/python/utils.py +64 -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 +63 -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/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 +82 -31
- machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +1 -1
- machineconfig/settings/shells/nushell/config.nu +2 -35
- machineconfig/settings/shells/nushell/env.nu +45 -6
- machineconfig/settings/shells/nushell/init.nu +314 -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/television/cable_unix/alias.toml +8 -0
- machineconfig/settings/television/cable_unix/aws-buckets.toml +14 -0
- machineconfig/settings/television/cable_unix/aws-instances.toml +13 -0
- machineconfig/settings/television/cable_unix/bash-history.toml +8 -0
- machineconfig/settings/television/cable_unix/channels.toml +19 -0
- machineconfig/settings/television/cable_unix/dirs.toml +13 -0
- machineconfig/settings/television/cable_unix/distrobox-list.toml +42 -0
- machineconfig/settings/television/cable_unix/docker-images.toml +13 -0
- machineconfig/settings/television/cable_unix/dotfiles.toml +11 -0
- machineconfig/settings/television/cable_unix/env.toml +17 -0
- machineconfig/settings/television/cable_unix/files.toml +11 -0
- machineconfig/settings/television/cable_unix/fish-history.toml +8 -0
- machineconfig/settings/television/cable_unix/git-branch.toml +11 -0
- machineconfig/settings/television/cable_unix/git-diff.toml +10 -0
- machineconfig/settings/television/cable_unix/git-log.toml +12 -0
- machineconfig/settings/television/cable_unix/git-reflog.toml +12 -0
- machineconfig/settings/television/cable_unix/git-repos.toml +16 -0
- machineconfig/settings/television/cable_unix/guix.toml +20 -0
- machineconfig/settings/television/cable_unix/just-recipes.toml +18 -0
- machineconfig/settings/television/cable_unix/k8s-deployments.toml +36 -0
- machineconfig/settings/television/cable_unix/k8s-pods.toml +50 -0
- machineconfig/settings/television/cable_unix/k8s-services.toml +36 -0
- machineconfig/settings/television/cable_unix/man-pages.toml +24 -0
- machineconfig/settings/television/cable_unix/nu-history.toml +7 -0
- machineconfig/settings/television/cable_unix/procs.toml +20 -0
- machineconfig/settings/television/cable_unix/text.toml +17 -0
- machineconfig/settings/television/cable_unix/tldr.toml +18 -0
- machineconfig/settings/television/cable_unix/zsh-history.toml +9 -0
- machineconfig/settings/television/cable_windows/alias.toml +7 -0
- machineconfig/settings/television/cable_windows/dirs.toml +13 -0
- machineconfig/settings/television/cable_windows/docker-images.toml +13 -0
- machineconfig/settings/television/cable_windows/dotfiles.toml +11 -0
- machineconfig/settings/television/cable_windows/env.toml +17 -0
- machineconfig/settings/television/cable_windows/files.toml +14 -0
- machineconfig/settings/television/cable_windows/git-branch.toml +11 -0
- machineconfig/settings/television/cable_windows/git-diff.toml +10 -0
- machineconfig/settings/television/cable_windows/git-log.toml +11 -0
- machineconfig/settings/television/cable_windows/git-reflog.toml +11 -0
- machineconfig/settings/television/cable_windows/git-repos.toml +15 -0
- machineconfig/settings/television/cable_windows/nu-history.toml +7 -0
- machineconfig/settings/television/cable_windows/pwsh-history.toml +6 -0
- machineconfig/settings/television/cable_windows/text.toml +17 -0
- machineconfig/settings/yazi/init.lua +61 -0
- machineconfig/settings/yazi/keymap_linux.toml +94 -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/theme.toml +4 -0
- machineconfig/settings/yazi/yazi_linux.toml +84 -0
- machineconfig/settings/yazi/yazi_windows.toml +58 -0
- machineconfig/setup_linux/__init__.py +11 -0
- machineconfig/setup_linux/apps_desktop.sh +89 -0
- machineconfig/setup_linux/apps_gui.sh +64 -0
- 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 +26 -6
- machineconfig/setup_linux/web_shortcuts/live_from_github.sh +31 -0
- 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 +11 -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 +27 -10
- machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +30 -0
- machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
- machineconfig/utils/accessories.py +7 -5
- machineconfig/utils/cloud/onedrive/README.md +139 -0
- machineconfig/utils/code.py +155 -105
- 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 +1 -1
- machineconfig/utils/files/dbms.py +257 -0
- machineconfig/utils/files/headers.py +11 -14
- machineconfig/utils/files/ouch/__init__.py +0 -0
- machineconfig/utils/files/ouch/decompress.py +45 -0
- machineconfig/utils/files/read.py +10 -18
- machineconfig/utils/installer_utils/github_release_bulk.py +156 -119
- machineconfig/utils/installer_utils/install_from_url.py +183 -0
- machineconfig/utils/installer_utils/installer_class.py +64 -181
- machineconfig/utils/installer_utils/installer_cli.py +175 -0
- machineconfig/utils/installer_utils/installer_helper.py +129 -0
- machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +66 -97
- machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +49 -82
- machineconfig/utils/io.py +77 -23
- machineconfig/utils/links.py +254 -162
- machineconfig/utils/meta.py +256 -0
- machineconfig/utils/notifications.py +1 -1
- machineconfig/utils/options.py +46 -18
- machineconfig/utils/options_tv.py +119 -0
- machineconfig/utils/path_extended.py +48 -101
- machineconfig/utils/path_helper.py +76 -23
- machineconfig/utils/procs.py +50 -70
- machineconfig/utils/scheduler.py +88 -124
- machineconfig/utils/scheduling.py +0 -3
- machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
- machineconfig/utils/schemas/layouts/layout_types.py +1 -1
- machineconfig/utils/source_of_truth.py +3 -6
- machineconfig/utils/ssh.py +263 -274
- machineconfig/utils/ssh_utils/abc.py +5 -0
- machineconfig/utils/ssh_utils/copy_from_here.py +111 -0
- machineconfig/utils/ssh_utils/copy_to_here.py +302 -0
- machineconfig/utils/ssh_utils/utils.py +142 -0
- machineconfig/utils/ssh_utils/wsl.py +210 -0
- machineconfig/utils/terminal.py +3 -113
- machineconfig/utils/tst.py +20 -0
- machineconfig/utils/upgrade_packages.py +114 -28
- machineconfig/utils/ve.py +12 -4
- machineconfig-7.98.dist-info/METADATA +132 -0
- machineconfig-7.98.dist-info/RECORD +504 -0
- machineconfig-7.98.dist-info/entry_points.txt +13 -0
- machineconfig/cluster/sessions_managers/ffile.py +0 -4
- machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -49
- machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -85
- machineconfig/jobs/linux/msc/cli_agents.sh +0 -16
- machineconfig/jobs/python/python_ve_symlink.py +0 -37
- machineconfig/jobs/python/vscode/api.py +0 -57
- machineconfig/jobs/python/vscode/sync_code.py +0 -73
- 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 -303
- machineconfig/profile/shell.py +0 -176
- machineconfig/scripts/cloud/init.sh +0 -119
- machineconfig/scripts/linux/agents +0 -2
- 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/ftpx +0 -2
- machineconfig/scripts/linux/fzf2g +0 -21
- machineconfig/scripts/linux/fzfag +0 -17
- machineconfig/scripts/linux/fzffg +0 -25
- machineconfig/scripts/linux/fzfrga +0 -21
- machineconfig/scripts/linux/gh_models +0 -2
- machineconfig/scripts/linux/initai +0 -2
- machineconfig/scripts/linux/kill_process +0 -2
- machineconfig/scripts/linux/scheduler +0 -2
- machineconfig/scripts/linux/sessions +0 -2
- machineconfig/scripts/linux/share_smb +0 -1
- machineconfig/scripts/linux/skrg +0 -4
- 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/generate_files.py +0 -83
- machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -5
- machineconfig/scripts/python/cloud_repo_sync.py +0 -190
- machineconfig/scripts/python/count_lines_frontend.py +0 -16
- machineconfig/scripts/python/devops_add_ssh_key.py +0 -120
- machineconfig/scripts/python/dotfile.py +0 -78
- machineconfig/scripts/python/fire_agents_help_launch.py +0 -120
- machineconfig/scripts/python/fire_agents_helper_types.py +0 -12
- machineconfig/scripts/python/fire_jobs_route_helper.py +0 -65
- 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 -116
- machineconfig/scripts/python/repos.py +0 -132
- machineconfig/scripts/python/repos_helper_action.py +0 -378
- machineconfig/scripts/python/snapshot.py +0 -25
- machineconfig/scripts/python/start_terminals.py +0 -121
- machineconfig/scripts/python/t4.py +0 -17
- machineconfig/scripts/windows/agents.ps1 +0 -1
- 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/fzfb.ps1 +0 -3
- machineconfig/scripts/windows/fzfg.ps1 +0 -2
- machineconfig/scripts/windows/fzfrga.bat +0 -20
- machineconfig/scripts/windows/gpt.ps1 +0 -1
- machineconfig/scripts/windows/grep.ps1 +0 -2
- machineconfig/scripts/windows/initai.ps1 +0 -1
- machineconfig/scripts/windows/kill_process.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/scheduler.ps1 +0 -1
- machineconfig/scripts/windows/sessions.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/settings/lf/windows/fzf_edit.ps1 +0 -6
- machineconfig/settings/lf/windows/tst.ps1 +0 -1
- machineconfig/settings/yazi/yazi.toml +0 -4
- machineconfig/setup_linux/nix/cli_installation.sh +0 -157
- machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -57
- 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/utils/ai/generate_file_checklist.py +0 -68
- machineconfig/utils/installer_utils/installer.py +0 -189
- machineconfig-5.15.dist-info/METADATA +0 -188
- machineconfig-5.15.dist-info/RECORD +0 -415
- machineconfig-5.15.dist-info/entry_points.txt +0 -18
- machineconfig/cluster/sessions_managers/{utils → helpers}/load_balancer_helper.py +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 → scripts/python/ai/utils}/__init__.py +0 -0
- machineconfig/scripts/python/{helpers → helpers_agents}/__init__.py +0 -0
- machineconfig/{jobs/windows/msc/cli_agents.bat → 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/scripts/python/{fire_agents_load_balancer.py → helpers_agents/fire_agents_load_balancer.py} +0 -0
- machineconfig/{jobs/windows/msc/cli_agents.ps1 → 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/scripts/python/{fire_jobs_streamlit_helper.py → helpers_croshell/__init__.py} +0 -0
- /machineconfig/scripts/python/{pomodoro.py → helpers_croshell/pomodoro.py} +0 -0
- /machineconfig/scripts/python/{scheduler.py → helpers_croshell/scheduler.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/scripts/{windows/share_nfs.ps1 → python/helpers_devops/__init__.py} +0 -0
- /machineconfig/{settings/shells/pwsh/profile.ps1 → scripts/python/helpers_devops/themes/__init__.py} +0 -0
- /machineconfig/{settings/yazi/keymap.toml → scripts/python/helpers_devops/themes/choose_starship_theme.ps1} +0 -0
- /machineconfig/scripts/python/{cloud_manager.py → helpers_fire_command/cloud_manager.py} +0 -0
- /machineconfig/scripts/{linux → python/helpers_network}/mount_drive +0 -0
- /machineconfig/scripts/python/{mount_nw_drive.py → helpers_network/mount_nw_drive.py} +0 -0
- /machineconfig/scripts/{linux → python/helpers_network}/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-5.15.dist-info → machineconfig-7.98.dist-info}/WHEEL +0 -0
- {machineconfig-5.15.dist-info → machineconfig-7.98.dist-info}/top_level.txt +0 -0
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
"""Devops Devapps Install"""
|
|
2
|
-
|
|
3
|
-
from machineconfig.utils.installer import get_installers_system_groups
|
|
4
|
-
import typer
|
|
5
|
-
from rich.console import Console
|
|
6
|
-
from rich.panel import Panel
|
|
7
|
-
from rich.table import Table
|
|
8
|
-
from typing import Optional, cast, get_args
|
|
9
|
-
from machineconfig.jobs.installer.package_groups import PACKAGE_GROUPS, PACKAGE_GROUP2NAMES
|
|
10
|
-
|
|
11
|
-
console = Console()
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def _handle_installer_not_found(search_term: str, all_installers: list["InstallerData"]) -> None: # type: ignore
|
|
15
|
-
"""Handle installer not found with friendly suggestions using fuzzy matching."""
|
|
16
|
-
from difflib import get_close_matches
|
|
17
|
-
|
|
18
|
-
all_names = []
|
|
19
|
-
for inst in all_installers:
|
|
20
|
-
exe_name = inst["appName"]
|
|
21
|
-
all_names.append(exe_name)
|
|
22
|
-
close_matches = get_close_matches(search_term, all_names, n=5, cutoff=0.4)
|
|
23
|
-
console.print(f"\n❌ '[red]{search_term}[/red]' was not found.", style="bold")
|
|
24
|
-
|
|
25
|
-
if close_matches:
|
|
26
|
-
console.print("🤔 Did you mean one of these?", style="yellow")
|
|
27
|
-
table = Table(show_header=False, box=None, pad_edge=False)
|
|
28
|
-
for i, match in enumerate(close_matches, 1):
|
|
29
|
-
table.add_row(f"[cyan]{i}.[/cyan]", f"[green]{match}[/green]")
|
|
30
|
-
console.print(table)
|
|
31
|
-
else:
|
|
32
|
-
console.print("📋 Here are some available options:", style="blue")
|
|
33
|
-
# Show first 10 installers as examples
|
|
34
|
-
sample_names = []
|
|
35
|
-
for inst in all_installers[:10]:
|
|
36
|
-
exe_name = inst["appName"]
|
|
37
|
-
sample_names.append(exe_name)
|
|
38
|
-
|
|
39
|
-
table = Table(show_header=False, box=None, pad_edge=False)
|
|
40
|
-
for i, name in enumerate(sample_names, 1):
|
|
41
|
-
table.add_row(f"[cyan]{i}.[/cyan]", f"[green]{name}[/green]")
|
|
42
|
-
console.print(table)
|
|
43
|
-
|
|
44
|
-
if len(all_installers) > 10:
|
|
45
|
-
console.print(f" [dim]... and {len(all_installers) - 10} more[/dim]")
|
|
46
|
-
|
|
47
|
-
panel = Panel(f"[bold blue]💡 Use 'ia' to interactively browse all available installers.[/bold blue]\n[bold blue]💡 Use one of the categories: {list(get_args(PACKAGE_GROUPS))}[/bold blue]", title="[yellow]Helpful Tips[/yellow]", border_style="yellow")
|
|
48
|
-
console.print(panel)
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
def main_with_parser():
|
|
52
|
-
import typer
|
|
53
|
-
app = typer.Typer()
|
|
54
|
-
app.command()(main)
|
|
55
|
-
app()
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
def main(
|
|
59
|
-
which: Optional[str] = typer.Option(None, "--which", "-w", help="Comma-separated list of program names to install."),
|
|
60
|
-
group: Optional[PACKAGE_GROUPS] = typer.Option(None, "--group", "-g", help=f"Group name (one of {list(get_args(PACKAGE_GROUPS))})"),
|
|
61
|
-
interactive: bool = typer.Option(False, "--interactive", "-ia", help="Interactive selection of programs to install."),
|
|
62
|
-
) -> None:
|
|
63
|
-
if which is not None:
|
|
64
|
-
return install_clis(clis_names=[x.strip() for x in which.split(",") if x.strip() != ""])
|
|
65
|
-
if group is not None:
|
|
66
|
-
return install_group(package_group=group)
|
|
67
|
-
if interactive:
|
|
68
|
-
return install_interactively()
|
|
69
|
-
typer.echo("❌ You must provide either --which, --group, or --interactive/-ia option.")
|
|
70
|
-
import click
|
|
71
|
-
ctx = click.get_current_context()
|
|
72
|
-
typer.echo(ctx.get_help())
|
|
73
|
-
raise typer.Exit(1)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
def install_interactively():
|
|
77
|
-
from machineconfig.utils.options import choose_from_options
|
|
78
|
-
from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
|
|
79
|
-
from machineconfig.utils.installer import get_installers
|
|
80
|
-
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
81
|
-
installers = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=None)
|
|
82
|
-
installer_options = []
|
|
83
|
-
for x in installers:
|
|
84
|
-
installer_options.append(Installer(installer_data=x).get_description())
|
|
85
|
-
|
|
86
|
-
# Build category options and maintain a mapping from display text to actual category name
|
|
87
|
-
category_display_to_name: dict[str, str] = {}
|
|
88
|
-
for group_name, group_values in PACKAGE_GROUP2NAMES.items():
|
|
89
|
-
display = f"📦 {group_name:<20}" + " -- " + f"{'|'.join(group_values):<60}"
|
|
90
|
-
category_display_to_name[display] = group_name
|
|
91
|
-
|
|
92
|
-
options_system = get_installers_system_groups()
|
|
93
|
-
for item in options_system:
|
|
94
|
-
display = f"📦 {item['appName']:<20} -- {item['doc']:<60}"
|
|
95
|
-
category_display_to_name[display] = item['appName']
|
|
96
|
-
|
|
97
|
-
options = list(category_display_to_name.keys()) + ["─" * 50] + installer_options
|
|
98
|
-
program_names = choose_from_options(multi=True, msg="Categories are prefixed with 📦", options=options, header="🚀 CHOOSE DEV APP OR CATEGORY", default="📦 essentials", fzf=True)
|
|
99
|
-
installation_messages: list[str] = []
|
|
100
|
-
for _an_idx, a_program_name in enumerate(program_names):
|
|
101
|
-
if a_program_name.startswith("─"): # 50 dashes separator
|
|
102
|
-
continue
|
|
103
|
-
if a_program_name.startswith("📦 "):
|
|
104
|
-
category_name = category_display_to_name.get(a_program_name)
|
|
105
|
-
if category_name:
|
|
106
|
-
install_group(package_group=cast(PACKAGE_GROUPS, category_name))
|
|
107
|
-
else:
|
|
108
|
-
installer_idx = installer_options.index(a_program_name)
|
|
109
|
-
an_installer_data = installers[installer_idx]
|
|
110
|
-
status_message = Installer(an_installer_data).install_robust(version=None) # finish the task - this returns a status message, not a command
|
|
111
|
-
installation_messages.append(status_message)
|
|
112
|
-
if installation_messages:
|
|
113
|
-
panel = Panel("\n".join([f"[blue]• {message}[/blue]" for message in installation_messages]), title="[bold green]📊 Installation Summary[/bold green]", border_style="green", padding=(1, 2))
|
|
114
|
-
console.print(panel)
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
def install_group(package_group: PACKAGE_GROUPS):
|
|
118
|
-
panel = Panel(f"[bold yellow]Installing programs from category: [green]{package_group}[/green][/bold yellow]", title="[bold blue]📦 Category Installation[/bold blue]", border_style="blue", padding=(1, 2))
|
|
119
|
-
console.print(panel)
|
|
120
|
-
from machineconfig.utils.installer import get_installers, install_bulk
|
|
121
|
-
from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
|
|
122
|
-
if package_group in PACKAGE_GROUP2NAMES:
|
|
123
|
-
installers_ = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=[package_group])
|
|
124
|
-
install_bulk(installers_data=installers_)
|
|
125
|
-
else:
|
|
126
|
-
options_system = get_installers_system_groups()
|
|
127
|
-
from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
|
|
128
|
-
from machineconfig.utils.code import run_shell_script
|
|
129
|
-
for an_item in options_system:
|
|
130
|
-
if an_item["appName"] == package_group:
|
|
131
|
-
program = an_item["fileNamePattern"][get_normalized_arch()][get_os_name()]
|
|
132
|
-
if program is not None:
|
|
133
|
-
run_shell_script(program)
|
|
134
|
-
break
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
def choose_from_system_package_groups(options_system: dict[str, tuple[str, str]]) -> str:
|
|
138
|
-
from machineconfig.utils.options import choose_from_options
|
|
139
|
-
display_options = []
|
|
140
|
-
for group_name, (description, _) in options_system.items():
|
|
141
|
-
if description:
|
|
142
|
-
display_options.append(f"{group_name:<20} - {description}")
|
|
143
|
-
else:
|
|
144
|
-
display_options.append(group_name)
|
|
145
|
-
program_names = choose_from_options(multi=True, msg="", options=sorted(display_options), header="🚀 CHOOSE DEV APP", fzf=True)
|
|
146
|
-
program = ""
|
|
147
|
-
for display_name in program_names:
|
|
148
|
-
# Extract the actual group name (everything before " - " if present)
|
|
149
|
-
group_name = display_name.split(" - ")[0].strip() if " - " in display_name else display_name.strip()
|
|
150
|
-
console.print(f"\n[bold cyan]⚙️ Installing: [yellow]{group_name}[/yellow][/bold cyan]", style="bold")
|
|
151
|
-
_, sub_program = options_system[group_name] # Extract content from tuple
|
|
152
|
-
if sub_program.startswith("#winget"):
|
|
153
|
-
sub_program = sub_program[1:]
|
|
154
|
-
program += "\n" + sub_program
|
|
155
|
-
return program
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
def install_clis(clis_names: list[str]):
|
|
159
|
-
from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
|
|
160
|
-
from machineconfig.utils.installer import get_installers
|
|
161
|
-
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
162
|
-
|
|
163
|
-
total_messages: list[str] = []
|
|
164
|
-
for a_which in clis_names:
|
|
165
|
-
all_installers = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=None)
|
|
166
|
-
selected_installer = None
|
|
167
|
-
for installer in all_installers:
|
|
168
|
-
app_name = installer["appName"]
|
|
169
|
-
if app_name.lower() == a_which.lower():
|
|
170
|
-
selected_installer = installer
|
|
171
|
-
break
|
|
172
|
-
if selected_installer is None:
|
|
173
|
-
_handle_installer_not_found(a_which, all_installers)
|
|
174
|
-
return None
|
|
175
|
-
message = Installer(selected_installer).install_robust(version=None) # finish the task
|
|
176
|
-
total_messages.append(message)
|
|
177
|
-
if total_messages:
|
|
178
|
-
console.print("\n[bold green]📊 Installation Results:[/bold green]")
|
|
179
|
-
for a_message in total_messages:
|
|
180
|
-
console.print(f"[blue]• {a_message}[/blue]")
|
|
181
|
-
return None
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
if __name__ == "__main__":
|
|
185
|
-
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
186
|
-
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
187
|
-
|
|
188
|
-
_ = InstallerData, Installer
|
|
189
|
-
pass
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: machineconfig
|
|
3
|
-
Version: 5.15
|
|
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
|
-
Requires-Dist: typer-slim>=0.19.2
|
|
28
|
-
Requires-Dist: questionary>=2.1.1
|
|
29
|
-
Requires-Dist: typer>=0.19.2
|
|
30
|
-
Provides-Extra: windows
|
|
31
|
-
Requires-Dist: pywin32; extra == "windows"
|
|
32
|
-
Provides-Extra: docs
|
|
33
|
-
Requires-Dist: pdoc>=15.0.2; extra == "docs"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
<p align="center">
|
|
37
|
-
|
|
38
|
-
<a href="https://github.com/thisismygitrepo/machineconfig/commits">
|
|
39
|
-
<img src="https://img.shields.io/github/commit-activity/m/thisismygitrepo/machineconfig" />
|
|
40
|
-
</a>
|
|
41
|
-
|
|
42
|
-
</p>
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
# Welcome to machineconfig
|
|
46
|
-
|
|
47
|
-
# Shortcuts
|
|
48
|
-
* `bit.ly/cfgroot` is a shortcut to this repo.
|
|
49
|
-
* `glow https://bit.ly/cfgread` OR `curl bit.ly/cfgread -L | bat -l md --style="header"` to get the readme file.
|
|
50
|
-
|
|
51
|
-
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.
|
|
52
|
-
Dotfiles include, but are not limited to:
|
|
53
|
-
* `~/.gitconfig`
|
|
54
|
-
* `~/.ssh`
|
|
55
|
-
* `~/.aws`
|
|
56
|
-
* `~/.bash_profile`
|
|
57
|
-
* `~/.bashrc`
|
|
58
|
-
* `~/.config`
|
|
59
|
-
* `$profile` in Windows Powershell
|
|
60
|
-
* etc
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
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.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
## Windows Setup
|
|
67
|
-
With elevated `PowerShell`, run the following: (short `curl bit.ly/cfgallwindows -L | iex`)
|
|
68
|
-
|
|
69
|
-
**You have to have `winget` first. If its not available in the your terminal, try those resources:**
|
|
70
|
-
|
|
71
|
-
* https://github.com/asheroto/winget-install
|
|
72
|
-
* https://github.com/microsoft/winget-cli
|
|
73
|
-
* https://github.com/microsoft/winget-cli/discussions/3258
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
```shell
|
|
77
|
-
# apps # short: `(iwr bit.ly/cfgappswindows).Content | iex`
|
|
78
|
-
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/apps.ps1 | Invoke-Expression
|
|
79
|
-
# virtual enviornment # short (iwr bit.ly/cfgvewindows).Content | iex OR `curl bit.ly/cfgvewindows -L | iex`
|
|
80
|
-
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/ve.ps1 | Invoke-Expression
|
|
81
|
-
# symlinks # short `(iwr bit.ly/cfgsymlinkswindows).Content | iex` OR `curl bit.ly/cfgsymlinkswindows -L | iex`
|
|
82
|
-
. $HOME/code/machineconfig/src/machineconfig/setup_windows/symlinks.ps1
|
|
83
|
-
# devapps:
|
|
84
|
-
$HOME/code/machineconfig/src/machineconfig/setup_windows/devapps.ps1
|
|
85
|
-
# pwsh and wt settings: (iwr bit.ly/cfgwt).Content | iex
|
|
86
|
-
iwr https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/wt_and_pwsh.ps1 | iex
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
```shell
|
|
91
|
-
|
|
92
|
-
(iwr bit.ly/cfgappswindows).Content | iex
|
|
93
|
-
(iwr bit.ly/cfgvewindows).Content | iex
|
|
94
|
-
. $HOME/code/machineconfig/src/machineconfig/setup_windows/devapps.ps1
|
|
95
|
-
(iwr bit.ly/cfgwt).Content | iex
|
|
96
|
-
. $HOME/code/machineconfig/src/machineconfig/setup_windows/symlinks.ps1
|
|
97
|
-
|
|
98
|
-
& "$HOME\code\machineconfig\.venv\Scripts\activate.ps1"
|
|
99
|
-
python -m fire machineconfig.profile.create main2 --choice=all
|
|
100
|
-
deactivate
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
###### Setup SSH connection:
|
|
105
|
-
```shell
|
|
106
|
-
# CHANGE pubkey_string APPROPRIATELY
|
|
107
|
-
$pubkey_string=(Invoke-WebRequest 'https://github.com/thisismygitrepo.keys').Content
|
|
108
|
-
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/openssh_all.ps1 | Invoke-Expression
|
|
109
|
-
```
|
|
110
|
-
short `(iwr bit.ly/cfgsshwindows).Content | iex` OR `curl bit.ly/cfgsshwindows -L | iex`
|
|
111
|
-
|
|
112
|
-
###### Install Croshell Terminal Directly,
|
|
113
|
-
```shell
|
|
114
|
-
Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/web_shortcuts/croshell.ps1 | Invoke-Expression
|
|
115
|
-
```
|
|
116
|
-
short: `curl bit.ly/cfgcroshellwindows -L | iex` OR `(iwr bit.ly/cfgcroshellwindows).Content | iex`
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
# Linux Setup
|
|
120
|
-
With `sudo` access, run the following: (short `curl bit.ly/cfgalllinux -L | bash`)
|
|
121
|
-
```bash
|
|
122
|
-
export package_manager="nala"
|
|
123
|
-
export package_manager="nix"
|
|
124
|
-
|
|
125
|
-
# apps # short: `curl bit.ly/cfgappslinux -L | bash`
|
|
126
|
-
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/apps.sh | bash
|
|
127
|
-
# Optionally: curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/apps_dev.sh | bash
|
|
128
|
-
|
|
129
|
-
# virtual enviornment # short `curl bit.ly/cfgvelinux -L | bash`
|
|
130
|
-
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/ve.sh | bash
|
|
131
|
-
|
|
132
|
-
# repos # short `curl bit.ly/cfgreposlinux -L | bash`
|
|
133
|
-
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/repos.sh | bash
|
|
134
|
-
# symlinks and bash profile: # short `curl bit.ly/cfgsymlinkslinux -L | bash`
|
|
135
|
-
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.
|
|
136
|
-
|
|
137
|
-
# devapps
|
|
138
|
-
source <(sudo cat ~/code/machineconfig/src/machineconfig/setup_linux/devapps.sh)
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
###### Setup SSH connection:
|
|
142
|
-
```bash
|
|
143
|
-
pubkey_url='https://github.com/thisismygitrepo.keys' # (CHANGE APPROPRIATELY)
|
|
144
|
-
export pubkey_string=$(curl --silent $pubkey_url)
|
|
145
|
-
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/openssh_all.sh | sudo bash
|
|
146
|
-
# For WSL only, also run the following:
|
|
147
|
-
export port=2223
|
|
148
|
-
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/openssh_wsl.sh | sudo bash
|
|
149
|
-
# don't forget to run `wsl_ssh_windows_port_forwarding -p 2223` from Windows using the designated port with
|
|
150
|
-
```
|
|
151
|
-
short `curl bit.ly/cfgsshlinux -L | bash`
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
###### Install Croshell Terminal Directly
|
|
155
|
-
|
|
156
|
-
```bash
|
|
157
|
-
|
|
158
|
-
curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/web_shortcuts/croshell.sh | sudo bash
|
|
159
|
-
|
|
160
|
-
```
|
|
161
|
-
short `curl bit.ly/cfgcroshelllinux -L | bash`
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
## Repository management CLI
|
|
165
|
-
|
|
166
|
-
The DevOps CLI now exposes rich subcommands for working with git repositories. Run `python -m machineconfig.scripts.python.devops repos --help` to explore the hierarchy:
|
|
167
|
-
|
|
168
|
-
* Top-level actions: `push`, `pull`, `commit`, `all`, and `analyze`.
|
|
169
|
-
* These commands accept `--recursive/-r` and `--no-sync` to control nested repos and automatic `uv sync`.
|
|
170
|
-
* Sync workflows live under `sync`:
|
|
171
|
-
* `record` captures the current machine state into a `repos.json`.
|
|
172
|
-
* `capture` clones repos from a specification without changing commits.
|
|
173
|
-
* `checkout` aligns repositories to commits stored in the spec.
|
|
174
|
-
* `checkout-to-branch` switches repositories to the tracked branch.
|
|
175
|
-
* Each sync subcommand accepts `--cloud/-c` for fetching/saving specs from remote storage.
|
|
176
|
-
|
|
177
|
-
Example:
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
python -m machineconfig.scripts.python.devops repos sync record ~/code --cloud my_remote
|
|
181
|
-
python -m machineconfig.scripts.python.devops repos pull ~/code --recursive
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
# Author
|
|
185
|
-
Alex Al-Saffar. [email](mailto:programmer@usa.com)
|
|
186
|
-
|
|
187
|
-
[](https://github.com/ashutosh00710/github-readme-activity-graph)
|
|
188
|
-
|