machineconfig 6.23__py3-none-any.whl → 8.12__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of machineconfig might be problematic. Click here for more details.
- machineconfig/cluster/remote/cloud_manager.py +1 -1
- machineconfig/cluster/remote/distribute.py +0 -1
- machineconfig/cluster/remote/file_manager.py +0 -2
- 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 +16 -221
- machineconfig/cluster/sessions_managers/wt_local_manager.py +55 -193
- machineconfig/cluster/sessions_managers/wt_remote_manager.py +42 -198
- 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_reporting.py +76 -0
- machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
- machineconfig/cluster/sessions_managers/zellij_local.py +3 -3
- machineconfig/cluster/sessions_managers/zellij_local_manager.py +5 -3
- machineconfig/cluster/sessions_managers/zellij_remote.py +2 -2
- machineconfig/cluster/sessions_managers/zellij_remote_manager.py +3 -2
- machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +2 -2
- machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +3 -7
- machineconfig/cluster/sessions_managers/{helpers → zellij_utils}/zellij_local_helper_with_panes.py +1 -1
- machineconfig/jobs/installer/check_installations.py +0 -1
- machineconfig/jobs/installer/installer_data.json +1408 -201
- machineconfig/jobs/installer/linux_scripts/q.sh +10 -7
- machineconfig/jobs/installer/linux_scripts/redis.sh +1 -0
- machineconfig/jobs/installer/package_groups.py +63 -92
- machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
- machineconfig/jobs/installer/python_scripts/boxes.py +61 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/brave.py +5 -3
- machineconfig/jobs/installer/python_scripts/cloudflare_warp_cli.py +23 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/code.py +4 -1
- machineconfig/jobs/installer/{custom_dev → python_scripts}/dubdb_adbc.py +1 -1
- machineconfig/jobs/installer/{custom → python_scripts}/hx.py +75 -18
- machineconfig/jobs/installer/{custom_dev → python_scripts}/nerdfont.py +2 -2
- machineconfig/jobs/installer/{custom_dev → python_scripts}/nerfont_windows_helper.py +27 -22
- machineconfig/jobs/installer/python_scripts/sysabc.py +139 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/wezterm.py +2 -19
- machineconfig/jobs/installer/{custom_dev → python_scripts}/winget.py +10 -14
- machineconfig/jobs/installer/python_scripts/yazi.py +121 -0
- machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_nfs +0 -1
- machineconfig/jobs/scripts/powershell_scripts/mount_ssh.ps1 +13 -0
- machineconfig/jobs/scripts/powershell_scripts/obs.ps1 +4 -0
- machineconfig/jobs/scripts_dynamic/a.py +25 -0
- machineconfig/logger.py +0 -1
- machineconfig/profile/create_helper.py +56 -18
- machineconfig/profile/create_links.py +2 -1
- machineconfig/profile/create_links_export.py +64 -18
- machineconfig/profile/create_shell_profile.py +90 -132
- machineconfig/profile/mapper.toml +18 -8
- machineconfig/scripts/__init__.py +0 -4
- machineconfig/scripts/linux/wrap_mcfg +46 -0
- machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
- machineconfig/scripts/python/agents.py +82 -60
- machineconfig/scripts/python/ai/initai.py +1 -19
- machineconfig/scripts/python/ai/scripts/command_runner.ps1 +33 -0
- machineconfig/scripts/python/ai/{command_runner → scripts}/command_runner.sh +1 -1
- machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +1 -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 +4 -0
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/watch_exec.prompt.md +20 -0
- machineconfig/scripts/python/ai/solutions/generic.py +1 -1
- machineconfig/scripts/python/ai/{generate_files.py → utils/generate_files.py} +2 -2
- machineconfig/scripts/python/ai/{vscode_tasks.py → utils/vscode_tasks.py} +7 -2
- machineconfig/scripts/python/cloud.py +14 -9
- machineconfig/scripts/python/croshell.py +135 -117
- machineconfig/scripts/python/devops.py +48 -25
- machineconfig/scripts/python/devops_navigator.py +1 -5
- machineconfig/scripts/python/env_manager/env_manager_tui.py +204 -0
- machineconfig/scripts/python/env_manager/path_manager_tui.py +18 -9
- machineconfig/scripts/python/fire_jobs.py +127 -118
- machineconfig/scripts/python/ftpx.py +44 -17
- 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/symantic_search.py +25 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/agentic_frameworks/fire_crush.json +1 -1
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +39 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/agentic_frameworks/fire_cursor_agents.py +3 -4
- 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_fire → helpers_agents}/fire_agents_help_launch.py +37 -15
- machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +41 -0
- machineconfig/scripts/python/helpers_agents/privacy/configs/aichat/config.yaml +5 -0
- machineconfig/scripts/python/helpers_agents/privacy/configs/aider/.aider.conf.yml +2 -0
- machineconfig/scripts/python/helpers_agents/privacy/configs/copilot/config.yml +1 -0
- machineconfig/scripts/python/helpers_agents/privacy/configs/crush/crush.json +10 -0
- machineconfig/scripts/python/helpers_agents/privacy/configs/gemini/settings.json +12 -0
- machineconfig/scripts/python/helpers_agents/privacy/privacy.py +109 -0
- machineconfig/scripts/python/helpers_agents/templates/prompt.txt +10 -0
- machineconfig/scripts/python/helpers_agents/templates/template.sh +34 -0
- machineconfig/scripts/python/{cloud_helpers → helpers_cloud}/cloud_copy.py +28 -21
- machineconfig/scripts/python/{cloud_helpers → helpers_cloud}/cloud_mount.py +19 -17
- machineconfig/scripts/python/{cloud_helpers → helpers_cloud}/cloud_sync.py +12 -11
- machineconfig/scripts/python/{cloud_helpers → helpers_cloud}/helpers2.py +1 -1
- machineconfig/scripts/python/helpers_croshell/crosh.py +39 -0
- machineconfig/scripts/python/{croshell_helpers → helpers_croshell}/start_slidev.py +6 -7
- 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 +221 -0
- machineconfig/scripts/python/{devops_helpers → helpers_devops}/cli_repos.py +60 -36
- 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/{devops_helpers/cli_terminal.py → helpers_devops/cli_share_terminal.py} +15 -17
- machineconfig/scripts/python/{devops_helpers → helpers_devops}/devops_backup_retrieve.py +7 -10
- machineconfig/scripts/python/{devops_helpers → helpers_devops}/devops_status.py +7 -19
- machineconfig/scripts/python/{devops_helpers → helpers_devops}/devops_update_repos.py +1 -1
- machineconfig/scripts/python/helpers_devops/run_script.py +168 -0
- machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +3 -0
- machineconfig/scripts/python/{devops_helpers → helpers_devops}/themes/choose_wezterm_theme.py +1 -1
- machineconfig/scripts/python/{helpers_fire/helpers4.py → helpers_fire_command/file_wrangler.py} +57 -20
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +2 -0
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +26 -16
- 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/{helper_navigator → helpers_navigator}/command_builder.py +1 -1
- machineconfig/scripts/python/{helper_navigator → helpers_navigator}/command_detail.py +1 -1
- machineconfig/scripts/python/{helper_navigator → helpers_navigator}/command_tree.py +160 -23
- machineconfig/scripts/python/{helper_navigator → helpers_navigator}/main_app.py +5 -5
- machineconfig/scripts/python/helpers_network/address.py +176 -0
- machineconfig/scripts/python/helpers_network/address_switch.py +78 -0
- machineconfig/scripts/python/{nw → helpers_network}/mount_nfs.py +2 -2
- machineconfig/scripts/python/{nw → helpers_network}/mount_ssh.py +1 -1
- machineconfig/scripts/python/{nw/devops_add_identity.py → helpers_network/ssh_add_identity.py} +35 -1
- machineconfig/scripts/python/{nw/devops_add_ssh_key.py → helpers_network/ssh_add_ssh_key.py} +26 -7
- machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_linux.py +7 -7
- machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_windows.py +4 -4
- machineconfig/scripts/python/{nw → helpers_network}/wifi_conn.py +1 -53
- machineconfig/scripts/python/helpers_repos/action.py +209 -0
- machineconfig/scripts/python/helpers_repos/action_helper.py +150 -0
- machineconfig/scripts/python/{repos_helpers → helpers_repos}/clone.py +0 -1
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +80 -37
- machineconfig/scripts/python/{repos_helpers → helpers_repos}/entrypoint.py +5 -5
- machineconfig/scripts/python/helpers_repos/grource.py +2 -2
- machineconfig/scripts/python/{repos_helpers → helpers_repos}/record.py +3 -2
- machineconfig/scripts/python/helpers_repos/repo_analyzer_1.py +160 -0
- machineconfig/scripts/python/{repos_helpers/count_lines.py → helpers_repos/repo_analyzer_2.py} +113 -192
- machineconfig/scripts/python/{repos_helpers → helpers_repos}/sync.py +5 -5
- machineconfig/scripts/python/{sessions_helpers → helpers_sessions}/sessions_multiprocess.py +19 -13
- machineconfig/scripts/python/helpers_utils/download.py +150 -0
- machineconfig/scripts/python/helpers_utils/pdf.py +96 -0
- machineconfig/scripts/python/helpers_utils/python.py +187 -0
- machineconfig/scripts/python/interactive.py +26 -35
- machineconfig/scripts/python/{entry.py → mcfg_entry.py} +24 -10
- machineconfig/scripts/python/msearch.py +72 -0
- machineconfig/scripts/python/sessions.py +101 -38
- machineconfig/scripts/python/terminal.py +136 -0
- machineconfig/scripts/python/utils.py +62 -0
- machineconfig/scripts/windows/wrap_mcfg.ps1 +63 -0
- 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 +3 -2
- machineconfig/settings/lf/linux/lfrc +10 -11
- machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
- machineconfig/settings/lf/windows/lfrc +15 -17
- machineconfig/settings/lf/windows/mkfile.ps1 +1 -1
- machineconfig/settings/linters/.ruff.toml +1 -1
- machineconfig/settings/marimo/marimo.toml +80 -0
- machineconfig/settings/marimo/snippets/globalize.py +34 -0
- machineconfig/settings/shells/bash/init.sh +57 -10
- 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 +59 -23
- 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/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/settings/zellij/layouts/st.kdl +39 -8
- machineconfig/setup_linux/__init__.py +2 -2
- machineconfig/setup_linux/apps_desktop.sh +8 -27
- machineconfig/setup_linux/web_shortcuts/interactive.sh +27 -11
- 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 +3 -5
- machineconfig/setup_windows/ssh/openssh-server.ps1 +1 -1
- machineconfig/setup_windows/uv.ps1 +8 -1
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +26 -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/code.py +143 -167
- 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/headers.py +6 -11
- machineconfig/utils/files/read.py +3 -9
- 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 +44 -101
- 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} +39 -87
- machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +17 -63
- machineconfig/utils/io.py +77 -4
- machineconfig/utils/links.py +56 -38
- machineconfig/utils/meta.py +235 -145
- machineconfig/utils/options.py +46 -18
- machineconfig/utils/options_tv.py +119 -0
- machineconfig/utils/path_extended.py +46 -97
- machineconfig/utils/path_helper.py +76 -23
- machineconfig/utils/procs.py +10 -23
- machineconfig/utils/scheduler.py +84 -115
- 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/ssh.py +214 -476
- 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 +303 -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/upgrade_packages.py +114 -28
- machineconfig/utils/ve.py +12 -4
- machineconfig-8.12.dist-info/METADATA +132 -0
- machineconfig-8.12.dist-info/RECORD +504 -0
- {machineconfig-6.23.dist-info → machineconfig-8.12.dist-info}/entry_points.txt +5 -1
- machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -41
- machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -71
- 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/windows/archive/archive_pygraphviz.ps1 +0 -12
- machineconfig/jobs/windows/archive/openssh-server_add_key.ps1 +0 -7
- machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1 +0 -14
- 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/other/share_smb +0 -1
- machineconfig/scripts/linux/other/switch_ip +0 -20
- machineconfig/scripts/linux/skrg +0 -4
- machineconfig/scripts/linux/warp-cli.sh +0 -122
- machineconfig/scripts/linux/z_ls +0 -104
- machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -9
- machineconfig/scripts/python/devops_helpers/cli_config.py +0 -81
- machineconfig/scripts/python/devops_helpers/cli_config_dotfile.py +0 -84
- machineconfig/scripts/python/devops_helpers/cli_data.py +0 -18
- machineconfig/scripts/python/devops_helpers/cli_nw.py +0 -73
- machineconfig/scripts/python/devops_helpers/cli_self.py +0 -117
- machineconfig/scripts/python/devops_helpers/cli_share_server.py +0 -104
- machineconfig/scripts/python/helper_navigator/__init__.py +0 -20
- machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -37
- machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -44
- machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -43
- machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py +0 -30
- machineconfig/scripts/python/helpers_fire/prompt.txt +0 -2
- machineconfig/scripts/python/helpers_fire/template.sh +0 -15
- machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -15
- machineconfig/scripts/python/nw/add_ssh_key.py +0 -148
- machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -66
- machineconfig/scripts/python/repos_helpers/action.py +0 -378
- machineconfig/scripts/python/repos_helpers/count_lines_frontend.py +0 -17
- machineconfig/scripts/windows/fzfb.ps1 +0 -3
- machineconfig/scripts/windows/fzfg.ps1 +0 -2
- machineconfig/scripts/windows/fzfrga.bat +0 -20
- machineconfig/scripts/windows/mounts/mount_ssh.ps1 +0 -13
- 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/shells/pwsh/profile.ps1 +0 -0
- machineconfig/settings/yazi/keymap.toml +0 -0
- machineconfig/settings/yazi/yazi.toml +0 -4
- machineconfig/setup_linux/apps.sh +0 -66
- machineconfig/setup_linux/nix/cli_installation.sh +0 -137
- machineconfig/setup_linux/ssh/openssh_all.sh +0 -25
- machineconfig/setup_linux/ssh/openssh_wsl.sh +0 -38
- machineconfig/setup_windows/apps.ps1 +0 -62
- machineconfig/setup_windows/others/obs.ps1 +0 -4
- machineconfig/setup_windows/ssh/add_identity.ps1 +0 -11
- machineconfig/setup_windows/wt_and_pwsh/__init__.py +0 -0
- machineconfig/utils/installer_utils/installer.py +0 -225
- machineconfig-6.23.dist-info/METADATA +0 -84
- machineconfig-6.23.dist-info/RECORD +0 -428
- machineconfig/cluster/sessions_managers/{utils → helpers}/load_balancer_helper.py +0 -0
- machineconfig/cluster/sessions_managers/{helpers → zellij_utils}/zellij_local_helper.py +0 -0
- machineconfig/cluster/sessions_managers/{helpers → zellij_utils}/zellij_local_helper_restart.py +0 -0
- machineconfig/cluster/sessions_managers/{helpers → zellij_utils}/zellij_local_manager_helper.py +0 -0
- machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +0 -0
- machineconfig/jobs/{linux/msc → installer/linux_scripts}/network.sh +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/__init__.py +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/alacritty.py +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/bypass_paywall.py +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/cursor.py +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/espanso.py +0 -0
- machineconfig/jobs/installer/{custom → python_scripts}/gh.py +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/goes.py +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/lvim.py +0 -0
- machineconfig/jobs/installer/{custom_dev → python_scripts}/redis.py +0 -0
- machineconfig/{setup_linux/web_shortcuts → jobs/scripts/bash_scripts}/android.sh +0 -0
- machineconfig/jobs/{linux/msc → scripts/bash_scripts}/lid.sh +0 -0
- machineconfig/{setup_linux/others → jobs/scripts/bash_scripts}/mint_keyboard_shortcuts.sh +0 -0
- machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_drive +0 -0
- machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_nw_drive +0 -0
- machineconfig/{scripts/python/nw → jobs/scripts/bash_scripts}/mount_smb +0 -0
- machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/share_cloud.sh +0 -0
- machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/share_nfs +0 -0
- machineconfig/{scripts/linux/other → jobs/scripts/bash_scripts}/start_docker +0 -0
- machineconfig/{scripts → jobs/scripts/powershell_scripts}/Restore-ThunderbirdProfile.ps1 +0 -0
- machineconfig/{setup_windows/others → jobs/scripts/powershell_scripts}/docker.ps1 +0 -0
- machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_nfs.ps1 +0 -0
- machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_nw.ps1 +0 -0
- machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/mount_smb.ps1 +0 -0
- machineconfig/{setup_windows/others → jobs/scripts/powershell_scripts}/power_options.ps1 +0 -0
- machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/share_cloud.cmd +0 -0
- machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/share_smb.ps1 +0 -0
- machineconfig/{scripts/windows/mounts → jobs/scripts/powershell_scripts}/unlock_bitlocker.ps1 +0 -0
- machineconfig/{jobs/python → scripts/python/ai/utils}/__init__.py +0 -0
- machineconfig/scripts/python/{cloud_helpers → helpers_agents}/__init__.py +0 -0
- machineconfig/scripts/python/{croshell_helpers → helpers_agents/agentic_frameworks}/__init__.py +0 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_help_search.py +0 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_load_balancer.py +0 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents/templates}/template.ps1 +0 -0
- machineconfig/scripts/python/{devops_helpers → helpers_cloud}/__init__.py +0 -0
- machineconfig/scripts/python/{cloud_helpers → helpers_cloud}/cloud_helpers.py +1 -1
- /machineconfig/scripts/python/{cloud_helpers → helpers_cloud}/helpers5.py +0 -0
- /machineconfig/scripts/python/{devops_helpers/themes → helpers_croshell}/__init__.py +0 -0
- /machineconfig/scripts/python/{croshell_helpers → helpers_croshell}/pomodoro.py +0 -0
- /machineconfig/scripts/python/{croshell_helpers → helpers_croshell}/scheduler.py +0 -0
- /machineconfig/scripts/python/{croshell_helpers → helpers_croshell}/viewer.py +0 -0
- /machineconfig/scripts/python/{croshell_helpers → helpers_croshell}/viewer_template.py +0 -0
- /machineconfig/scripts/python/{helpers_fire → helpers_devops}/__init__.py +0 -0
- /machineconfig/scripts/python/{helpers_fire/agentic_frameworks → helpers_devops/themes}/__init__.py +0 -0
- /machineconfig/scripts/python/{devops_helpers → helpers_devops}/themes/choose_pwsh_theme.ps1 +0 -0
- /machineconfig/{jobs/windows/msc/cli_agents.bat → scripts/python/helpers_devops/themes/choose_starship_theme.ps1} +0 -0
- /machineconfig/{jobs/windows/msc/cli_agents.ps1 → scripts/python/helpers_fire_command/f.py} +0 -0
- /machineconfig/scripts/python/{helper_navigator → helpers_navigator}/data_models.py +0 -0
- /machineconfig/scripts/python/{helper_navigator → helpers_navigator}/search_bar.py +0 -0
- /machineconfig/scripts/python/{helpers_repos → helpers_network}/__init__.py +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/mount_nw_drive.py +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/onetimeshare.py +0 -0
- /machineconfig/scripts/python/{repos_helpers → helpers_repos}/update.py +0 -0
- /machineconfig/scripts/python/{nw → helpers_sessions}/__init__.py +0 -0
- /machineconfig/{scripts/python/sessions_helpers → settings/wt}/__init__.py +0 -0
- /machineconfig/{setup_windows/wt_and_pwsh → settings/wt}/set_wt_settings.py +0 -0
- {machineconfig-6.23.dist-info → machineconfig-8.12.dist-info}/WHEEL +0 -0
- {machineconfig-6.23.dist-info → machineconfig-8.12.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
~/scripts/nano.ps1 (~/scripts/fzfb) # space use for presedence in execution.
|
|
3
|
-
# fzf --ansi --preview-window 'right:60%' --preview 'bat --color=always --style=numbers,grid,header --line-range :300 {}'
|
|
4
|
-
# & "C:\Program Files\Git\usr\bin\nano.exe" (fzf --ansi --preview-window 'right:60%' --preview 'bat --color=always --style=numbers,grid,header --line-range :300 {}')
|
|
5
|
-
# fzf | ~/scripts/nano.ps1
|
|
6
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
fzfb
|
|
File without changes
|
|
File without changes
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# --GROUP:ESSENTIAL_SYSTEM:git,nano,net-utils,wget,curl,nala,nvm,nodejs
|
|
5
|
-
echo "🔄 Updating apt package lists..."
|
|
6
|
-
echo "📥 Installing nala package manager..."
|
|
7
|
-
echo "📥 Installing essential network tools..."
|
|
8
|
-
echo "📥 Installing Node Version Manager (NVM)..."
|
|
9
|
-
sudo apt update -y || true
|
|
10
|
-
sudo apt install nala -y || true
|
|
11
|
-
sudo nala install curl wget gpg lsb-release apt-transport-https -y || true
|
|
12
|
-
sudo nala install git net-tools htop nano -y || true
|
|
13
|
-
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
|
14
|
-
echo "🔧 Configuring NVM environment..."
|
|
15
|
-
export NVM_DIR="$HOME/.nvm"
|
|
16
|
-
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
17
|
-
echo "📥 Installing latest Node.js..."
|
|
18
|
-
nvm install node || true
|
|
19
|
-
echo "📥 Installing SQLite - lightweight SQL database..."
|
|
20
|
-
echo "📥 Installing PostgreSQL client..."
|
|
21
|
-
echo "📥 Installing Redis command-line tools..."
|
|
22
|
-
sudo nala install sqlite3 -y || true
|
|
23
|
-
sudo nala install postgresql-client -y || true # # same for pgsq, when the server runs, we will need the client to talk to it.
|
|
24
|
-
sudo nala install redis-tools -y || true # this gives redis-cli, which is needed to talk to the redis-server that is running in the docker container.
|
|
25
|
-
|
|
26
|
-
# --GROUP:TerminalEyeCandy:fortune,toilet,sl,aafire,cmatrix,hollywood,chafa
|
|
27
|
-
echo "📥 Installing fortune - random wisdom generator..."
|
|
28
|
-
echo "📥 Installing toilet - large ASCII text generator..."
|
|
29
|
-
echo "📥 Installing sl - steam locomotive animation..."
|
|
30
|
-
echo "📥 Installing aafire - ASCII art fire animation..."
|
|
31
|
-
echo "📥 Installing cmatrix - Matrix-style terminal animation..."
|
|
32
|
-
echo "📥 Installing hollywood - Hollywood hacker terminal effect..."
|
|
33
|
-
echo "📥 Installing chafa - terminal image viewer..."
|
|
34
|
-
sudo nala install cowsay -y || true
|
|
35
|
-
sudo nala install lolcat -y || true
|
|
36
|
-
sudo nala install boxes -y || true
|
|
37
|
-
sudo nala install figlet -y || true
|
|
38
|
-
sudo nala install fortune -y || true
|
|
39
|
-
sudo nala install toilet -y || true
|
|
40
|
-
sudo nala install chafa -y
|
|
41
|
-
sudo nala install sl -y || true
|
|
42
|
-
sudo nala install libaa-bin -y
|
|
43
|
-
echo 'keyboard-configuration keyboard-configuration/layout select US English' | sudo debconf-set-selections
|
|
44
|
-
echo 'keyboard-configuration keyboard-configuration/layoutcode string us' | sudo debconf-set-selections
|
|
45
|
-
sudo DEBIAN_FRONTEND=noninteractive nala install -y cmatrix
|
|
46
|
-
sudo nala install hollywood -y || true
|
|
47
|
-
|
|
48
|
-
# --GROUP:NetworkTools: sshfs,samba,fuse3,nfs-common
|
|
49
|
-
echo "📥 Installing sshfs - mount remote filesystems over SSH..."
|
|
50
|
-
echo "📥 Installing Samba - LAN-based file sharing..."
|
|
51
|
-
sudo nala install sshfs
|
|
52
|
-
sudo nala install samba
|
|
53
|
-
sudo nala install fuse3 -y || true
|
|
54
|
-
sudo nala install nfs-common -y || true
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
# --GROUP:DEV_SYSTEM: graphviz,make,rust,libssl-dev,sqlite3,postgresql-client,redis-tools
|
|
58
|
-
echo "📥 Installing Graphviz - graph visualization software..."
|
|
59
|
-
echo "📥 Installing make - build automation tool..."
|
|
60
|
-
echo "📥 Installing SSL development libraries for Rust..."
|
|
61
|
-
echo "📥 Installing Rust programming language and toolchain..."
|
|
62
|
-
sudo nala install graphviz -y || true
|
|
63
|
-
sudo nala install ffmpeg -y || true # Required by some dev tools
|
|
64
|
-
sudo nala install make -y || true # Required by LunarVim and SpaceVim
|
|
65
|
-
(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) || true
|
|
66
|
-
sudo nala install libssl-dev -y
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# 📦 NIX CLI TOOLS INSTALLATION SCRIPT
|
|
3
|
-
# This script installs various command-line utilities using the Nix package manager
|
|
4
|
-
|
|
5
|
-
echo """🔄 SYSTEM UTILITIES | Installing system management tools
|
|
6
|
-
"""
|
|
7
|
-
|
|
8
|
-
# System upgrade tool
|
|
9
|
-
echo "📥 Installing topgrade - multi-package-manager upgrade tool..."
|
|
10
|
-
nix-env -iA nixpkgs.topgrade || true
|
|
11
|
-
|
|
12
|
-
# Process management
|
|
13
|
-
echo "📥 Installing procs - modern replacement for ps..."
|
|
14
|
-
nix-env -iA nixpkgs.procs || true
|
|
15
|
-
|
|
16
|
-
# File watching
|
|
17
|
-
echo "📥 Installing watchexec - executes commands when files change..."
|
|
18
|
-
nix-env -iA nixpkgs.watchexec || true
|
|
19
|
-
|
|
20
|
-
echo """📂 FILE MANAGEMENT | Installing file browsers and utilities
|
|
21
|
-
"""
|
|
22
|
-
|
|
23
|
-
# Terminal file managers
|
|
24
|
-
echo "📥 Installing xplr - hackable file explorer..."
|
|
25
|
-
nix-env -iA nixpkgs.xplr || true
|
|
26
|
-
|
|
27
|
-
echo "📥 Installing nnn - fast and flexible file manager..."
|
|
28
|
-
nix-env -iA nixpkgs.nnn || true
|
|
29
|
-
|
|
30
|
-
echo "📥 Installing joshuto - ranger-like file manager in Rust..."
|
|
31
|
-
nix-env -iA nixpkgs.joshuto || true
|
|
32
|
-
|
|
33
|
-
echo "📥 Installing lf - terminal file manager..."
|
|
34
|
-
nix-env -iA nixpkgs.lf || true
|
|
35
|
-
|
|
36
|
-
echo "📥 Installing broot - directory navigation tool..."
|
|
37
|
-
nix-env -iA nixpkgs.broot || true
|
|
38
|
-
|
|
39
|
-
echo "📥 Installing tere - faster alternative to cd..."
|
|
40
|
-
nix-env -iA nixpkgs.tere || true
|
|
41
|
-
|
|
42
|
-
# Disk usage analyzers
|
|
43
|
-
echo "📥 Installing dua - disk usage analyzer..."
|
|
44
|
-
nix-env -iA nixpkgs.dua || true
|
|
45
|
-
|
|
46
|
-
echo "📥 Installing diskonaut - terminal disk space navigator..."
|
|
47
|
-
nix-env -iA nixpkgs.diskonaut || true
|
|
48
|
-
|
|
49
|
-
# File cleanup
|
|
50
|
-
echo "📥 Installing kondo - cleanup tool for dev projects..."
|
|
51
|
-
nix-env -iA nixpkgs.kondo || true
|
|
52
|
-
|
|
53
|
-
echo """🖼️ VISUAL TOOLS | Installing terminal visualization tools
|
|
54
|
-
"""
|
|
55
|
-
|
|
56
|
-
# Terminal visualization
|
|
57
|
-
echo "📥 Installing viu - terminal image viewer..."
|
|
58
|
-
nix-env -iA nixpkgs.viu || true
|
|
59
|
-
|
|
60
|
-
echo "📥 Installing bottom - graphical process/system monitor..."
|
|
61
|
-
nix-env -iA nixpkgs.bottom || true
|
|
62
|
-
|
|
63
|
-
echo "📥 Installing delta - syntax-highlighting pager for git..."
|
|
64
|
-
nix-env -iA nixpkgs.delta || true
|
|
65
|
-
|
|
66
|
-
echo """🔧 DEVELOPMENT TOOLS | Installing programming utilities
|
|
67
|
-
"""
|
|
68
|
-
|
|
69
|
-
# Code editors
|
|
70
|
-
echo "📥 Installing helix - modal text editor..."
|
|
71
|
-
nix-env -iA nixpkgs.helix || true
|
|
72
|
-
|
|
73
|
-
# Terminal multiplexer
|
|
74
|
-
echo "📥 Installing zellij - terminal workspace with panes..."
|
|
75
|
-
nix-env -iA nixpkgs.zellij || true
|
|
76
|
-
|
|
77
|
-
# Development tools
|
|
78
|
-
echo "📥 Installing rust-analyzer - Rust language server..."
|
|
79
|
-
nix-env -iA nixpkgs.rust-analyzer || true
|
|
80
|
-
|
|
81
|
-
echo "📥 Installing tokei - code statistics tool..."
|
|
82
|
-
nix-env -iA nixpkgs.tokei || true
|
|
83
|
-
|
|
84
|
-
# Git interfaces
|
|
85
|
-
echo "📥 Installing gitui - terminal UI for git..."
|
|
86
|
-
nix-env -iA nixpkgs.gitui || true
|
|
87
|
-
|
|
88
|
-
echo """🔎 SEARCH TOOLS | Installing fuzzy finders and search utilities
|
|
89
|
-
"""
|
|
90
|
-
|
|
91
|
-
# Search history
|
|
92
|
-
echo "📥 Installing mcfly - search shell history with context..."
|
|
93
|
-
nix-env -iA nixpkgs.mcfly || true
|
|
94
|
-
|
|
95
|
-
# Fuzzy finder
|
|
96
|
-
echo "📥 Installing skim - fuzzy finder in Rust..."
|
|
97
|
-
nix-env -iA nixpkgs.skim || true
|
|
98
|
-
|
|
99
|
-
echo """🌐 NETWORK & CLOUD TOOLS | Installing file transfer and cloud utilities
|
|
100
|
-
"""
|
|
101
|
-
|
|
102
|
-
# File transfer
|
|
103
|
-
echo "📥 Installing termscp - terminal file transfer client..."
|
|
104
|
-
nix-env -iA nixpkgs.termscp || true
|
|
105
|
-
|
|
106
|
-
# Cloud storage
|
|
107
|
-
echo "📥 Installing rclone - rsync for cloud storage..."
|
|
108
|
-
nix-env -iA nixpkgs.rclone || true
|
|
109
|
-
|
|
110
|
-
echo """🛡️ SECURITY TOOLS | Installing password management utilities
|
|
111
|
-
"""
|
|
112
|
-
|
|
113
|
-
# Password management
|
|
114
|
-
echo "📥 Installing gopass - team password manager with git..."
|
|
115
|
-
nix-env -iA nixpkgs.gopass || true
|
|
116
|
-
|
|
117
|
-
echo """📚 DOCUMENTATION | Installing help and reference tools
|
|
118
|
-
"""
|
|
119
|
-
|
|
120
|
-
# Command reference
|
|
121
|
-
echo "📥 Installing tldr - simplified command documentation..."
|
|
122
|
-
nix-env -iA nixpkgs.tldr || true
|
|
123
|
-
|
|
124
|
-
# Shell alternatives
|
|
125
|
-
echo "📥 Installing nushell - modern shell alternative..."
|
|
126
|
-
nix-env -iA nixpkgs.nushell || true
|
|
127
|
-
|
|
128
|
-
echo """✅ INSTALLATION COMPLETE | All Nix CLI tools have been installed
|
|
129
|
-
"""
|
|
130
|
-
|
|
131
|
-
# Commented out tools
|
|
132
|
-
# echo "📥 Installing ots - one-time secret sharing..."
|
|
133
|
-
# nix-env -iA nixpkgs.ots || true
|
|
134
|
-
|
|
135
|
-
# echo "📥 Installing qrscan - QR code scanner..."
|
|
136
|
-
# nix-env -iA nixpkgs.qrscan || true
|
|
137
|
-
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/bash
|
|
2
|
-
# 🔐 OpenSSH Server Setup and Configuration
|
|
3
|
-
|
|
4
|
-
# Common pitfalls:
|
|
5
|
-
# 🚫 Wrong line endings (LF/CRLF) in config files
|
|
6
|
-
# 🌐 Network port conflicts (try 2222 -> 2223) between WSL and Windows
|
|
7
|
-
|
|
8
|
-
# 📁 Setup SSH directory and permissions
|
|
9
|
-
mkdir -p ~/.ssh
|
|
10
|
-
echo $pubkey_string >> ~/.ssh/authorized_keys
|
|
11
|
-
sudo chmod 600 ~/.ssh/*
|
|
12
|
-
sudo chmod 700 ~/.ssh
|
|
13
|
-
echo "✅ FINISHED modifying .ssh folder attributes."
|
|
14
|
-
|
|
15
|
-
# 🔄 Clean install OpenSSH server
|
|
16
|
-
sudo nala install openssh-server -y || true # try to install first
|
|
17
|
-
sudo nala purge openssh-server -y
|
|
18
|
-
sudo nala install openssh-server -y
|
|
19
|
-
echo "✅ FINISHED installing openssh-server."
|
|
20
|
-
|
|
21
|
-
# 📝 Additional commands if needed:
|
|
22
|
-
# sudo service ssh status
|
|
23
|
-
# sudo nano /etc/ssh/sshd_config
|
|
24
|
-
# sudo service ssh restart
|
|
25
|
-
# For tunnels see: https://www.youtube.com/watch?v=Wp7boqm3Xts
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/bash
|
|
2
|
-
# 🐧 WSL2 SSH Configuration for LAN Access 🌐
|
|
3
|
-
# Purpose: Enable SSH access to WSL2 from LAN (requires wsl_server.ps1 in Windows)
|
|
4
|
-
# Common pitfall: sshd fails after config changes due to wrong line endings/permissions
|
|
5
|
-
|
|
6
|
-
# 🔍 Check if running in WSL
|
|
7
|
-
if [[ $(uname -a) == *"icrosoft"* ]]; then
|
|
8
|
-
echo "✅ Running inside WSL"
|
|
9
|
-
else
|
|
10
|
-
echo "❌ Not running inside WSL, no need for this script"
|
|
11
|
-
exit 0
|
|
12
|
-
fi
|
|
13
|
-
|
|
14
|
-
# 🔢 Set SSH port
|
|
15
|
-
if [ -z "$port" ]; then
|
|
16
|
-
port=2222
|
|
17
|
-
echo "📝 Port variable not defined, setting it to $port"
|
|
18
|
-
fi
|
|
19
|
-
|
|
20
|
-
# 🛠️ Configure SSH
|
|
21
|
-
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
|
|
22
|
-
sudo sed -i 's/#Port 22/Port '$port'/g' /etc/ssh/sshd_config
|
|
23
|
-
sudo sed -i 's/#ListenAddress 0.0.0.0/ListenAddress 0.0.0.0/g' /etc/ssh/sshd_config
|
|
24
|
-
sudo sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/g' /etc/ssh/sshd_config
|
|
25
|
-
sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
|
|
26
|
-
|
|
27
|
-
# 🔑 Generate host keys and restart service
|
|
28
|
-
sudo service ssh start
|
|
29
|
-
sudo ssh-keygen -A
|
|
30
|
-
sudo service ssh --full-restart
|
|
31
|
-
sudo service ssh status
|
|
32
|
-
|
|
33
|
-
echo "✨ FINISHED configuring SSH in WSL2."
|
|
34
|
-
|
|
35
|
-
# 📚 References:
|
|
36
|
-
# Service startup: https://superuser.com/questions/1701853/how-to-enable-a-service-to-start-with-wsl2
|
|
37
|
-
# WSL config: https://learn.microsoft.com/en-us/windows/wsl/networking#accessing-a-wsl-2-distribution-from-your-local-area-network-lan
|
|
38
|
-
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# to get exact version of an app in winget, head to: https://winget.run
|
|
3
|
-
|
|
4
|
-
# --GROUP:ESSENTIAL_SYSTEM:WT+Brave+VSCode+WezTerm+OhMyPosh+Powershell+Starship+Git+Neovim+GNU Nano+Terminal-Icons+PSFzf
|
|
5
|
-
winget install --no-upgrade --name "Windows Terminal" --Id "Microsoft.WindowsTerminal" --source winget --scope user --accept-package-agreements --accept-source-agreements # Terminal is is installed by default on W 11
|
|
6
|
-
winget install --no-upgrade --name "Brave" --Id "Brave.Brave" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
7
|
-
winget install --no-upgrade --name "Microsoft Visual Studio Code" --Id "Microsoft.VisualStudioCode" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
8
|
-
winget install --no-upgrade --name "WezTerm" --Id "wez.wezterm" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
9
|
-
winget install --no-upgrade --name "Oh My Posh" --Id "JanDeDobbeleer.OhMyPosh" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
10
|
-
winget install --no-upgrade --name "Powershell" --Id "Microsoft.PowerShell" --source winget --scope user --accept-package-agreements --accept-source-agreements # powershell require admin
|
|
11
|
-
winget install --no-upgrade --name "Git" --Id "Git.Git" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
12
|
-
winget install --no-upgrade --name "Neovim" --Id "Neovim.Neovim" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
13
|
-
winget install --no-upgrade --name "GNU Nano" --Id "GNU.Nano" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
14
|
-
# winget install --no-upgrade --Id "CoreyButler.NVMforWindows" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
15
|
-
# winget install --no-upgrade --name "Starship" --Id "Starship.Starship" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
16
|
-
Install-Module -Name Terminal-Icons -Repository PSGallery -Force -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
|
|
17
|
-
Install-Module -Name PSFzf -SkipPublisherCheck # -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
# --GROUP:DEV_SYSTEM:VSRedistrib+VSBuildTools+Codeblocks+GnuWin32: Make+GnuPG+graphviz+WinFsp+SSHFS-win+xming+Node.js+Rustup+Cloudflare+Cloudflare WARP+Microsoft Garage Mouse without Borders
|
|
21
|
-
winget install --no-upgrade --name "VSRedistrib" --Id "Microsoft.VC++2015-2022Redist-x64" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
22
|
-
winget install --no-upgrade --name "VSBuildTools" --Id "Microsoft.VisualStudio.2022.BuildTools" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
23
|
-
winget install --no-upgrade --name "Codeblocks" --Id "Codeblocks.Codeblocks" --source winget --scope user --accept-package-agreements --accept-source-agreements # IDE for C/C++
|
|
24
|
-
winget install --no-upgrade --name "GnuWin32: Make" --Id "GnuWin32.Make" --source winget --scope user --accept-package-agreements --accept-source-agreements # required for building some python packages with native extensions, like dlib
|
|
25
|
-
winget install --no-upgrade --name "GnuPG" --Id "GnuPG.GnuPG" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
26
|
-
winget install --no-upgrade --name "graphviz" --Id "Graphviz.Graphviz" --source winget --scope user --accept-package-agreements --accept-source-agreements # required by pygraphviz. Used in Base.viz_object_hirarchy and Model.plot_model()
|
|
27
|
-
winget install --no-upgrade --name "WinFsp" --Id "WinFsp.WinFsp" --source winget --scope user --accept-package-agreements --accept-source-agreements # mount remote filesystems and required by rclone
|
|
28
|
-
winget install --no-upgrade --name "SSHFS-win" --Id "SSHFS-Win.SSHFS-Win" --source winget --scope user --accept-package-agreements --accept-source-agreements # mount remote filesystems # as per https://github.com/winfsp/sshfs-win
|
|
29
|
-
winget install --no-upgrade --name "xming" --Id "xming.xming" --source winget --scope user --accept-package-agreements --accept-source-agreements # X11 server. you need this while using wsl with gui, otherwise plt.show() returns: ImportError: Cannot load backend 'TkAgg' which requires the 'tk' interactive framework, as 'headless' is currently running
|
|
30
|
-
winget install --no-upgrade --name "Node.js" --Id "OpenJS.NodeJS" --source winget --scope user --accept-package-agreements --accept-source-agreements # ncessary for nvim plugins.
|
|
31
|
-
winget install --no-upgrade --name "Rustup" --Id "Rustlang.Rustup" --source winget --scope user --accept-package-agreements --accept-source-agreements # rust compiler, necessary for some nvim plugins
|
|
32
|
-
winget install --no-upgrade --name "Cloudflare" --Id "Cloudflare.cloudflared" --source winget --scope user --accept-package-agreements --accept-source-agreements # cloudflare tunnel client, alternative to ngrok
|
|
33
|
-
winget install --no-upgrade --name "Cloudflare WARP" --Id "Cloudflare.Warp" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
34
|
-
winget install --no-upgrade --name "Microsoft Garage Mouse without Borders" --Id "Microsoft.MouseWithoutBorders" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
# --GROUP:OTHER_WINDOWS:nu+Chrome+ChromeRemoteDesktop+Zoom+7zip+Firefox+Thunderbird+StreamlabsOBS+OBSStudio+MiKTeX+TexMaker+notepad+++Lapce+TesseractOCR+perl+DB Browser for SQLite+sql server management studio+Adobe Acrobat Reader DC+julia+Chafa+bottom+onefetch+Just+hyperfine+AWS CLI
|
|
38
|
-
winget install --no-upgrade --name "nu" --Id "Nushell.Nushell" --source winget --scope user --accept-package-agreements --accept-source-agreements # add to userpath C:\Program Files\nu\bin, done in symlinks
|
|
39
|
-
winget install --no-upgrade --name "Google Chrome" --Id "Google.Chrome" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
40
|
-
winget install --no-upgrade --name "Chrome Remote Desktop Host" --Id "Google.ChromeRemoteDesktop" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
41
|
-
winget install --no-upgrade --name "Zoom" --Id "Zoom.Zoom" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
42
|
-
winget install --no-upgrade --name "7-zip" --Id "7zip.7zip" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
43
|
-
winget install --no-upgrade --name "Mozilla Firefox" --Id "Mozilla.Firefox" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
44
|
-
winget install --no-upgrade --name "Mozilla Thunderbird (en-US)" --Id "Mozilla.Thunderbird" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
45
|
-
winget install --no-upgrade --name "StreamlabsOBS" --Id "Streamlabs.StreamlabsOBS" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
46
|
-
winget install --no-upgrade --name "OBSStudio" --Id "OBSProject.OBSStudio" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
47
|
-
winget install --no-upgrade --name "MiKTeX" --Id "MiKTeX.MiKTeX" --source winget --scope user # library / lanugage
|
|
48
|
-
winget install --no-upgrade --name "TexMaker" --Id "Texmaker.Texmaker" --source winget --scope user # IDE better than simple TexWorks shipped with MikTex. IDE is basically GUI for cmd interface of Tex
|
|
49
|
-
winget install --no-upgrade --name "notepad++" --Id "Notepad++.Notepad++" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
50
|
-
winget install --no-upgrade --name "Lapce" --Id "Lapce.Lapce" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
51
|
-
winget install --no-upgrade --name "TesseractOCR" --Id "UB-Mannheim.TesseractOCR" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
52
|
-
winget install --no-upgrade --name "perl" --Id "StrawbgnogerryPerl.StrawberryPerl" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
53
|
-
winget install --no-upgrade --name "DB Browser for SQLite" --Id "DBBrowserForSQLite.DBBrowserForSQLite" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
54
|
-
winget install --no-upgrade --name "sql server management studio" --Id "Microsoft.SQLServerManagementStudio" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
55
|
-
winget install --no-upgrade --name "Adobe Acrobat Reader DC" --Id "Adobe.Acrobat.Reader.64-bit" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
56
|
-
winget install --no-upgrade --name "julia" --Id "Julialang.Julia" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
57
|
-
winget install --no-upgrade --name "Chafa" --Id "hpjansson.Chafa" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
58
|
-
winget install --no-upgrade --name "bottom" --Id "Clement.bottom" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
59
|
-
winget install --no-upgrade --name "onefetch" --Id "o2sh.onefetch" --source winget --scope user # repo-version of system fastfetch, see also tokei
|
|
60
|
-
winget install --no-upgrade --name "Just" --Id "Casey.Just" --source winget --scope user # commandline runner
|
|
61
|
-
winget install --no-upgrade --name "hyperfine" --Id "sharkdp.hyperfine" --source winget --scope user # benchmarking tool
|
|
62
|
-
winget install --no-upgrade --name "AWS Command Line Interface" --Id "Amazon.AWSCLI" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# on the side of the local machine, you need to sort out the following:
|
|
3
|
-
# if the $sshfile doesn't have a standard name, you will need to explicitly specify the identity while SSHing (e.g. ssh u@s -i ~/.ssh/my_id)
|
|
4
|
-
# However, this must be done every time. For permanent solutions, use .ssh/config
|
|
5
|
-
|
|
6
|
-
$sshfile = "$env:USERPROFILE\.ssh\id_rsa"
|
|
7
|
-
|
|
8
|
-
Set-Service ssh-agent -StartupType Manual # allow the service to be started manually
|
|
9
|
-
ssh-agent # start the service
|
|
10
|
-
ssh-add.exe $sshfile # add the key to the agent
|
|
11
|
-
|
|
File without changes
|
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
"""Devops Devapps Install"""
|
|
2
|
-
|
|
3
|
-
from machineconfig.utils.installer import dynamically_extract_installers_system_groups_from_scripts
|
|
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, Annotated
|
|
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: Annotated[Optional[str], typer.Argument(..., help="Comma-separated list of program/groups names to install (if --group flag is set).")] = None,
|
|
60
|
-
group: Annotated[bool, typer.Option(..., "--group", "-g", help="Treat 'which' as a group name. A group is bundle of apps.")] = False,
|
|
61
|
-
interactive: Annotated[bool, typer.Option(..., "--interactive", "-ia", help="Interactive selection of programs to install.")] = False,
|
|
62
|
-
) -> None:
|
|
63
|
-
if interactive:
|
|
64
|
-
return install_interactively()
|
|
65
|
-
if which is not None:
|
|
66
|
-
if group:
|
|
67
|
-
for a_group in [x.strip() for x in which.split(",") if x.strip() != ""]:
|
|
68
|
-
return install_group(package_group=a_group)
|
|
69
|
-
else:
|
|
70
|
-
return install_clis(clis_names=[x.strip() for x in which.split(",") if x.strip() != ""])
|
|
71
|
-
else:
|
|
72
|
-
if group:
|
|
73
|
-
typer.echo("❌ You must provide a group name when using the --group/-g option.")
|
|
74
|
-
res = get_static_groups_combined_with_dynamic_groups_extracted()
|
|
75
|
-
console.print("[bold blue]Here are the available groups:[/bold blue]")
|
|
76
|
-
table = Table(show_header=True, header_style="bold magenta")
|
|
77
|
-
table.add_column("Group", style="cyan", no_wrap=True)
|
|
78
|
-
table.add_column("AppsBundled", style="green", overflow="fold")
|
|
79
|
-
for display, group_name in res.items():
|
|
80
|
-
# Parse display
|
|
81
|
-
if " -- " in display:
|
|
82
|
-
group_part, items_part = display.split(" -- ", 1)
|
|
83
|
-
group_name_parsed = group_part.replace("📦 ", "").strip()
|
|
84
|
-
items_str = items_part.strip()
|
|
85
|
-
else:
|
|
86
|
-
group_name_parsed = display
|
|
87
|
-
items_str = group_name
|
|
88
|
-
table.add_row(group_name_parsed, items_str)
|
|
89
|
-
console.print(table)
|
|
90
|
-
raise typer.Exit(1)
|
|
91
|
-
typer.echo("❌ You must provide either a program name/group name, or use --interactive/-ia option.")
|
|
92
|
-
import click
|
|
93
|
-
ctx = click.get_current_context()
|
|
94
|
-
typer.echo(ctx.get_help())
|
|
95
|
-
raise typer.Exit(1)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
def get_static_groups_combined_with_dynamic_groups_extracted():
|
|
99
|
-
# Build category options and maintain a mapping from display text to actual category name
|
|
100
|
-
category_display_to_name: dict[str, str] = {}
|
|
101
|
-
for group_name, group_values in PACKAGE_GROUP2NAMES.items():
|
|
102
|
-
display = f"📦 {group_name:<20}" + " -- " + f"{'|'.join(group_values):<60}"
|
|
103
|
-
category_display_to_name[display] = group_name
|
|
104
|
-
options_system = dynamically_extract_installers_system_groups_from_scripts()
|
|
105
|
-
for item in options_system:
|
|
106
|
-
display = f"📦 {item['appName']:<20} -- {item['doc']:<60}"
|
|
107
|
-
category_display_to_name[display] = item['appName']
|
|
108
|
-
return category_display_to_name
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
def install_interactively():
|
|
112
|
-
from machineconfig.utils.options import choose_from_options
|
|
113
|
-
from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
|
|
114
|
-
from machineconfig.utils.installer import get_installers
|
|
115
|
-
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
116
|
-
installers = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=None)
|
|
117
|
-
installer_options = []
|
|
118
|
-
for x in installers:
|
|
119
|
-
installer_options.append(Installer(installer_data=x).get_description())
|
|
120
|
-
|
|
121
|
-
category_display_to_name = get_static_groups_combined_with_dynamic_groups_extracted()
|
|
122
|
-
options = list(category_display_to_name.keys()) + ["─" * 50] + installer_options
|
|
123
|
-
program_names = choose_from_options(multi=True, msg="Categories are prefixed with 📦", options=options, header="🚀 CHOOSE DEV APP OR CATEGORY", default="📦 essentials", fzf=True)
|
|
124
|
-
installation_messages: list[str] = []
|
|
125
|
-
for _an_idx, a_program_name in enumerate(program_names):
|
|
126
|
-
if a_program_name.startswith("─"): # 50 dashes separator
|
|
127
|
-
continue
|
|
128
|
-
if a_program_name.startswith("📦 "):
|
|
129
|
-
category_name = category_display_to_name.get(a_program_name)
|
|
130
|
-
if category_name:
|
|
131
|
-
install_group(package_group=cast(PACKAGE_GROUPS, category_name))
|
|
132
|
-
else:
|
|
133
|
-
installer_idx = installer_options.index(a_program_name)
|
|
134
|
-
an_installer_data = installers[installer_idx]
|
|
135
|
-
status_message = Installer(an_installer_data).install_robust(version=None) # finish the task - this returns a status message, not a command
|
|
136
|
-
installation_messages.append(status_message)
|
|
137
|
-
if installation_messages:
|
|
138
|
-
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))
|
|
139
|
-
console.print(panel)
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
def install_group(package_group: str):
|
|
143
|
-
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))
|
|
144
|
-
console.print(panel)
|
|
145
|
-
from machineconfig.utils.installer import get_installers, install_bulk
|
|
146
|
-
from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
|
|
147
|
-
if package_group in PACKAGE_GROUP2NAMES:
|
|
148
|
-
installers_ = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=[package_group])
|
|
149
|
-
install_bulk(installers_data=installers_)
|
|
150
|
-
else:
|
|
151
|
-
options_system = dynamically_extract_installers_system_groups_from_scripts()
|
|
152
|
-
from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
|
|
153
|
-
from machineconfig.utils.code import run_shell_script
|
|
154
|
-
for an_item in options_system:
|
|
155
|
-
if an_item["appName"] == package_group:
|
|
156
|
-
program = an_item["fileNamePattern"][get_normalized_arch()][get_os_name()]
|
|
157
|
-
if program is not None:
|
|
158
|
-
run_shell_script(program)
|
|
159
|
-
break
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
def choose_from_system_package_groups(options_system: dict[str, tuple[str, str]]) -> str:
|
|
163
|
-
from machineconfig.utils.options import choose_from_options
|
|
164
|
-
display_options = []
|
|
165
|
-
for group_name, (description, _) in options_system.items():
|
|
166
|
-
if description:
|
|
167
|
-
display_options.append(f"{group_name:<20} - {description}")
|
|
168
|
-
else:
|
|
169
|
-
display_options.append(group_name)
|
|
170
|
-
program_names = choose_from_options(multi=True, msg="", options=sorted(display_options), header="🚀 CHOOSE DEV APP", fzf=True)
|
|
171
|
-
program = ""
|
|
172
|
-
for display_name in program_names:
|
|
173
|
-
# Extract the actual group name (everything before " - " if present)
|
|
174
|
-
group_name = display_name.split(" - ")[0].strip() if " - " in display_name else display_name.strip()
|
|
175
|
-
console.print(f"\n[bold cyan]⚙️ Installing: [yellow]{group_name}[/yellow][/bold cyan]", style="bold")
|
|
176
|
-
_, sub_program = options_system[group_name] # Extract content from tuple
|
|
177
|
-
if sub_program.startswith("#winget"):
|
|
178
|
-
sub_program = sub_program[1:]
|
|
179
|
-
program += "\n" + sub_program
|
|
180
|
-
return program
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
def install_clis(clis_names: list[str]):
|
|
184
|
-
from machineconfig.utils.schemas.installer.installer_types import get_normalized_arch, get_os_name
|
|
185
|
-
from machineconfig.utils.installer import get_installers
|
|
186
|
-
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
187
|
-
|
|
188
|
-
total_messages: list[str] = []
|
|
189
|
-
for a_which in clis_names:
|
|
190
|
-
all_installers = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=None)
|
|
191
|
-
selected_installer = None
|
|
192
|
-
for installer in all_installers:
|
|
193
|
-
app_name = installer["appName"]
|
|
194
|
-
if app_name.lower() == a_which.lower():
|
|
195
|
-
selected_installer = installer
|
|
196
|
-
break
|
|
197
|
-
if selected_installer is None:
|
|
198
|
-
_handle_installer_not_found(a_which, all_installers)
|
|
199
|
-
return None
|
|
200
|
-
message = Installer(selected_installer).install_robust(version=None) # finish the task
|
|
201
|
-
total_messages.append(message)
|
|
202
|
-
if total_messages:
|
|
203
|
-
console.print("\n[bold green]📊 Installation Results:[/bold green]")
|
|
204
|
-
for a_message in total_messages:
|
|
205
|
-
console.print(f"[blue]• {a_message}[/blue]")
|
|
206
|
-
return None
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
def install_if_missing(which: str):
|
|
210
|
-
from machineconfig.utils.installer_utils.installer_abc import check_tool_exists
|
|
211
|
-
exists = check_tool_exists(which)
|
|
212
|
-
if exists:
|
|
213
|
-
print(f"✅ {which} is already installed.")
|
|
214
|
-
return
|
|
215
|
-
print(f"⏳ {which} not found. Installing...")
|
|
216
|
-
from machineconfig.utils.installer_utils.installer import main
|
|
217
|
-
main(which=which, interactive=False)
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
if __name__ == "__main__":
|
|
221
|
-
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
222
|
-
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
223
|
-
|
|
224
|
-
_ = InstallerData, Installer
|
|
225
|
-
pass
|