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
|
@@ -3,37 +3,39 @@ Installers do not add runtime files to the machine, hence this script.
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
from machineconfig.utils.path_extended import PathExtended
|
|
6
|
-
from machineconfig.utils.installer_utils.
|
|
6
|
+
from machineconfig.utils.installer_utils.installer_locator_utils import WINDOWS_INSTALL_PATH
|
|
7
7
|
from typing import Optional
|
|
8
8
|
import platform
|
|
9
9
|
|
|
10
|
-
from machineconfig.utils.installer_utils.
|
|
10
|
+
from machineconfig.utils.installer_utils.installer_locator_utils import LINUX_INSTALL_PATH
|
|
11
11
|
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
12
12
|
from rich.console import Console
|
|
13
13
|
from rich.panel import Panel
|
|
14
14
|
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
15
15
|
|
|
16
16
|
|
|
17
|
+
LANGUAGES_SUPPORTED_GRAMMER = ["python.so", "nu.so", "bash.so", "lua.so", "powershell.so"]
|
|
17
18
|
config_dict: InstallerData = {
|
|
18
19
|
"appName": "hx",
|
|
19
20
|
"repoURL": "CMD",
|
|
20
21
|
"doc": "Helix is a post-modern modal text editor.",
|
|
21
22
|
"fileNamePattern": {
|
|
22
23
|
"amd64": {
|
|
23
|
-
"linux": "
|
|
24
|
-
"macos": "
|
|
25
|
-
"windows": "
|
|
24
|
+
"linux": "helix-{version}-x86_64-linux.tar.xz",
|
|
25
|
+
"macos": "helix-{version}-x86_64-macos.tar.xz",
|
|
26
|
+
"windows": "helix-{version}-x86_64-windows.zip",
|
|
26
27
|
},
|
|
27
28
|
"arm64": {
|
|
28
|
-
"linux": "
|
|
29
|
-
"macos": "
|
|
30
|
-
"windows": "
|
|
29
|
+
"linux": "helix-{version}-arm64-linux.tar.xz",
|
|
30
|
+
"macos": "helix-{version}-arm64-macos.tar.xz",
|
|
31
|
+
"windows": "helix-{version}-arm64-windows.zip",
|
|
31
32
|
},
|
|
32
33
|
},
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
|
|
36
|
-
def main(version: Optional[str], install_lib: bool =
|
|
37
|
+
def main(installer_data: InstallerData, version: Optional[str], install_lib: bool = True):
|
|
38
|
+
_ = installer_data
|
|
37
39
|
console = Console()
|
|
38
40
|
|
|
39
41
|
console.print(Panel(f"HELIX EDITOR INSTALLER 🧬\nPlatform: {platform.system()}\nVersion: {'latest' if version is None else version}", title="Installer", expand=False))
|
|
@@ -43,7 +45,7 @@ def main(version: Optional[str], install_lib: bool = False):
|
|
|
43
45
|
inst = Installer(installer_data=config_dict_copy)
|
|
44
46
|
|
|
45
47
|
print("\n📥 [Step 1/5] Downloading Helix editor...")
|
|
46
|
-
downloaded, _version_to_be_installed = inst.
|
|
48
|
+
downloaded, _version_to_be_installed = inst.binary_download(version=version)
|
|
47
49
|
print(" ✨ Download complete.")
|
|
48
50
|
|
|
49
51
|
print("\n🔍 [Step 2/5] Locating executable and components...")
|
|
@@ -57,6 +59,7 @@ def main(version: Optional[str], install_lib: bool = False):
|
|
|
57
59
|
raise FileNotFoundError(f"Could not find 'hx' executable in {downloaded.name}")
|
|
58
60
|
|
|
59
61
|
assert len(hx_file_search) == 1, f"Expected 1 'hx' executable, found {len(hx_file_search)}"
|
|
62
|
+
|
|
60
63
|
hx_file = hx_file_search[0]
|
|
61
64
|
contrib = hx_file.parent / "contrib"
|
|
62
65
|
runtime = contrib.parent / "runtime"
|
|
@@ -72,9 +75,6 @@ def main(version: Optional[str], install_lib: bool = False):
|
|
|
72
75
|
print("\n🗑️ [Step 3/5] Cleaning up previous installation (if any)...")
|
|
73
76
|
runtime_path = PathExtended.home().joinpath(".config/helix/runtime")
|
|
74
77
|
contrib_path = PathExtended.home().joinpath(".config/helix/contrib")
|
|
75
|
-
runtime_path.delete(sure=True, verbose=False)
|
|
76
|
-
contrib_path.delete(sure=True, verbose=False)
|
|
77
|
-
print(f" ✨ Cleaned '{runtime_path}' and '{contrib_path}'.")
|
|
78
78
|
|
|
79
79
|
print("\n📦 [Step 4/5] Installing Helix components...")
|
|
80
80
|
target_config_dir = PathExtended.home().joinpath(".config/helix").expanduser()
|
|
@@ -84,9 +84,41 @@ def main(version: Optional[str], install_lib: bool = False):
|
|
|
84
84
|
target_bin_path = PathExtended(LINUX_INSTALL_PATH) if platform.system() == "Linux" else PathExtended("/usr/local/bin")
|
|
85
85
|
exe_name = "hx"
|
|
86
86
|
hx_file.move(folder=target_bin_path, overwrite=True)
|
|
87
|
+
|
|
88
|
+
# Always install contrib (regardless of install_lib flag) — treat it like the executable.
|
|
89
|
+
contrib_path.delete(sure=True, verbose=False)
|
|
90
|
+
contrib.move(folder=target_config_dir, overwrite=True)
|
|
91
|
+
|
|
92
|
+
# Install runtime only if install_lib is True. When copying runtime, copy all subfolders
|
|
93
|
+
# except 'grammars' (for which we only copy the specific python.so file if present).
|
|
87
94
|
if install_lib:
|
|
88
|
-
|
|
89
|
-
|
|
95
|
+
runtime_path.delete(sure=True, verbose=False)
|
|
96
|
+
print(f" ✨ Cleaned '{runtime_path}' and '{contrib_path}'.")
|
|
97
|
+
target_runtime = target_config_dir.joinpath("runtime")
|
|
98
|
+
target_runtime.mkdir(parents=True, exist_ok=True)
|
|
99
|
+
|
|
100
|
+
# iterate runtime children and copy selectively
|
|
101
|
+
for child in runtime.iterdir():
|
|
102
|
+
# skip non-existent or weird entries
|
|
103
|
+
if not child.exists():
|
|
104
|
+
continue
|
|
105
|
+
if child.name == "grammars":
|
|
106
|
+
# copy only the specific language files from runtime/grammars if they exist
|
|
107
|
+
for a_language in LANGUAGES_SUPPORTED_GRAMMER:
|
|
108
|
+
lang_file = child.joinpath(a_language)
|
|
109
|
+
if lang_file.exists() and lang_file.is_file():
|
|
110
|
+
dest = target_runtime.joinpath("grammars")
|
|
111
|
+
lang_file.copy(folder=dest, overwrite=True)
|
|
112
|
+
else:
|
|
113
|
+
# copy the whole child (file or directory) into target_runtime
|
|
114
|
+
# for directories, copy will create target_runtime/<child.name>
|
|
115
|
+
try:
|
|
116
|
+
child.copy(folder=target_runtime, overwrite=True)
|
|
117
|
+
except Exception:
|
|
118
|
+
# fallback: try copying contents if it's a directory
|
|
119
|
+
if child.is_dir():
|
|
120
|
+
for sub in child.iterdir():
|
|
121
|
+
sub.copy(folder=target_runtime.joinpath(child.name), overwrite=True)
|
|
90
122
|
system_name = "Linux" if platform.system() == "Linux" else "macOS"
|
|
91
123
|
console.print(
|
|
92
124
|
Panel(
|
|
@@ -102,9 +134,34 @@ def main(version: Optional[str], install_lib: bool = False):
|
|
|
102
134
|
target_bin_path = PathExtended(WINDOWS_INSTALL_PATH)
|
|
103
135
|
exe_name = "hx.exe"
|
|
104
136
|
hx_file.move(folder=target_bin_path, overwrite=True)
|
|
137
|
+
|
|
138
|
+
# Always install contrib (regardless of install_lib flag)
|
|
139
|
+
contrib_path.delete(sure=True, verbose=False)
|
|
140
|
+
contrib.move(folder=target_config_dir, overwrite=True)
|
|
141
|
+
|
|
142
|
+
# Install runtime only if install_lib is True. Copy selectively as on POSIX.
|
|
105
143
|
if install_lib:
|
|
106
|
-
|
|
107
|
-
|
|
144
|
+
runtime_path.delete(sure=True, verbose=False)
|
|
145
|
+
print(f" ✨ Cleaned '{runtime_path}' and '{contrib_path}'.")
|
|
146
|
+
target_runtime = target_config_dir.joinpath("runtime")
|
|
147
|
+
target_runtime.mkdir(parents=True, exist_ok=True)
|
|
148
|
+
|
|
149
|
+
for child in runtime.iterdir():
|
|
150
|
+
if not child.exists():
|
|
151
|
+
continue
|
|
152
|
+
if child.name == "grammars":
|
|
153
|
+
for a_language in LANGUAGES_SUPPORTED_GRAMMER:
|
|
154
|
+
lang_file = child.joinpath(a_language)
|
|
155
|
+
if lang_file.exists() and lang_file.is_file():
|
|
156
|
+
dest = target_runtime.joinpath("grammars")
|
|
157
|
+
lang_file.copy(folder=dest, overwrite=True)
|
|
158
|
+
else:
|
|
159
|
+
try:
|
|
160
|
+
child.copy(folder=target_runtime, overwrite=True)
|
|
161
|
+
except Exception:
|
|
162
|
+
if child.is_dir():
|
|
163
|
+
for sub in child.iterdir():
|
|
164
|
+
sub.copy(folder=target_runtime.joinpath(child.name), overwrite=True)
|
|
108
165
|
console.print(
|
|
109
166
|
Panel(
|
|
110
167
|
f"""✅ SUCCESS | Helix editor installed successfully on Windows!
|
|
@@ -137,4 +194,4 @@ def main(version: Optional[str], install_lib: bool = False):
|
|
|
137
194
|
|
|
138
195
|
|
|
139
196
|
if __name__ == "__main__":
|
|
140
|
-
|
|
197
|
+
pass
|
|
@@ -32,7 +32,7 @@ def main(installer_data: InstallerData, version: Optional[str]) -> None:
|
|
|
32
32
|
|
|
33
33
|
if current_platform == "Windows":
|
|
34
34
|
console.print("🪟 Installing Nerd Fonts on Windows...", style="bold")
|
|
35
|
-
from machineconfig.jobs.installer.
|
|
35
|
+
from machineconfig.jobs.installer.python_scripts.nerfont_windows_helper import install_nerd_fonts
|
|
36
36
|
|
|
37
37
|
try:
|
|
38
38
|
install_nerd_fonts()
|
|
@@ -108,4 +108,4 @@ def main(installer_data: InstallerData, version: Optional[str]) -> None:
|
|
|
108
108
|
|
|
109
109
|
|
|
110
110
|
if __name__ == "__main__":
|
|
111
|
-
|
|
111
|
+
main(1, None) # type: ignore
|
|
@@ -18,7 +18,6 @@ from machineconfig.utils.installer_utils.installer_class import Installer
|
|
|
18
18
|
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
# Nerd Fonts installer configuration data
|
|
22
21
|
nerd_fonts: InstallerData = {
|
|
23
22
|
"appName": "Cascadia Code Nerd Font",
|
|
24
23
|
"repoURL": "https://github.com/ryanoasis/nerd-fonts",
|
|
@@ -38,14 +37,6 @@ nerd_fonts: InstallerData = {
|
|
|
38
37
|
}
|
|
39
38
|
|
|
40
39
|
|
|
41
|
-
# Patterns to match any installed variant (NF, Nerd Font, Mono, Propo, style weights) of Cascadia/Caskaydia
|
|
42
|
-
# We'll compile them at runtime for flexibility. Keep them simple to avoid false positives.
|
|
43
|
-
# REQUIRED_FONT_PATTERNS: tuple[str, ...] = (
|
|
44
|
-
# r"caskaydiacove.*(nf|nerd ?font)",
|
|
45
|
-
# r"cascadiacode.*(nf|nerd ?font)"
|
|
46
|
-
# )
|
|
47
|
-
|
|
48
|
-
|
|
49
40
|
console = Console()
|
|
50
41
|
|
|
51
42
|
|
|
@@ -80,22 +71,28 @@ def _list_installed_fonts() -> list[str]:
|
|
|
80
71
|
|
|
81
72
|
|
|
82
73
|
def _missing_required_fonts(installed_fonts: Iterable[str]) -> list[str]:
|
|
83
|
-
"""Check which
|
|
84
|
-
|
|
74
|
+
"""Check which feature fonts are missing from installed fonts.
|
|
75
|
+
|
|
85
76
|
Args:
|
|
86
77
|
installed_fonts: List of installed font names
|
|
87
|
-
|
|
78
|
+
|
|
88
79
|
Returns:
|
|
89
|
-
List of missing font
|
|
80
|
+
List of descriptions for missing font groups
|
|
90
81
|
"""
|
|
91
|
-
import re
|
|
92
82
|
|
|
93
|
-
|
|
83
|
+
def _normalize(name: str) -> str:
|
|
84
|
+
return name.lower().replace(" ", "").replace("_", "")
|
|
85
|
+
|
|
86
|
+
installed_norm = [_normalize(font) for font in installed_fonts]
|
|
87
|
+
requirements: list[tuple[str, str]] = [
|
|
88
|
+
("cascadiacode", "Cascadia Code family"),
|
|
89
|
+
("caskaydiacove", "Caskaydia Cove Nerd Font family"),
|
|
90
|
+
]
|
|
91
|
+
|
|
94
92
|
missing: list[str] = []
|
|
95
|
-
for
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
missing.append(pattern)
|
|
93
|
+
for needle, label in requirements:
|
|
94
|
+
if not any(needle in font for font in installed_norm):
|
|
95
|
+
missing.append(label)
|
|
99
96
|
return missing
|
|
100
97
|
|
|
101
98
|
|
|
@@ -125,18 +122,22 @@ def install_nerd_fonts() -> None:
|
|
|
125
122
|
console.print(f"🔍 Missing fonts detected: {', '.join(missing)}. Proceeding with installation...")
|
|
126
123
|
console.print("🔍 Downloading Nerd Fonts package...")
|
|
127
124
|
|
|
128
|
-
folder, _version_to_be_installed = Installer(installer_data=nerd_fonts).
|
|
125
|
+
folder, _version_to_be_installed = Installer(installer_data=nerd_fonts).binary_download(version=None)
|
|
129
126
|
|
|
130
127
|
console.print("🧹 Cleaning up unnecessary files...")
|
|
131
128
|
[p.delete(sure=True) for p in folder.search("*Windows*")]
|
|
132
129
|
[p.delete(sure=True) for p in folder.search("*readme*")]
|
|
133
130
|
[p.delete(sure=True) for p in folder.search("*LICENSE*")]
|
|
134
131
|
|
|
132
|
+
print("Fonts to be installed:")
|
|
133
|
+
for font in (folder.search("*.ttf") + folder.search("*.otf")):
|
|
134
|
+
print(f" - {font}")
|
|
135
|
+
|
|
135
136
|
console.print("⚙️ Installing fonts via PowerShell...")
|
|
136
137
|
file = PathExtended.tmpfile(suffix=".ps1")
|
|
137
138
|
file.parent.mkdir(parents=True, exist_ok=True)
|
|
138
|
-
|
|
139
|
-
raw_content = LIBRARY_ROOT.joinpath("jobs/installer/
|
|
139
|
+
|
|
140
|
+
raw_content = LIBRARY_ROOT.joinpath("jobs/installer/powershell_scripts/install_fonts.ps1").read_text(encoding="utf-8").replace(r".\fonts-to-be-installed", str(folder))
|
|
140
141
|
# PowerShell 5.1 can choke on certain unicode chars in some locales; keep ASCII only.
|
|
141
142
|
content = "".join(ch for ch in raw_content if ord(ch) < 128)
|
|
142
143
|
file.write_text(content, encoding="utf-8")
|
|
@@ -156,3 +157,7 @@ def install_nerd_fonts() -> None:
|
|
|
156
157
|
console.print()
|
|
157
158
|
render_banner("✅ Nerd Fonts installation complete! ✅", "Nerd Fonts Installer", "green", box.DOUBLE)
|
|
158
159
|
console.print()
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
if __name__ == "__main__":
|
|
163
|
+
install_nerd_fonts()
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import platform
|
|
4
|
+
from typing import Optional
|
|
5
|
+
from rich import box
|
|
6
|
+
from rich.console import Console
|
|
7
|
+
from rich.panel import Panel
|
|
8
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
9
|
+
|
|
10
|
+
ps1 = r"""
|
|
11
|
+
$winget = Get-Command winget -ErrorAction SilentlyContinue
|
|
12
|
+
if (-not $winget) {
|
|
13
|
+
Write-Host "winget not found. Installing..."
|
|
14
|
+
$finalUrl = (Invoke-WebRequest 'https://github.com/microsoft/winget-cli/releases/latest' -UseBasicParsing).BaseResponse.ResponseUri.AbsoluteUri
|
|
15
|
+
$releaseTag = $finalUrl.Split('/')[-1]
|
|
16
|
+
$DownloadUrl = "https://github.com/microsoft/winget-cli/releases/download/$releaseTag/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
|
|
17
|
+
$DestDir = Join-Path $HOME "Downloads"
|
|
18
|
+
$DestFile = Join-Path $DestDir "Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
|
|
19
|
+
# Create folder if it doesn't exist
|
|
20
|
+
if (-not (Test-Path $DestDir)) {
|
|
21
|
+
New-Item -ItemType Directory -Path $DestDir | Out-Null
|
|
22
|
+
}
|
|
23
|
+
Write-Host "Downloading winget installer..."
|
|
24
|
+
# Invoke-WebRequest -Uri $DownloadUrl -OutFile $DestFile
|
|
25
|
+
Start-BitsTransfer -Source $DownloadUrl -Destination $DestFile
|
|
26
|
+
Write-Host "Saved to: $DestFile"
|
|
27
|
+
# We MUST run Add-AppxPackage in Windows PowerShell
|
|
28
|
+
Write-Host "Installing package via Windows PowerShell..."
|
|
29
|
+
powershell.exe -NoLogo -NoProfile -Command "Add-AppxPackage -Path `"$DestFile`" "
|
|
30
|
+
Write-Host "Installation complete."
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
Write-Host "winget already available. Skipping installation."
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
# [System.Environment]::SetEnvironmentVariable('PYTHONUTF8', '1', 'User')
|
|
37
|
+
# [System.Environment]::SetEnvironmentVariable('PYTHONIOENCODING', 'utf-8', 'User')
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
winget install --no-upgrade --name "Powershell" --Id "Microsoft.PowerShell" --source winget --scope user --accept-package-agreements --accept-source-agreements # powershell require admin
|
|
41
|
+
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
|
|
42
|
+
# winget install --no-upgrade --name "GNU Nano" --Id "GNU.Nano" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
43
|
+
# --GROUP:gui:Brave+VSCode+Git+WezTerm
|
|
44
|
+
# --GROUP:dev2:VSRedistrib+VSBuildTools+Codeblocks+GnuWin32: Make+GnuPG+graphviz+WinFsp+SSHFS-win+xming+Node.js+Rustup+Cloudflare+Cloudflare WARP+Microsoft Garage Mouse without Borders
|
|
45
|
+
# --GROUP:user: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
|
|
46
|
+
# Install-Module -Name Terminal-Icons -Repository PSGallery -Force -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
|
|
47
|
+
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
zsh = r"""
|
|
51
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
52
|
+
echo "🔄 Updating Homebrew..."
|
|
53
|
+
brew update || true
|
|
54
|
+
# Note: git and nano are pre-installed on macOS, but we install via Homebrew to ensure latest versions
|
|
55
|
+
# brew install git || true
|
|
56
|
+
# brew install nano || true
|
|
57
|
+
# brew install curl || true
|
|
58
|
+
# Install NVM
|
|
59
|
+
if [ ! -s "$HOME/.nvm/nvm.sh" ]; then
|
|
60
|
+
echo "📥 Installing NVM (Node Version Manager)..."
|
|
61
|
+
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
|
62
|
+
fi
|
|
63
|
+
echo "🔧 Configuring NVM environment..."
|
|
64
|
+
export NVM_DIR="$HOME/.nvm"
|
|
65
|
+
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
66
|
+
echo "📥 Installing latest Node.js..."
|
|
67
|
+
nvm install node || true
|
|
68
|
+
# brew install make
|
|
69
|
+
# brew install ffmpeg
|
|
70
|
+
# brew install openssl
|
|
71
|
+
echo "✅ Essential tools installation complete."
|
|
72
|
+
"""
|
|
73
|
+
|
|
74
|
+
bash = r"""
|
|
75
|
+
sudo apt update -y || true
|
|
76
|
+
sudo apt install nala -y || true
|
|
77
|
+
sudo nala install curl wget gpg lsb-release apt-transport-https -y || true
|
|
78
|
+
sudo nala install git net-tools htop nano -y || true
|
|
79
|
+
sudo nala install build-essential python3-dev -y || true # C build toolchain: Where build-essential brings gcc, make, etc., and python3-dev ensures headers for your Python version.
|
|
80
|
+
# sudo nala install libssl-dev -y
|
|
81
|
+
# sudo nala install libaa-bin -y
|
|
82
|
+
|
|
83
|
+
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
|
84
|
+
source ~/.bashrc || true
|
|
85
|
+
nvm install node || true
|
|
86
|
+
|
|
87
|
+
sudo nala install samba -y || true
|
|
88
|
+
sudo nala install fuse3 -y || true
|
|
89
|
+
sudo nala install nfs-common -y || true
|
|
90
|
+
|
|
91
|
+
# echo 'keyboard-configuration keyboard-configuration/layout select US English' | sudo debconf-set-selections
|
|
92
|
+
# echo 'keyboard-configuration keyboard-configuration/layoutcode string us' | sudo debconf-set-selections
|
|
93
|
+
# sudo DEBIAN_FRONTEND=noninteractive nala install -y cmatrix
|
|
94
|
+
# sudo nala install hollywood -y || true
|
|
95
|
+
|
|
96
|
+
# sudo nala install ffmpeg -y || true # Required by some dev tools
|
|
97
|
+
# sudo nala install make -y || true # Required by LunarVim and SpaceVim
|
|
98
|
+
# (curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) || true
|
|
99
|
+
|
|
100
|
+
"""
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def main(installer_data: InstallerData, version: Optional[str]) -> None:
|
|
104
|
+
console = Console()
|
|
105
|
+
_ = installer_data
|
|
106
|
+
console.print(
|
|
107
|
+
Panel.fit(
|
|
108
|
+
"\n".join([f"💻 Platform: {platform.system()}", f"🔄 Version: {'latest' if version is None else version}"]),
|
|
109
|
+
title="🔧 ABC Installer",
|
|
110
|
+
border_style="blue",
|
|
111
|
+
box=box.ROUNDED,
|
|
112
|
+
)
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
_ = version
|
|
116
|
+
if platform.system() == "Windows":
|
|
117
|
+
console.print("🪟 Installing ABC on Windows using winget...", style="bold")
|
|
118
|
+
program = ps1
|
|
119
|
+
elif platform.system() == "Linux":
|
|
120
|
+
console.print("🐧 Installing ABC on Linux...", style="bold")
|
|
121
|
+
program = bash
|
|
122
|
+
elif platform.system() == "Darwin":
|
|
123
|
+
console.print("🍎 Installing ABC on macOS...", style="bold")
|
|
124
|
+
program = zsh
|
|
125
|
+
else:
|
|
126
|
+
error_msg = f"Unsupported platform: {platform.system()}"
|
|
127
|
+
console.print(
|
|
128
|
+
Panel.fit(
|
|
129
|
+
"\n".join([error_msg]),
|
|
130
|
+
title="❌ Error",
|
|
131
|
+
subtitle="⚠️ Unsupported platform",
|
|
132
|
+
border_style="red",
|
|
133
|
+
box=box.ROUNDED,
|
|
134
|
+
)
|
|
135
|
+
)
|
|
136
|
+
raise NotImplementedError(error_msg)
|
|
137
|
+
from machineconfig.utils.code import print_code, run_shell_script
|
|
138
|
+
print_code(code=program, lexer="shell", desc="Installation Script Preview")
|
|
139
|
+
run_shell_script(program)
|
|
@@ -9,10 +9,6 @@ from rich.panel import Panel
|
|
|
9
9
|
|
|
10
10
|
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
# config_dict: InstallerData = {"appName": "Wezterm", "repoURL": "CMD", "doc": "Modern, GPU-accelerated terminal emulator"}
|
|
14
|
-
|
|
15
|
-
|
|
16
12
|
console = Console()
|
|
17
13
|
|
|
18
14
|
|
|
@@ -35,21 +31,8 @@ def main(installer_data: InstallerData, version: Optional[str]):
|
|
|
35
31
|
|
|
36
32
|
_ = version
|
|
37
33
|
if platform.system() == "Windows":
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
Panel.fit(
|
|
41
|
-
"\n".join(
|
|
42
|
-
[
|
|
43
|
-
f"❌ ERROR | {error_msg}",
|
|
44
|
-
"💡 TIP: Please download and install manually from the WezTerm website",
|
|
45
|
-
]
|
|
46
|
-
),
|
|
47
|
-
title="Unsupported Platform",
|
|
48
|
-
border_style="red",
|
|
49
|
-
padding=(1, 2),
|
|
50
|
-
)
|
|
51
|
-
)
|
|
52
|
-
raise NotImplementedError(error_msg)
|
|
34
|
+
program = """winget install --no-upgrade --name "WezTerm" --Id "wez.wezterm" --source winget --accept-package-agreements --accept-source-agreements
|
|
35
|
+
"""
|
|
53
36
|
elif platform.system() in ["Linux", "Darwin"]:
|
|
54
37
|
system_name = "LINUX" if platform.system() == "Linux" else "MACOS"
|
|
55
38
|
console.print(
|
|
@@ -3,11 +3,16 @@ import requests
|
|
|
3
3
|
import tempfile
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
from typing import Optional
|
|
6
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
6
7
|
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
#
|
|
10
|
-
|
|
9
|
+
r"""
|
|
10
|
+
# download latest from
|
|
11
|
+
cd $HOME/Downloads
|
|
12
|
+
d u "https://github.com/microsoft/winget-cli/releases/download/v1.12.170-preview/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
|
|
13
|
+
# this must be run in windows powershell, not in pwsh
|
|
14
|
+
Add-AppxPackage .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
|
|
15
|
+
"""
|
|
11
16
|
|
|
12
17
|
def is_winget_available() -> bool:
|
|
13
18
|
"""
|
|
@@ -110,7 +115,7 @@ def install_msix_package(package_path: Path) -> bool:
|
|
|
110
115
|
return False
|
|
111
116
|
|
|
112
117
|
|
|
113
|
-
def
|
|
118
|
+
def main(installer_data: InstallerData, version: Optional[str]) -> bool:
|
|
114
119
|
"""
|
|
115
120
|
Ensure winget is available on the system. If not available, download and install it.
|
|
116
121
|
|
|
@@ -118,6 +123,7 @@ def ensure_winget_available() -> bool:
|
|
|
118
123
|
bool: True if winget is available (either was already installed or successfully installed),
|
|
119
124
|
False if installation failed
|
|
120
125
|
"""
|
|
126
|
+
_ = installer_data
|
|
121
127
|
# First check if winget is already available
|
|
122
128
|
if is_winget_available():
|
|
123
129
|
print("Winget is already available on the system.")
|
|
@@ -164,13 +170,3 @@ def ensure_winget_available() -> bool:
|
|
|
164
170
|
else:
|
|
165
171
|
print("Installation completed but winget is still not available. You may need to restart your terminal or add it to PATH.")
|
|
166
172
|
return False
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
if __name__ == "__main__":
|
|
170
|
-
# Example usage
|
|
171
|
-
print("=== Winget Installation ===\n")
|
|
172
|
-
|
|
173
|
-
if ensure_winget_available():
|
|
174
|
-
print("Winget is ready to use!")
|
|
175
|
-
else:
|
|
176
|
-
print("Failed to ensure winget availability.")
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
|
|
2
|
+
from typing import Optional
|
|
3
|
+
import platform
|
|
4
|
+
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
5
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
installer_standard: InstallerData = {
|
|
9
|
+
"appName": "yazi",
|
|
10
|
+
"repoURL": "https://github.com/sxyazi/yazi",
|
|
11
|
+
"doc": "⚡ Blazing Fast Terminal File Manager.",
|
|
12
|
+
"fileNamePattern": {
|
|
13
|
+
"amd64": {
|
|
14
|
+
"linux": "yazi-x86_64-unknown-linux-musl.zip",
|
|
15
|
+
"macos": "yazi-x86_64-apple-darwin.zip",
|
|
16
|
+
"windows": "yazi-x86_64-pc-windows-msvc.zip"
|
|
17
|
+
},
|
|
18
|
+
"arm64": {
|
|
19
|
+
"linux": "yazi-aarch64-unknown-linux-musl.zip",
|
|
20
|
+
"macos": "yazi-aarch64-apple-darwin.zip",
|
|
21
|
+
"windows": "yazi-aarch64-pc-windows-msvc.zip"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
def main(installer_data: InstallerData, version: Optional[str]):
|
|
27
|
+
_ = installer_data
|
|
28
|
+
inst = Installer(installer_data=installer_standard)
|
|
29
|
+
inst.install(version=version)
|
|
30
|
+
|
|
31
|
+
print("\n" * 5)
|
|
32
|
+
print("Installing Yazi plugins and flavors...")
|
|
33
|
+
installer_standard["appName"] = "ya"
|
|
34
|
+
inst = Installer(installer_data=installer_standard)
|
|
35
|
+
inst.install(version=version)
|
|
36
|
+
|
|
37
|
+
print("\n" * 5)
|
|
38
|
+
print("Cloning Yazi plugins and flavors repositories...")
|
|
39
|
+
|
|
40
|
+
from pathlib import Path
|
|
41
|
+
system_name = platform.system().lower()
|
|
42
|
+
home_dir = Path.home()
|
|
43
|
+
if system_name == "windows":
|
|
44
|
+
yazi_plugins_dir = home_dir.joinpath("AppData", "Roaming", "yazi", "config")
|
|
45
|
+
else:
|
|
46
|
+
yazi_plugins_dir = home_dir.joinpath(".config", "yazi")
|
|
47
|
+
|
|
48
|
+
yazi_plugins_path = yazi_plugins_dir.joinpath("plugins")
|
|
49
|
+
yazi_flavours_path = yazi_plugins_dir.joinpath("flavors")
|
|
50
|
+
if yazi_plugins_path.exists():
|
|
51
|
+
if yazi_plugins_path.is_file():
|
|
52
|
+
yazi_plugins_path.unlink()
|
|
53
|
+
elif yazi_plugins_path.is_dir():
|
|
54
|
+
import shutil
|
|
55
|
+
shutil.rmtree(yazi_plugins_path)
|
|
56
|
+
yazi_plugins_dir.mkdir(parents=True, exist_ok=True)
|
|
57
|
+
import git
|
|
58
|
+
git.Repo.clone_from("https://github.com/yazi-rs/plugins", yazi_plugins_path)
|
|
59
|
+
if yazi_flavours_path.exists():
|
|
60
|
+
if yazi_flavours_path.is_file():
|
|
61
|
+
yazi_flavours_path.unlink()
|
|
62
|
+
elif yazi_flavours_path.is_dir():
|
|
63
|
+
import shutil
|
|
64
|
+
shutil.rmtree(yazi_flavours_path)
|
|
65
|
+
yazi_plugins_dir.mkdir(parents=True, exist_ok=True)
|
|
66
|
+
import git
|
|
67
|
+
git.Repo.clone_from("https://github.com/yazi-rs/flavors", yazi_flavours_path)
|
|
68
|
+
|
|
69
|
+
# previewers:
|
|
70
|
+
if platform.system() == "Linux":
|
|
71
|
+
script = r"""
|
|
72
|
+
sudo nala install poppler-utils -y || true # For PDF preview, needed by yazi.
|
|
73
|
+
"""
|
|
74
|
+
from machineconfig.utils.code import run_shell_script
|
|
75
|
+
run_shell_script(script)
|
|
76
|
+
elif platform.system() == "Darwin":
|
|
77
|
+
script = r"""
|
|
78
|
+
brew install --upgrade poppler || true # For PDF preview, needed by yazi.
|
|
79
|
+
"""
|
|
80
|
+
from machineconfig.utils.code import run_shell_script
|
|
81
|
+
run_shell_script(script)
|
|
82
|
+
elif platform.system() == "Windows":
|
|
83
|
+
from machineconfig.utils.installer_utils.installer_cli import install_if_missing
|
|
84
|
+
install_if_missing("git")
|
|
85
|
+
popler_installer: InstallerData = {
|
|
86
|
+
"appName": "poppler",
|
|
87
|
+
"repoURL": "https://github.com/oschwartz10612/poppler-windows",
|
|
88
|
+
"doc": "PDF rendering library - Windows builds.",
|
|
89
|
+
"fileNamePattern": {
|
|
90
|
+
"amd64": {
|
|
91
|
+
"windows": "Release-{version}.zip",
|
|
92
|
+
"linux": None,
|
|
93
|
+
"macos": None,
|
|
94
|
+
},
|
|
95
|
+
"arm64": {
|
|
96
|
+
"windows": None,
|
|
97
|
+
"linux": None,
|
|
98
|
+
"macos": None,
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
inst_poppler = Installer(installer_data=popler_installer)
|
|
103
|
+
inst_poppler.install(version=None)
|
|
104
|
+
# assuming ouch is already installed
|
|
105
|
+
script = """
|
|
106
|
+
ya pkg add 'ndtoan96/ouch' # make ouch default previewer in yazi for compressed files
|
|
107
|
+
ya pkg add 'AnirudhG07/rich-preview' # rich-cli based previewer for yazi
|
|
108
|
+
ya pack -a 'stelcodes/bunny'
|
|
109
|
+
ya pkg add 'Tyarel8/goto-drives'
|
|
110
|
+
ya pkg add 'uhs-robert/sshfs'
|
|
111
|
+
ya pkg add 'boydaihungst/file-extra-metadata'
|
|
112
|
+
ya pkg add 'wylie102/duckdb'
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
"""
|
|
116
|
+
from machineconfig.utils.code import run_shell_script
|
|
117
|
+
run_shell_script(script)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
if __name__ == "__main__":
|
|
121
|
+
pass
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
# mkdir ~/data/local
|
|
6
6
|
# sudo mount -o nolock,noatime,nodiratime,proto=tcp,timeo=600,retrans=2,noac alex-p51s-5:/home/alex/data/local ./data/local
|
|
7
7
|
|
|
8
|
-
uv run --python 3.14 --with "machineconfig>=5.87" python -m machineconfig.scripts.python.mount_nfs
|
|
9
8
|
# Check if remote server is reachable and share folder exists
|
|
10
9
|
if ! ping -c 1 "$remote_server" &> /dev/null; then
|
|
11
10
|
echo "💥 Error: Remote server $remote_server is not reachable."
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
winget install WinFsp.WinFsp --source winget --scope user --accept-package-agreements --accept-source-agreements; winget install SSHFS-Win.SSHFS-Win --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
4
|
+
|
|
5
|
+
$host = ''
|
|
6
|
+
$user = ''
|
|
7
|
+
$sharePath = ''
|
|
8
|
+
$driveLetter = ''
|
|
9
|
+
|
|
10
|
+
uv run --python 3.14 --with "machineconfig>=8.12" python -m machineconfig.scripts.python.mount_ssh
|
|
11
|
+
|
|
12
|
+
net use T: \\sshfs.kr\$user@$host.local
|
|
13
|
+
# this worked: net use T: \\sshfs\alex@alex-p51s-5.local
|