machineconfig 7.50__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/sessions_managers/utils/maker.py +23 -11
- machineconfig/cluster/sessions_managers/wt_local_manager.py +22 -19
- machineconfig/cluster/sessions_managers/wt_remote_manager.py +3 -1
- machineconfig/cluster/sessions_managers/zellij_local_manager.py +3 -1
- machineconfig/cluster/sessions_managers/zellij_remote_manager.py +3 -2
- machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +2 -2
- machineconfig/jobs/installer/installer_data.json +1185 -165
- machineconfig/jobs/installer/linux_scripts/q.sh +10 -7
- machineconfig/jobs/installer/linux_scripts/redis.sh +1 -0
- machineconfig/jobs/installer/package_groups.py +52 -84
- machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
- machineconfig/jobs/installer/{custom → python_scripts}/boxes.py +2 -2
- 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 +16 -12
- 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 +21 -22
- machineconfig/profile/create_links_export.py +25 -11
- machineconfig/profile/create_shell_profile.py +14 -3
- machineconfig/profile/mapper.toml +8 -6
- machineconfig/scripts/__init__.py +0 -4
- machineconfig/scripts/linux/wrap_mcfg +20 -21
- machineconfig/scripts/python/agents.py +74 -50
- machineconfig/scripts/python/ai/initai.py +1 -1
- 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/cloud.py +6 -6
- machineconfig/scripts/python/croshell.py +67 -60
- machineconfig/scripts/python/devops.py +41 -21
- machineconfig/scripts/python/devops_navigator.py +0 -4
- machineconfig/scripts/python/env_manager/env_manager_tui.py +204 -0
- machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
- machineconfig/scripts/python/fire_jobs.py +95 -67
- 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_agents/agentic_frameworks/fire_crush.json +1 -1
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +9 -7
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +21 -8
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +0 -12
- machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py +30 -11
- machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +9 -2
- 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 +8 -4
- machineconfig/scripts/python/helpers_agents/templates/template.sh +18 -8
- machineconfig/scripts/python/helpers_cloud/cloud_copy.py +28 -21
- machineconfig/scripts/python/helpers_cloud/cloud_helpers.py +1 -1
- machineconfig/scripts/python/helpers_cloud/cloud_mount.py +19 -17
- machineconfig/scripts/python/helpers_cloud/cloud_sync.py +8 -7
- machineconfig/scripts/python/helpers_croshell/crosh.py +3 -3
- machineconfig/scripts/python/helpers_croshell/start_slidev.py +6 -7
- machineconfig/scripts/python/helpers_devops/cli_config.py +19 -25
- machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +22 -13
- machineconfig/scripts/python/helpers_devops/cli_nw.py +113 -26
- machineconfig/scripts/python/helpers_devops/cli_repos.py +37 -11
- machineconfig/scripts/python/helpers_devops/cli_self.py +84 -39
- machineconfig/scripts/python/helpers_devops/cli_share_file.py +9 -9
- machineconfig/scripts/python/helpers_devops/cli_share_server.py +13 -12
- machineconfig/scripts/python/helpers_devops/{cli_terminal.py → cli_share_terminal.py} +15 -17
- machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +4 -4
- machineconfig/scripts/python/helpers_devops/devops_status.py +7 -19
- machineconfig/scripts/python/helpers_devops/run_script.py +168 -0
- machineconfig/scripts/python/helpers_devops/themes/choose_wezterm_theme.py +1 -1
- machineconfig/scripts/python/helpers_fire_command/file_wrangler.py +2 -19
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +1 -0
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +25 -15
- machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfg +3 -3
- machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +58 -1
- machineconfig/scripts/python/helpers_navigator/command_tree.py +50 -18
- 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/helpers_repos/clone.py +0 -1
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +13 -5
- machineconfig/scripts/python/helpers_repos/entrypoint.py +2 -1
- machineconfig/scripts/python/helpers_repos/record.py +2 -1
- machineconfig/scripts/python/helpers_repos/repo_analyzer_1.py +160 -0
- machineconfig/scripts/python/helpers_repos/{count_lines.py → repo_analyzer_2.py} +113 -192
- machineconfig/scripts/python/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 +17 -26
- machineconfig/scripts/python/{machineconfig.py → mcfg_entry.py} +4 -5
- machineconfig/scripts/python/msearch.py +57 -6
- machineconfig/scripts/python/sessions.py +100 -31
- machineconfig/scripts/python/terminal.py +26 -17
- machineconfig/scripts/python/utils.py +17 -15
- machineconfig/scripts/windows/wrap_mcfg.ps1 +6 -3
- machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
- machineconfig/settings/linters/.ruff.toml +1 -1
- machineconfig/settings/shells/bash/init.sh +29 -2
- machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +1 -1
- machineconfig/settings/shells/nushell/config.nu +2 -2
- machineconfig/settings/shells/nushell/env.nu +45 -6
- machineconfig/settings/shells/nushell/init.nu +282 -95
- machineconfig/settings/shells/pwsh/init.ps1 +1 -0
- machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
- machineconfig/settings/shells/zsh/init.sh +1 -8
- 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/wt/__init__.py +0 -0
- machineconfig/settings/yazi/init.lua +49 -24
- machineconfig/settings/yazi/keymap_linux.toml +19 -4
- machineconfig/settings/yazi/keymap_windows.toml +0 -1
- machineconfig/settings/yazi/shell/yazi_cd.ps1 +29 -5
- 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 +1 -2
- machineconfig/setup_linux/apps_desktop.sh +8 -27
- machineconfig/setup_linux/web_shortcuts/interactive.sh +12 -10
- machineconfig/setup_linux/web_shortcuts/live_from_github.sh +31 -0
- machineconfig/setup_mac/__init__.py +2 -3
- 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 +12 -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 -4
- machineconfig/utils/code.py +39 -11
- machineconfig/utils/files/headers.py +2 -2
- 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 +43 -100
- 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} +36 -85
- machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +16 -59
- machineconfig/utils/io.py +0 -1
- machineconfig/utils/links.py +2 -2
- machineconfig/utils/meta.py +30 -16
- machineconfig/utils/options.py +42 -24
- machineconfig/utils/options_tv.py +119 -0
- machineconfig/utils/path_extended.py +42 -20
- machineconfig/utils/path_helper.py +75 -22
- machineconfig/utils/procs.py +1 -1
- machineconfig/utils/scheduler.py +20 -53
- machineconfig/utils/schemas/layouts/layout_types.py +1 -1
- machineconfig/utils/ssh.py +159 -418
- 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 +1 -0
- machineconfig/utils/upgrade_packages.py +6 -1
- machineconfig/utils/ve.py +12 -4
- machineconfig-8.12.dist-info/METADATA +132 -0
- {machineconfig-7.50.dist-info → machineconfig-8.12.dist-info}/RECORD +265 -215
- {machineconfig-7.50.dist-info → machineconfig-8.12.dist-info}/entry_points.txt +2 -4
- machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -41
- machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -71
- machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -12
- machineconfig/jobs/installer/powershell_scripts/openssh-server_add_key.ps1 +0 -7
- machineconfig/jobs/installer/powershell_scripts/openssh-server_copy-ssh-id.ps1 +0 -14
- machineconfig/scripts/linux/other/switch_ip +0 -20
- machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -9
- machineconfig/scripts/python/define.py +0 -31
- machineconfig/scripts/python/explore.py +0 -49
- machineconfig/scripts/python/helpers_devops/cli_utils.py +0 -246
- machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfag +0 -17
- machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfrga +0 -21
- machineconfig/scripts/python/helpers_msearch/scripts_linux/skrg +0 -4
- machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfb.ps1 +0 -3
- machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfrga.bat +0 -20
- machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +0 -17
- machineconfig/scripts/python/nw/add_ssh_key.py +0 -148
- machineconfig/scripts/python/nw/wsl_windows_transfer.py +0 -66
- 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/yazi/yazi.toml +0 -17
- machineconfig/setup_linux/apps.sh +0 -66
- machineconfig/setup_linux/others/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_mac/apps.sh +0 -73
- 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/utils/installer_utils/installer.py +0 -221
- machineconfig-7.50.dist-info/METADATA +0 -92
- /machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.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/others → jobs/scripts/bash_scripts}/android.sh +0 -0
- /machineconfig/jobs/{installer/linux_scripts → 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/scripts/python/{nw → ai/utils}/__init__.py +0 -0
- /machineconfig/scripts/python/ai/{vscode_tasks.py → utils/vscode_tasks.py} +0 -0
- /machineconfig/{settings/shells/pwsh/profile.ps1 → scripts/python/helpers_fire_command/f.py} +0 -0
- /machineconfig/{setup_windows/wt_and_pwsh → scripts/python/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/{nw → helpers_network}/wifi_conn.py +0 -0
- /machineconfig/{setup_windows/wt_and_pwsh → settings/wt}/set_wt_settings.py +0 -0
- {machineconfig-7.50.dist-info → machineconfig-8.12.dist-info}/WHEEL +0 -0
- {machineconfig-7.50.dist-info → machineconfig-8.12.dist-info}/top_level.txt +0 -0
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
|
|
3
|
-
mkdir -p $HOME/Downloads || true
|
|
4
|
-
cd $HOME/Downloads
|
|
5
|
-
curl --proto '=https' --tlsv1.2 -sSf "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip" -o "q.zip"
|
|
6
|
-
unzip q.zip
|
|
7
|
-
./q/install.sh # goes to ~/.local/bin.
|
|
8
|
-
rm q.zip
|
|
9
|
-
rm -rfd q
|
|
3
|
+
# mkdir -p $HOME/Downloads || true
|
|
4
|
+
# cd $HOME/Downloads
|
|
5
|
+
# curl --proto '=https' --tlsv1.2 -sSf "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip" -o "q.zip"
|
|
6
|
+
# unzip q.zip
|
|
7
|
+
# ./q/install.sh # goes to ~/.local/bin.
|
|
8
|
+
# rm q.zip
|
|
9
|
+
# rm -rfd q
|
|
10
|
+
|
|
11
|
+
# This is a clean installation that inloves only binary movement, no bashrc manipulation.
|
|
12
|
+
devops install "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip"
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
GUI = [
|
|
3
|
+
"brave",
|
|
4
|
+
"code",
|
|
5
|
+
"git",
|
|
6
|
+
# "wezterm", # needs admin
|
|
7
|
+
]
|
|
2
8
|
|
|
3
9
|
# AI/LLM Tools - AI-powered coding and chat assistants
|
|
4
10
|
AGENTS = [
|
|
@@ -8,7 +14,6 @@ AGENTS = [
|
|
|
8
14
|
"gemini",
|
|
9
15
|
"crush",
|
|
10
16
|
"opencode-ai",
|
|
11
|
-
"ollama",
|
|
12
17
|
"chatgpt",
|
|
13
18
|
"mods",
|
|
14
19
|
"q",
|
|
@@ -18,6 +23,9 @@ AGENTS = [
|
|
|
18
23
|
"kilocode",
|
|
19
24
|
"cline",
|
|
20
25
|
"auggie",
|
|
26
|
+
# "codex",
|
|
27
|
+
# "gorilla",
|
|
28
|
+
# "ollama",
|
|
21
29
|
]
|
|
22
30
|
|
|
23
31
|
|
|
@@ -55,9 +63,14 @@ PACKAGES_CODE_EDITORS = [
|
|
|
55
63
|
# Database Tools - Database clients and visualizers
|
|
56
64
|
PACKAGES_DATABASE = [
|
|
57
65
|
"SqliteBrowser",
|
|
66
|
+
"sqlite3",
|
|
67
|
+
"redis",
|
|
68
|
+
"redis-cli",
|
|
69
|
+
"postgresql-client",
|
|
70
|
+
"duckdb",
|
|
58
71
|
"DBeaver",
|
|
59
72
|
"rainfrog",
|
|
60
|
-
|
|
73
|
+
|
|
61
74
|
]
|
|
62
75
|
|
|
63
76
|
|
|
@@ -137,21 +150,23 @@ PACKAGES_PRODUCTIVITY = [
|
|
|
137
150
|
"hx",
|
|
138
151
|
]
|
|
139
152
|
|
|
140
|
-
|
|
141
|
-
|
|
153
|
+
|
|
154
|
+
# sudo nala install cowsay -y || true
|
|
155
|
+
# sudo nala install lolcat -y || true
|
|
156
|
+
# sudo nala install boxes -y || true
|
|
157
|
+
# sudo nala install figlet -y || true
|
|
158
|
+
# sudo nala install fortune -y || true
|
|
159
|
+
# sudo nala install toilet -y || true
|
|
160
|
+
TERMINAL_EYE_CANDY = [
|
|
142
161
|
"lolcatjs",
|
|
143
162
|
"figlet-cli",
|
|
144
163
|
"boxes",
|
|
145
|
-
"
|
|
146
|
-
"
|
|
147
|
-
"
|
|
148
|
-
"
|
|
149
|
-
"
|
|
150
|
-
"
|
|
151
|
-
"obsidian",
|
|
152
|
-
"istio",
|
|
153
|
-
"cointop",
|
|
154
|
-
"nnn",
|
|
164
|
+
# "transmission",
|
|
165
|
+
# "bytehound",
|
|
166
|
+
# "xcrawl3r",
|
|
167
|
+
# "obsidian",
|
|
168
|
+
# "istio",
|
|
169
|
+
# "cointop",
|
|
155
170
|
]
|
|
156
171
|
|
|
157
172
|
|
|
@@ -179,6 +194,7 @@ PACKAGES_FILE = [
|
|
|
179
194
|
"winget",
|
|
180
195
|
"fd",
|
|
181
196
|
"fzf",
|
|
197
|
+
"tv",
|
|
182
198
|
"broot",
|
|
183
199
|
"rg",
|
|
184
200
|
"rga",
|
|
@@ -190,6 +206,7 @@ PACKAGES_FILE = [
|
|
|
190
206
|
# "xplr",
|
|
191
207
|
# "joshuto",
|
|
192
208
|
# "lf",
|
|
209
|
+
# "nnn",
|
|
193
210
|
"yazi",
|
|
194
211
|
"tere",
|
|
195
212
|
# "exa",
|
|
@@ -207,6 +224,7 @@ PACKAGES_TERMINAL_SHELL = [
|
|
|
207
224
|
"zellij",
|
|
208
225
|
"mprocs",
|
|
209
226
|
"mcfly",
|
|
227
|
+
"atuin",
|
|
210
228
|
"starship",
|
|
211
229
|
"gotty",
|
|
212
230
|
"ttyd",
|
|
@@ -216,74 +234,24 @@ PACKAGES_TERMINAL_SHELL = [
|
|
|
216
234
|
|
|
217
235
|
|
|
218
236
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
"
|
|
223
|
-
"
|
|
224
|
-
"
|
|
225
|
-
"
|
|
226
|
-
"
|
|
227
|
-
"
|
|
228
|
-
"
|
|
229
|
-
"
|
|
230
|
-
"
|
|
231
|
-
"
|
|
232
|
-
"
|
|
233
|
-
"
|
|
234
|
-
"
|
|
235
|
-
"
|
|
236
|
-
"
|
|
237
|
-
"
|
|
238
|
-
"MISC_DEV",
|
|
239
|
-
"SYSTEM_MONITORS",
|
|
240
|
-
"FILE_TOOLS",
|
|
241
|
-
"FILE_VIEWERS",
|
|
242
|
-
"SEARCH",
|
|
243
|
-
"TERMINAL_SHELL",
|
|
244
|
-
"CLOUD_UTILS",
|
|
245
|
-
"WEB_TERMINAL",
|
|
246
|
-
]
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
# Main ESSENTIAL package list - combines all subgroups
|
|
251
|
-
ESSENTIAL = [
|
|
252
|
-
*PACKAGES_CODE_ANALYSIS,
|
|
253
|
-
*PACKAGES_SYSTEM_MONITORS,
|
|
254
|
-
*PACKAGES_TERMINAL_SHELL,
|
|
255
|
-
*PACKAGES_FILE,
|
|
256
|
-
]
|
|
257
|
-
DEV = [
|
|
258
|
-
*PACKAGES_TERMINAL_EMULATORS,
|
|
259
|
-
*PACKAGES_BROWSERS,
|
|
260
|
-
*PACKAGES_CODE_EDITORS,
|
|
261
|
-
*PACKAGES_DATABASE,
|
|
262
|
-
*PACKAGES_MEDIA,
|
|
263
|
-
*PACKAGES_FILE_SHARING,
|
|
264
|
-
*PACKAGES_DEV_UTILS,
|
|
265
|
-
*PACKAGES_CODE_ANALYSIS,
|
|
266
|
-
*PACKAGES_PRODUCTIVITY,
|
|
267
|
-
*PACKAGES_MISC_DEV,
|
|
268
|
-
]
|
|
269
|
-
|
|
270
|
-
PACKAGE_GROUP2NAMES: dict[PACKAGE_GROUPS, list[str]] = {
|
|
271
|
-
"ESSENTIAL": ESSENTIAL,
|
|
272
|
-
"DEV": DEV,
|
|
273
|
-
"AGENTS": AGENTS,
|
|
274
|
-
"TERMINAL_EMULATORS": PACKAGES_TERMINAL_EMULATORS,
|
|
275
|
-
"BROWSERS": PACKAGES_BROWSERS,
|
|
276
|
-
"CODE_EDITORS": PACKAGES_CODE_EDITORS,
|
|
277
|
-
"DATABASE": PACKAGES_DATABASE,
|
|
278
|
-
"MEDIA": PACKAGES_MEDIA,
|
|
279
|
-
"FILE_SHARING": PACKAGES_FILE_SHARING,
|
|
280
|
-
"DEV_UTILS": PACKAGES_DEV_UTILS,
|
|
281
|
-
"CODE_ANALYSIS": PACKAGES_CODE_ANALYSIS,
|
|
282
|
-
"PRODUCTIVITY": PACKAGES_PRODUCTIVITY,
|
|
283
|
-
"MISC_DEV": PACKAGES_MISC_DEV,
|
|
284
|
-
"SYSTEM_MONITORS": PACKAGES_SYSTEM_MONITORS,
|
|
285
|
-
"SEARCH": PACKAGES_FILE,
|
|
286
|
-
"TERMINAL_SHELL": PACKAGES_TERMINAL_SHELL,
|
|
237
|
+
PACKAGE_GROUP2NAMES: dict[str, list[str]] = {
|
|
238
|
+
"sysabc": ["sysabc"],
|
|
239
|
+
"termabc": [*PACKAGES_CODE_ANALYSIS, *PACKAGES_SYSTEM_MONITORS, *PACKAGES_TERMINAL_SHELL, *PACKAGES_FILE,],
|
|
240
|
+
"gui": GUI,
|
|
241
|
+
"dev": [*PACKAGES_TERMINAL_EMULATORS, *PACKAGES_BROWSERS, *PACKAGES_CODE_EDITORS, *PACKAGES_DATABASE, *PACKAGES_MEDIA, *PACKAGES_FILE_SHARING, *PACKAGES_DEV_UTILS, *PACKAGES_CODE_ANALYSIS, *PACKAGES_PRODUCTIVITY, *TERMINAL_EYE_CANDY,],
|
|
242
|
+
"dev-utils": PACKAGES_DEV_UTILS,
|
|
243
|
+
"term-eye-candy": TERMINAL_EYE_CANDY,
|
|
244
|
+
"agents": AGENTS,
|
|
245
|
+
"terminal-emulator": PACKAGES_TERMINAL_EMULATORS,
|
|
246
|
+
"shell": PACKAGES_TERMINAL_SHELL,
|
|
247
|
+
"browsers": PACKAGES_BROWSERS,
|
|
248
|
+
"code-editors": PACKAGES_CODE_EDITORS,
|
|
249
|
+
"code-analysis": PACKAGES_CODE_ANALYSIS,
|
|
250
|
+
"db": PACKAGES_DATABASE,
|
|
251
|
+
"media": PACKAGES_MEDIA,
|
|
252
|
+
"file-sharing": PACKAGES_FILE_SHARING,
|
|
253
|
+
"productivity": PACKAGES_PRODUCTIVITY,
|
|
254
|
+
"sys-monitor": PACKAGES_SYSTEM_MONITORS,
|
|
255
|
+
"search": PACKAGES_FILE,
|
|
287
256
|
}
|
|
288
257
|
|
|
289
|
-
_ = Union, Literal
|
|
@@ -6,6 +6,19 @@ $objShell = New-Object -ComObject Shell.Application
|
|
|
6
6
|
$objFolder = $objShell.Namespace($FONTS)
|
|
7
7
|
$Fontdir = Get-ChildItem -Path $Path -File
|
|
8
8
|
|
|
9
|
+
$invalidCharPattern = "[{0}]" -f ([Regex]::Escape(([string]::Join('', [System.IO.Path]::GetInvalidFileNameChars()))))
|
|
10
|
+
|
|
11
|
+
function Get-FontBaseNameSafe {
|
|
12
|
+
param([string]$Input)
|
|
13
|
+
if ([string]::IsNullOrWhiteSpace($Input)) { return "" }
|
|
14
|
+
$candidate = ($Input -split ',')[0].Trim()
|
|
15
|
+
try { return [System.IO.Path]::GetFileNameWithoutExtension($candidate) }
|
|
16
|
+
catch {
|
|
17
|
+
$sanitized = [Regex]::Replace($candidate, $invalidCharPattern, '')
|
|
18
|
+
return ($sanitized -replace '\\.[^.]+$')
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
9
22
|
# Normalization helper: remove spaces, underscores, hyphens, 'nerd', 'font', and collapse 'nf' for broad matching
|
|
10
23
|
function Normalize-FontName {
|
|
11
24
|
param([string]$Name)
|
|
@@ -17,47 +30,129 @@ function Normalize-FontName {
|
|
|
17
30
|
return $n
|
|
18
31
|
}
|
|
19
32
|
|
|
33
|
+
function Get-FontIdentityForms {
|
|
34
|
+
param([string]$Name)
|
|
35
|
+
if ([string]::IsNullOrWhiteSpace($Name)) { return @() }
|
|
36
|
+
$normalized = Normalize-FontName $Name
|
|
37
|
+
if ([string]::IsNullOrWhiteSpace($normalized)) { return @() }
|
|
38
|
+
|
|
39
|
+
$forms = @()
|
|
40
|
+
$forms += $normalized
|
|
41
|
+
|
|
42
|
+
$stylePattern = '(regular|italic|oblique|bold|bolditalic|semibold|semilight|light|extrabold|extralight|medium|thin|black|book|ultra|heavy|demi|retina|condensed|narrow|windowscompatible|complete|windowscomp|compatibility)+$'
|
|
43
|
+
$stem = $normalized
|
|
44
|
+
while ($stem -match $stylePattern) {
|
|
45
|
+
$stem = [Regex]::Replace($stem, $stylePattern, '')
|
|
46
|
+
if ([string]::IsNullOrWhiteSpace($stem)) { break }
|
|
47
|
+
$forms += $stem
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
$stemForVariants = $stem
|
|
51
|
+
foreach ($tail in @('mono', 'propo')) {
|
|
52
|
+
$tmp = $stemForVariants
|
|
53
|
+
while (-not [string]::IsNullOrWhiteSpace($tmp) -and $tmp.EndsWith($tail)) {
|
|
54
|
+
$tmp = $tmp.Substring(0, $tmp.Length - $tail.Length)
|
|
55
|
+
if ([string]::IsNullOrWhiteSpace($tmp)) { break }
|
|
56
|
+
$forms += $tmp
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return ($forms | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } | Select-Object -Unique)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function Test-FontFormsOverlapFuzzy {
|
|
64
|
+
param(
|
|
65
|
+
[string[]]$CandidateForms,
|
|
66
|
+
[string[]]$ExistingForms
|
|
67
|
+
)
|
|
68
|
+
foreach ($candidate in $CandidateForms) {
|
|
69
|
+
if ([string]::IsNullOrWhiteSpace($candidate)) { continue }
|
|
70
|
+
foreach ($existing in $ExistingForms) {
|
|
71
|
+
if ([string]::IsNullOrWhiteSpace($existing)) { continue }
|
|
72
|
+
if ($existing.Contains($candidate) -or $candidate.Contains($existing)) { return $true }
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return $false
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function Merge-UniqueForms {
|
|
79
|
+
param(
|
|
80
|
+
[string[]]$Existing,
|
|
81
|
+
[string[]]$Additional
|
|
82
|
+
)
|
|
83
|
+
return (($Existing + $Additional) | Where-Object { -not [string]::IsNullOrWhiteSpace($_) } | Select-Object -Unique)
|
|
84
|
+
}
|
|
85
|
+
|
|
20
86
|
# Cache installed font basenames once (raw + normalized map)
|
|
21
87
|
$installedFontFiles = Get-ChildItem C:\Windows\Fonts -File
|
|
22
|
-
$installedFonts = @
|
|
23
|
-
foreach ($f in $installedFontFiles) {
|
|
88
|
+
$installedFonts = @()
|
|
89
|
+
foreach ($f in $installedFontFiles) {
|
|
90
|
+
$installedFonts = Merge-UniqueForms $installedFonts (Get-FontIdentityForms $f.BaseName)
|
|
91
|
+
}
|
|
24
92
|
|
|
25
|
-
|
|
93
|
+
$relatedInstalled = $installedFonts | Where-Object { $_ -match 'caskaydiacove|cascadiacode' } | Sort-Object | Get-Unique
|
|
94
|
+
Write-Host "Existing related fonts detected:" $relatedInstalled -ForegroundColor DarkGray
|
|
95
|
+
|
|
96
|
+
$registryFonts = @()
|
|
97
|
+
$fontReg = $null
|
|
98
|
+
try {
|
|
99
|
+
$fontReg = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts' -ErrorAction Stop
|
|
100
|
+
} catch {
|
|
101
|
+
Write-Host "Registry font list unavailable: $($_.Exception.Message)" -ForegroundColor DarkYellow
|
|
102
|
+
}
|
|
103
|
+
if ($null -ne $fontReg) {
|
|
104
|
+
foreach ($prop in $fontReg.PSObject.Properties) {
|
|
105
|
+
$val = ($prop.Value | Out-String).Trim()
|
|
106
|
+
$nm = ($prop.Name | Out-String).Trim()
|
|
107
|
+
$registryFonts = Merge-UniqueForms $registryFonts (Get-FontIdentityForms (Get-FontBaseNameSafe $val))
|
|
108
|
+
$registryFonts = Merge-UniqueForms $registryFonts (Get-FontIdentityForms (Get-FontBaseNameSafe $nm))
|
|
109
|
+
}
|
|
110
|
+
}
|
|
26
111
|
|
|
27
112
|
foreach ($File in $Fontdir) {
|
|
28
|
-
if ($File.Name -
|
|
29
|
-
$candidateRaw = $File.BaseName
|
|
30
|
-
$candidateNorm = Normalize-FontName $candidateRaw
|
|
31
|
-
|
|
32
|
-
# 1. Exact file existence check (handles .ttf/.otf pairs) before invoking Shell CopyHere.
|
|
33
|
-
$destFile = Join-Path -Path 'C:\Windows\Fonts' -ChildPath $File.Name
|
|
34
|
-
if (Test-Path -LiteralPath $destFile) { Write-Host "Skip (file exists) $($File.Name)" -ForegroundColor Green; continue }
|
|
35
|
-
|
|
36
|
-
# 2. Registry check: Fonts are registered under HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
|
|
37
|
-
try {
|
|
38
|
-
$fontReg = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts' -ErrorAction Stop
|
|
39
|
-
$regMatch = $false
|
|
40
|
-
foreach ($prop in $fontReg.PSObject.Properties) {
|
|
41
|
-
$val = ($prop.Value | Out-String).Trim()
|
|
42
|
-
$nm = ($prop.Name | Out-String).Trim()
|
|
43
|
-
$valNorm = Normalize-FontName ( [System.IO.Path]::GetFileNameWithoutExtension($val) )
|
|
44
|
-
$nmNorm = Normalize-FontName $nm
|
|
45
|
-
if ($valNorm -eq $candidateNorm -or $nmNorm -eq $candidateNorm -or $nmNorm -match [Regex]::Escape($candidateNorm)) { $regMatch = $true; break }
|
|
46
|
-
}
|
|
47
|
-
if ($regMatch) {
|
|
48
|
-
Write-Host "Skip (registry) $($File.Name)" -ForegroundColor Green
|
|
49
|
-
continue
|
|
50
|
-
}
|
|
51
|
-
} catch {
|
|
52
|
-
Write-Host "Registry font query failed: $($_.Exception.Message) (continuing)" -ForegroundColor DarkYellow
|
|
53
|
-
}
|
|
113
|
+
if ($File.Name -match 'pfb$') { continue }
|
|
54
114
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
115
|
+
$candidateForms = Get-FontIdentityForms $File.BaseName
|
|
116
|
+
if ($candidateForms.Count -eq 0) { $candidateForms = @(Normalize-FontName $File.BaseName) }
|
|
117
|
+
$candidateNorm = if ($candidateForms.Count -gt 0) { $candidateForms[0] } else { '' }
|
|
58
118
|
|
|
59
|
-
|
|
60
|
-
|
|
119
|
+
# 1. Exact file existence check (handles .ttf/.otf pairs) before invoking Shell CopyHere.
|
|
120
|
+
$destFile = Join-Path -Path 'C:\Windows\Fonts' -ChildPath $File.Name
|
|
121
|
+
if (Test-Path -LiteralPath $destFile) {
|
|
122
|
+
Write-Host "Skip (file exists) $($File.Name)" -ForegroundColor Green
|
|
123
|
+
$installedFonts = Merge-UniqueForms $installedFonts $candidateForms
|
|
124
|
+
continue
|
|
61
125
|
}
|
|
126
|
+
|
|
127
|
+
# 2. Registry check: Fonts are registered under HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
|
|
128
|
+
if ($registryFonts.Count -gt 0) {
|
|
129
|
+
$exactRegMatch = $candidateForms | Where-Object { $registryFonts -contains $_ }
|
|
130
|
+
if ($exactRegMatch.Count -gt 0) {
|
|
131
|
+
Write-Host "Skip (registry) $($File.Name)" -ForegroundColor Green
|
|
132
|
+
$installedFonts = Merge-UniqueForms $installedFonts $candidateForms
|
|
133
|
+
continue
|
|
134
|
+
}
|
|
135
|
+
if (Test-FontFormsOverlapFuzzy $candidateForms $registryFonts) {
|
|
136
|
+
Write-Host "Skip (registry family) $($File.Name)" -ForegroundColor Green
|
|
137
|
+
$installedFonts = Merge-UniqueForms $installedFonts $candidateForms
|
|
138
|
+
continue
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
# 3. Original heuristic set: in-memory list
|
|
143
|
+
if (($candidateForms | Where-Object { $installedFonts -contains $_ }).Count -gt 0) {
|
|
144
|
+
Write-Host "Skip (installed map) $($File.Name)" -ForegroundColor Green
|
|
145
|
+
$installedFonts = Merge-UniqueForms $installedFonts $candidateForms
|
|
146
|
+
continue
|
|
147
|
+
}
|
|
148
|
+
if (Test-FontFormsOverlapFuzzy $candidateForms $installedFonts) {
|
|
149
|
+
Write-Host "Skip (installed family) $($File.Name)" -ForegroundColor Green
|
|
150
|
+
$installedFonts = Merge-UniqueForms $installedFonts $candidateForms
|
|
151
|
+
continue
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
Write-Host "Installing font (no matches) $($File.Name) | norm=$candidateNorm" -ForegroundColor Yellow
|
|
155
|
+
$objFolder.CopyHere($File.FullName)
|
|
156
|
+
$installedFonts = Merge-UniqueForms $installedFonts $candidateForms
|
|
62
157
|
}
|
|
63
158
|
Write-Host "Font installation script completed." -ForegroundColor Cyan
|
|
@@ -5,7 +5,7 @@ from typing import Optional
|
|
|
5
5
|
|
|
6
6
|
from rich.console import Console
|
|
7
7
|
from rich.panel import Panel
|
|
8
|
-
from machineconfig.utils.installer_utils.
|
|
8
|
+
from machineconfig.utils.installer_utils.installer_locator_utils import WINDOWS_INSTALL_PATH
|
|
9
9
|
|
|
10
10
|
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
11
11
|
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
@@ -40,7 +40,7 @@ def main(installer_data: InstallerData, version: Optional[str] = None) -> None:
|
|
|
40
40
|
)
|
|
41
41
|
|
|
42
42
|
installer = Installer(installer_data=installer_data_modified)
|
|
43
|
-
downloaded, _version_to_be_installed = installer.
|
|
43
|
+
downloaded, _version_to_be_installed = installer.binary_download(version=version)
|
|
44
44
|
decomp_path = downloaded.decompress()
|
|
45
45
|
from pathlib import Path
|
|
46
46
|
for item in decomp_path.rglob("*"):
|
|
@@ -27,7 +27,7 @@ def main(installer_data: InstallerData, version: Optional[str]) -> None:
|
|
|
27
27
|
console.print("🪟 Installing Brave Browser on Windows using winget...", style="bold")
|
|
28
28
|
program = """
|
|
29
29
|
|
|
30
|
-
winget install --
|
|
30
|
+
winget install --no-upgrade --name "Brave" --Id "Brave.Brave" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
31
31
|
|
|
32
32
|
"""
|
|
33
33
|
elif platform.system() in ["Linux", "Darwin"]:
|
|
@@ -70,9 +70,11 @@ winget install --Name "Brave Browser" --Id Brave.Brave --source winget --accept-
|
|
|
70
70
|
)
|
|
71
71
|
|
|
72
72
|
console.print("🔄 EXECUTING | Running Brave Browser installation...", style="bold yellow")
|
|
73
|
+
from machineconfig.utils.code import print_code, run_shell_script
|
|
73
74
|
try:
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
print_code(code=program, lexer="shell", desc="Installation Script Preview")
|
|
76
|
+
run_shell_script(program)
|
|
77
|
+
console.print("✅ Installation completed successfully!", style="bold green")
|
|
76
78
|
except subprocess.CalledProcessError as e:
|
|
77
79
|
console.print(f"❌ Installation failed with exit code {e.returncode}", style="bold red")
|
|
78
80
|
raise
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
from typing import Optional
|
|
3
|
+
import platform
|
|
4
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def main(installer_data: InstallerData, version: Optional[str]):
|
|
8
|
+
_ = installer_data, version
|
|
9
|
+
system = platform.system()
|
|
10
|
+
if system == "Windows":
|
|
11
|
+
raise NotImplementedError("Installer is not yet implemented for Windows.")
|
|
12
|
+
elif system == "Linux":
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
import machineconfig.jobs.installer as module
|
|
15
|
+
program = Path(module.__file__).parent.joinpath("linux_scripts/cloudflare_warp_cli.sh").read_text(encoding="utf-8")
|
|
16
|
+
elif system == "Darwin":
|
|
17
|
+
program = "brew install --cask cloudflare-warp"
|
|
18
|
+
else:
|
|
19
|
+
raise NotImplementedError(f"Unsupported platform: {system}")
|
|
20
|
+
import subprocess
|
|
21
|
+
subprocess.run(program, shell=True, check=True)
|
|
22
|
+
return f"Cloudflare WARP CLI installed successfully on {system}."
|
|
23
|
+
|
|
@@ -32,7 +32,10 @@ def main(installer_data: InstallerData, version: Optional[str] = None) -> None:
|
|
|
32
32
|
install_script = """brew install --cask visual-studio-code"""
|
|
33
33
|
elif platform.system() == "Windows":
|
|
34
34
|
console.print("🪟 Installing VS Code on Windows using winget...", style="bold")
|
|
35
|
-
install_script = """
|
|
35
|
+
install_script = """
|
|
36
|
+
winget install --no-upgrade --name "Microsoft Visual Studio Code" --Id "Microsoft.VisualStudioCode" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
37
|
+
|
|
38
|
+
"""
|
|
36
39
|
else:
|
|
37
40
|
error_msg = f"Unsupported platform: {platform.system()}"
|
|
38
41
|
console.print(
|
|
@@ -25,6 +25,6 @@ installer_data: InstallerData = {
|
|
|
25
25
|
|
|
26
26
|
def main(installer_data: InstallerData, version: Optional[str]) -> None:
|
|
27
27
|
_ = version
|
|
28
|
-
from machineconfig.utils.
|
|
28
|
+
from machineconfig.utils.installer_utils.installer_runner import Installer
|
|
29
29
|
installer = Installer(installer_data)
|
|
30
30
|
installer.install(version=None)
|
|
@@ -3,17 +3,18 @@ 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",
|
|
@@ -44,7 +45,7 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
|
|
|
44
45
|
inst = Installer(installer_data=config_dict_copy)
|
|
45
46
|
|
|
46
47
|
print("\n📥 [Step 1/5] Downloading Helix editor...")
|
|
47
|
-
downloaded, _version_to_be_installed = inst.
|
|
48
|
+
downloaded, _version_to_be_installed = inst.binary_download(version=version)
|
|
48
49
|
print(" ✨ Download complete.")
|
|
49
50
|
|
|
50
51
|
print("\n🔍 [Step 2/5] Locating executable and components...")
|
|
@@ -58,6 +59,7 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
|
|
|
58
59
|
raise FileNotFoundError(f"Could not find 'hx' executable in {downloaded.name}")
|
|
59
60
|
|
|
60
61
|
assert len(hx_file_search) == 1, f"Expected 1 'hx' executable, found {len(hx_file_search)}"
|
|
62
|
+
|
|
61
63
|
hx_file = hx_file_search[0]
|
|
62
64
|
contrib = hx_file.parent / "contrib"
|
|
63
65
|
runtime = contrib.parent / "runtime"
|
|
@@ -101,11 +103,12 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
|
|
|
101
103
|
if not child.exists():
|
|
102
104
|
continue
|
|
103
105
|
if child.name == "grammars":
|
|
104
|
-
# copy only the
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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)
|
|
109
112
|
else:
|
|
110
113
|
# copy the whole child (file or directory) into target_runtime
|
|
111
114
|
# for directories, copy will create target_runtime/<child.name>
|
|
@@ -147,10 +150,11 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
|
|
|
147
150
|
if not child.exists():
|
|
148
151
|
continue
|
|
149
152
|
if child.name == "grammars":
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
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)
|
|
154
158
|
else:
|
|
155
159
|
try:
|
|
156
160
|
child.copy(folder=target_runtime, overwrite=True)
|
|
@@ -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
|