machineconfig 5.15__py3-none-any.whl → 7.98__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- machineconfig/__init__.py +0 -28
- machineconfig/cluster/remote/cloud_manager.py +1 -1
- machineconfig/cluster/remote/distribute.py +0 -1
- machineconfig/cluster/remote/file_manager.py +0 -2
- machineconfig/cluster/remote/script_execution.py +0 -1
- machineconfig/cluster/sessions_managers/{utils → helpers}/enhanced_command_runner.py +4 -6
- machineconfig/cluster/sessions_managers/utils/load_balancer.py +1 -1
- machineconfig/cluster/sessions_managers/utils/maker.py +69 -0
- machineconfig/cluster/sessions_managers/wt_local.py +114 -289
- machineconfig/cluster/sessions_managers/wt_local_manager.py +70 -210
- machineconfig/cluster/sessions_managers/wt_remote.py +51 -43
- machineconfig/cluster/sessions_managers/wt_remote_manager.py +52 -198
- machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +6 -19
- machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
- machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
- machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +4 -2
- machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
- machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
- machineconfig/cluster/sessions_managers/zellij_local.py +81 -375
- machineconfig/cluster/sessions_managers/zellij_local_manager.py +25 -170
- machineconfig/cluster/sessions_managers/zellij_remote.py +40 -41
- machineconfig/cluster/sessions_managers/zellij_remote_manager.py +16 -12
- machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +4 -8
- machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +5 -20
- machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +3 -9
- machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +3 -1
- machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper.py +298 -0
- machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_restart.py +77 -0
- machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_with_panes.py +228 -0
- machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_manager_helper.py +165 -0
- machineconfig/jobs/{python → installer}/check_installations.py +2 -3
- machineconfig/jobs/installer/custom/boxes.py +61 -0
- machineconfig/jobs/installer/custom/hx.py +76 -19
- machineconfig/jobs/installer/custom/yazi.py +119 -0
- machineconfig/jobs/installer/custom_dev/alacritty.py +4 -4
- machineconfig/jobs/installer/custom_dev/brave.py +5 -9
- machineconfig/jobs/installer/custom_dev/cloudflare_warp_cli.py +23 -0
- machineconfig/jobs/installer/custom_dev/code.py +4 -1
- machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +30 -0
- machineconfig/jobs/installer/custom_dev/nerdfont.py +1 -1
- machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +33 -28
- machineconfig/jobs/installer/custom_dev/sysabc.py +139 -0
- machineconfig/jobs/installer/custom_dev/wezterm.py +2 -19
- machineconfig/jobs/installer/custom_dev/winget.py +10 -14
- machineconfig/jobs/installer/installer_data.json +1487 -229
- machineconfig/jobs/installer/linux_scripts/brave.sh +4 -14
- machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +5 -17
- machineconfig/jobs/installer/linux_scripts/docker.sh +5 -17
- machineconfig/jobs/installer/linux_scripts/docker_start.sh +6 -14
- machineconfig/jobs/installer/linux_scripts/edge.sh +3 -11
- machineconfig/jobs/{linux/msc → installer/linux_scripts}/lid.sh +2 -8
- machineconfig/jobs/installer/linux_scripts/nerdfont.sh +5 -17
- machineconfig/jobs/{linux/msc → installer/linux_scripts}/network.sh +2 -8
- machineconfig/jobs/installer/linux_scripts/q.sh +10 -6
- machineconfig/jobs/installer/linux_scripts/redis.sh +6 -17
- machineconfig/jobs/installer/linux_scripts/vscode.sh +5 -17
- machineconfig/jobs/installer/linux_scripts/wezterm.sh +4 -12
- machineconfig/jobs/installer/package_groups.py +106 -177
- machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
- machineconfig/logger.py +0 -1
- machineconfig/profile/backup.toml +49 -0
- machineconfig/profile/bash_shell_profiles.md +11 -0
- machineconfig/profile/create_helper.py +62 -0
- machineconfig/profile/create_links.py +288 -0
- machineconfig/profile/create_links_export.py +100 -0
- machineconfig/profile/create_shell_profile.py +147 -0
- machineconfig/profile/mapper.toml +263 -0
- machineconfig/scripts/__init__.py +0 -4
- machineconfig/scripts/linux/{share_cloud.sh → other/share_cloud.sh} +14 -25
- machineconfig/scripts/linux/wrap_mcfg +46 -0
- machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
- machineconfig/scripts/python/agents.py +123 -117
- machineconfig/scripts/python/ai/initai.py +3 -28
- machineconfig/scripts/python/ai/scripts/command_runner.ps1 +33 -0
- machineconfig/scripts/python/ai/scripts/command_runner.sh +9 -0
- machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +17 -18
- machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +17 -18
- machineconfig/scripts/python/ai/solutions/_shared.py +9 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Thinking-Beast-Mode.chatmode.md → agents/Thinking-Beast-Mode.agent.md} +0 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md → agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md} +0 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/deepResearch.chatmode.md → agents/deepResearch.agent.md} +2 -2
- machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +5 -5
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +5 -1
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/watch_exec.prompt.md +20 -0
- machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +16 -0
- machineconfig/scripts/python/ai/solutions/generic.py +28 -5
- machineconfig/scripts/python/ai/utils/generate_files.py +348 -0
- machineconfig/scripts/python/ai/utils/vscode_tasks.py +37 -0
- machineconfig/scripts/python/cloud.py +29 -0
- machineconfig/scripts/python/croshell.py +137 -113
- machineconfig/scripts/python/devops.py +61 -101
- machineconfig/scripts/python/devops_navigator.py +6 -0
- machineconfig/scripts/python/env_manager/__init__.py +1 -0
- machineconfig/scripts/python/env_manager/env_manager_tui.py +204 -0
- machineconfig/scripts/python/env_manager/path_manager_backend.py +47 -0
- machineconfig/scripts/python/env_manager/path_manager_tui.py +228 -0
- machineconfig/scripts/python/fire_jobs.py +110 -150
- machineconfig/scripts/python/ftpx.py +51 -24
- machineconfig/scripts/python/helpers/ast_search.py +74 -0
- machineconfig/scripts/python/helpers/qr_code.py +166 -0
- machineconfig/scripts/python/helpers/repo_rag.py +325 -0
- machineconfig/scripts/python/helpers/run_py_script.py +79 -0
- machineconfig/scripts/python/helpers/symantic_search.py +25 -0
- machineconfig/scripts/python/helpers/tmp_py_scripts/a.py +26 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.json +14 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +39 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_cursor_agents.py +22 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +55 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
- machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py +126 -0
- machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +41 -0
- machineconfig/scripts/python/helpers_agents/templates/prompt.txt +10 -0
- machineconfig/scripts/python/helpers_agents/templates/template.ps1 +14 -0
- machineconfig/scripts/python/helpers_agents/templates/template.sh +32 -0
- machineconfig/scripts/python/{cloud_copy.py → helpers_cloud/cloud_copy.py} +30 -23
- machineconfig/scripts/python/{cloud_mount.py → helpers_cloud/cloud_mount.py} +29 -35
- machineconfig/scripts/python/{cloud_sync.py → helpers_cloud/cloud_sync.py} +12 -18
- machineconfig/scripts/python/{helpers → helpers_cloud}/helpers2.py +1 -1
- machineconfig/scripts/python/helpers_croshell/crosh.py +39 -0
- machineconfig/scripts/python/{start_slidev.py → helpers_croshell/start_slidev.py} +8 -9
- machineconfig/scripts/python/helpers_devops/cli_config.py +105 -0
- machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +89 -0
- machineconfig/scripts/python/helpers_devops/cli_data.py +25 -0
- machineconfig/scripts/python/helpers_devops/cli_nw.py +214 -0
- machineconfig/scripts/python/helpers_devops/cli_repos.py +215 -0
- machineconfig/scripts/python/helpers_devops/cli_self.py +172 -0
- machineconfig/scripts/python/helpers_devops/cli_share_file.py +137 -0
- machineconfig/scripts/python/helpers_devops/cli_share_server.py +142 -0
- machineconfig/scripts/python/{share_terminal.py → helpers_devops/cli_share_terminal.py} +45 -35
- machineconfig/scripts/python/helpers_devops/cli_utils.py +96 -0
- machineconfig/scripts/python/{devops_backup_retrieve.py → helpers_devops/devops_backup_retrieve.py} +7 -10
- machineconfig/scripts/python/helpers_devops/devops_status.py +499 -0
- machineconfig/scripts/python/{devops_update_repos.py → helpers_devops/devops_update_repos.py} +68 -49
- machineconfig/scripts/python/helpers_devops/themes/choose_pwsh_theme.ps1 +81 -0
- machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +3 -0
- machineconfig/scripts/python/{choose_wezterm_theme.py → helpers_devops/themes/choose_wezterm_theme.py} +3 -3
- machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
- machineconfig/scripts/python/helpers_fire_command/f.py +0 -0
- machineconfig/scripts/python/{helpers/helpers4.py → helpers_fire_command/file_wrangler.py} +56 -20
- machineconfig/scripts/python/{fire_jobs_args_helper.py → helpers_fire_command/fire_jobs_args_helper.py} +5 -1
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +121 -0
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py +0 -0
- machineconfig/scripts/python/helpers_msearch/__init__.py +5 -0
- machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfg +3 -3
- machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +59 -0
- machineconfig/scripts/python/helpers_navigator/__init__.py +20 -0
- machineconfig/scripts/python/helpers_navigator/command_builder.py +111 -0
- machineconfig/scripts/python/helpers_navigator/command_detail.py +44 -0
- machineconfig/scripts/python/helpers_navigator/command_tree.py +620 -0
- machineconfig/scripts/python/helpers_navigator/data_models.py +28 -0
- machineconfig/scripts/python/helpers_navigator/main_app.py +272 -0
- machineconfig/scripts/python/helpers_navigator/search_bar.py +15 -0
- machineconfig/scripts/python/helpers_network/__init__.py +0 -0
- machineconfig/scripts/python/helpers_network/address.py +132 -0
- machineconfig/scripts/python/{devops_add_identity.py → helpers_network/devops_add_identity.py} +0 -2
- machineconfig/scripts/python/helpers_network/devops_add_ssh_key.py +153 -0
- machineconfig/scripts/{linux → python/helpers_network}/mount_nfs +0 -1
- machineconfig/scripts/python/{mount_nfs.py → helpers_network/mount_nfs.py} +3 -3
- machineconfig/scripts/{linux → python/helpers_network}/mount_nw_drive +1 -2
- machineconfig/scripts/python/{mount_ssh.py → helpers_network/mount_ssh.py} +3 -3
- machineconfig/scripts/python/{onetimeshare.py → helpers_network/onetimeshare.py} +0 -1
- machineconfig/scripts/python/helpers_network/ssh_debug_linux.py +391 -0
- machineconfig/scripts/python/helpers_network/ssh_debug_windows.py +338 -0
- machineconfig/scripts/python/{wifi_conn.py → helpers_network/wifi_conn.py} +1 -53
- machineconfig/scripts/python/{wsl_windows_transfer.py → helpers_network/wsl_windows_transfer.py} +5 -4
- machineconfig/scripts/python/helpers_repos/action.py +209 -0
- machineconfig/scripts/python/helpers_repos/action_helper.py +150 -0
- machineconfig/scripts/python/{repos_helper_clone.py → helpers_repos/clone.py} +2 -3
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +218 -0
- machineconfig/scripts/python/{repos_helper.py → helpers_repos/entrypoint.py} +9 -17
- machineconfig/scripts/python/helpers_repos/grource.py +340 -0
- machineconfig/scripts/python/{repos_helper_record.py → helpers_repos/record.py} +4 -3
- machineconfig/scripts/python/helpers_repos/repo_analyzer_1.py +160 -0
- machineconfig/scripts/python/{count_lines.py → helpers_repos/repo_analyzer_2.py} +113 -192
- machineconfig/scripts/python/helpers_repos/sync.py +66 -0
- machineconfig/scripts/python/{repos_helper_update.py → helpers_repos/update.py} +3 -3
- machineconfig/scripts/python/helpers_sessions/__init__.py +0 -0
- machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +65 -0
- machineconfig/scripts/python/helpers_utils/download.py +150 -0
- machineconfig/scripts/python/helpers_utils/path.py +185 -0
- machineconfig/scripts/python/interactive.py +64 -84
- machineconfig/scripts/python/mcfg_entry.py +58 -0
- machineconfig/scripts/python/msearch.py +71 -0
- machineconfig/scripts/python/sessions.py +119 -45
- machineconfig/scripts/python/terminal.py +133 -0
- machineconfig/scripts/python/utils.py +64 -0
- machineconfig/scripts/windows/mounts/Restore-ThunderbirdProfile.ps1 +92 -0
- machineconfig/scripts/windows/{mount_nfs.ps1 → mounts/mount_nfs.ps1} +1 -3
- machineconfig/scripts/windows/{mount_ssh.ps1 → mounts/mount_ssh.ps1} +1 -1
- machineconfig/scripts/windows/{share_smb.ps1 → mounts/share_smb.ps1} +0 -6
- machineconfig/scripts/windows/wrap_mcfg.ps1 +63 -0
- machineconfig/settings/broot/br.sh +0 -4
- machineconfig/settings/broot/conf.toml +1 -1
- machineconfig/settings/helix/config.toml +16 -0
- machineconfig/settings/helix/languages.toml +13 -4
- machineconfig/settings/helix/yazi-picker.sh +12 -0
- machineconfig/settings/lf/linux/exe/lfcd.sh +1 -0
- machineconfig/settings/lf/linux/exe/previewer.sh +9 -3
- machineconfig/settings/lf/linux/lfrc +10 -12
- machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
- machineconfig/settings/lf/windows/lfrc +18 -38
- machineconfig/settings/lf/windows/mkfile.ps1 +1 -1
- machineconfig/settings/linters/.ruff.toml +1 -1
- machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -6
- machineconfig/settings/marimo/marimo.toml +80 -0
- machineconfig/settings/marimo/snippets/globalize.py +34 -0
- machineconfig/settings/pistol/pistol.conf +1 -1
- machineconfig/settings/shells/bash/init.sh +82 -31
- machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +1 -1
- machineconfig/settings/shells/nushell/config.nu +2 -35
- machineconfig/settings/shells/nushell/env.nu +45 -6
- machineconfig/settings/shells/nushell/init.nu +314 -0
- machineconfig/settings/shells/pwsh/init.ps1 +61 -43
- machineconfig/settings/shells/starship/starship.toml +16 -0
- machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
- machineconfig/settings/shells/wt/settings.json +32 -17
- machineconfig/settings/shells/zsh/init.sh +89 -0
- machineconfig/settings/svim/linux/init.toml +0 -4
- machineconfig/settings/svim/windows/init.toml +0 -3
- machineconfig/settings/television/cable_unix/alias.toml +8 -0
- machineconfig/settings/television/cable_unix/aws-buckets.toml +14 -0
- machineconfig/settings/television/cable_unix/aws-instances.toml +13 -0
- machineconfig/settings/television/cable_unix/bash-history.toml +8 -0
- machineconfig/settings/television/cable_unix/channels.toml +19 -0
- machineconfig/settings/television/cable_unix/dirs.toml +13 -0
- machineconfig/settings/television/cable_unix/distrobox-list.toml +42 -0
- machineconfig/settings/television/cable_unix/docker-images.toml +13 -0
- machineconfig/settings/television/cable_unix/dotfiles.toml +11 -0
- machineconfig/settings/television/cable_unix/env.toml +17 -0
- machineconfig/settings/television/cable_unix/files.toml +11 -0
- machineconfig/settings/television/cable_unix/fish-history.toml +8 -0
- machineconfig/settings/television/cable_unix/git-branch.toml +11 -0
- machineconfig/settings/television/cable_unix/git-diff.toml +10 -0
- machineconfig/settings/television/cable_unix/git-log.toml +12 -0
- machineconfig/settings/television/cable_unix/git-reflog.toml +12 -0
- machineconfig/settings/television/cable_unix/git-repos.toml +16 -0
- machineconfig/settings/television/cable_unix/guix.toml +20 -0
- machineconfig/settings/television/cable_unix/just-recipes.toml +18 -0
- machineconfig/settings/television/cable_unix/k8s-deployments.toml +36 -0
- machineconfig/settings/television/cable_unix/k8s-pods.toml +50 -0
- machineconfig/settings/television/cable_unix/k8s-services.toml +36 -0
- machineconfig/settings/television/cable_unix/man-pages.toml +24 -0
- machineconfig/settings/television/cable_unix/nu-history.toml +7 -0
- machineconfig/settings/television/cable_unix/procs.toml +20 -0
- machineconfig/settings/television/cable_unix/text.toml +17 -0
- machineconfig/settings/television/cable_unix/tldr.toml +18 -0
- machineconfig/settings/television/cable_unix/zsh-history.toml +9 -0
- machineconfig/settings/television/cable_windows/alias.toml +7 -0
- machineconfig/settings/television/cable_windows/dirs.toml +13 -0
- machineconfig/settings/television/cable_windows/docker-images.toml +13 -0
- machineconfig/settings/television/cable_windows/dotfiles.toml +11 -0
- machineconfig/settings/television/cable_windows/env.toml +17 -0
- machineconfig/settings/television/cable_windows/files.toml +14 -0
- machineconfig/settings/television/cable_windows/git-branch.toml +11 -0
- machineconfig/settings/television/cable_windows/git-diff.toml +10 -0
- machineconfig/settings/television/cable_windows/git-log.toml +11 -0
- machineconfig/settings/television/cable_windows/git-reflog.toml +11 -0
- machineconfig/settings/television/cable_windows/git-repos.toml +15 -0
- machineconfig/settings/television/cable_windows/nu-history.toml +7 -0
- machineconfig/settings/television/cable_windows/pwsh-history.toml +6 -0
- machineconfig/settings/television/cable_windows/text.toml +17 -0
- machineconfig/settings/yazi/init.lua +61 -0
- machineconfig/settings/yazi/keymap_linux.toml +94 -0
- machineconfig/settings/yazi/keymap_windows.toml +78 -0
- machineconfig/settings/yazi/shell/yazi_cd.ps1 +33 -0
- machineconfig/settings/yazi/shell/yazi_cd.sh +8 -0
- machineconfig/settings/yazi/theme.toml +4 -0
- machineconfig/settings/yazi/yazi_linux.toml +84 -0
- machineconfig/settings/yazi/yazi_windows.toml +58 -0
- machineconfig/setup_linux/__init__.py +11 -0
- machineconfig/setup_linux/apps_desktop.sh +89 -0
- machineconfig/setup_linux/apps_gui.sh +64 -0
- machineconfig/setup_linux/ssh/openssh_all.sh +25 -0
- machineconfig/setup_linux/ssh/openssh_wsl.sh +38 -0
- machineconfig/setup_linux/uv.sh +15 -0
- machineconfig/setup_linux/web_shortcuts/interactive.sh +26 -6
- machineconfig/setup_linux/web_shortcuts/live_from_github.sh +31 -0
- machineconfig/setup_mac/__init__.py +16 -0
- machineconfig/setup_mac/apps_gui.sh +248 -0
- machineconfig/setup_mac/ssh/openssh_setup.sh +114 -0
- machineconfig/setup_mac/uv.sh +36 -0
- machineconfig/setup_windows/__init__.py +11 -0
- machineconfig/setup_windows/others/power_options.ps1 +7 -0
- machineconfig/setup_windows/ssh/add-sshkey.ps1 +29 -0
- machineconfig/setup_windows/ssh/add_identity.ps1 +11 -0
- machineconfig/setup_windows/ssh/openssh-server.ps1 +37 -0
- machineconfig/setup_windows/uv.ps1 +17 -0
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +27 -10
- machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +30 -0
- machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
- machineconfig/utils/accessories.py +7 -5
- machineconfig/utils/cloud/onedrive/README.md +139 -0
- machineconfig/utils/code.py +155 -105
- machineconfig/utils/files/art/fat_croco.txt +10 -0
- machineconfig/utils/files/art/halfwit_croco.txt +9 -0
- machineconfig/utils/files/art/happy_croco.txt +22 -0
- machineconfig/utils/files/art/water_croco.txt +11 -0
- machineconfig/utils/files/ascii_art.py +1 -1
- machineconfig/utils/files/dbms.py +257 -0
- machineconfig/utils/files/headers.py +11 -14
- machineconfig/utils/files/ouch/__init__.py +0 -0
- machineconfig/utils/files/ouch/decompress.py +45 -0
- machineconfig/utils/files/read.py +10 -18
- machineconfig/utils/installer_utils/github_release_bulk.py +156 -119
- machineconfig/utils/installer_utils/install_from_url.py +183 -0
- machineconfig/utils/installer_utils/installer_class.py +64 -181
- machineconfig/utils/installer_utils/installer_cli.py +175 -0
- machineconfig/utils/installer_utils/installer_helper.py +129 -0
- machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +66 -97
- machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +49 -82
- machineconfig/utils/io.py +77 -23
- machineconfig/utils/links.py +254 -162
- machineconfig/utils/meta.py +256 -0
- machineconfig/utils/notifications.py +1 -1
- machineconfig/utils/options.py +46 -18
- machineconfig/utils/options_tv.py +119 -0
- machineconfig/utils/path_extended.py +48 -101
- machineconfig/utils/path_helper.py +76 -23
- machineconfig/utils/procs.py +50 -70
- machineconfig/utils/scheduler.py +88 -124
- machineconfig/utils/scheduling.py +0 -3
- machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
- machineconfig/utils/schemas/layouts/layout_types.py +1 -1
- machineconfig/utils/source_of_truth.py +3 -6
- machineconfig/utils/ssh.py +263 -274
- machineconfig/utils/ssh_utils/abc.py +5 -0
- machineconfig/utils/ssh_utils/copy_from_here.py +111 -0
- machineconfig/utils/ssh_utils/copy_to_here.py +302 -0
- machineconfig/utils/ssh_utils/utils.py +142 -0
- machineconfig/utils/ssh_utils/wsl.py +210 -0
- machineconfig/utils/terminal.py +3 -113
- machineconfig/utils/tst.py +20 -0
- machineconfig/utils/upgrade_packages.py +114 -28
- machineconfig/utils/ve.py +12 -4
- machineconfig-7.98.dist-info/METADATA +132 -0
- machineconfig-7.98.dist-info/RECORD +504 -0
- machineconfig-7.98.dist-info/entry_points.txt +13 -0
- machineconfig/cluster/sessions_managers/ffile.py +0 -4
- machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -49
- machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -85
- machineconfig/jobs/linux/msc/cli_agents.sh +0 -16
- machineconfig/jobs/python/python_ve_symlink.py +0 -37
- machineconfig/jobs/python/vscode/api.py +0 -57
- machineconfig/jobs/python/vscode/sync_code.py +0 -73
- machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -14
- machineconfig/jobs/windows/start_terminal.ps1 +0 -6
- machineconfig/jobs/windows/startup_file.cmd +0 -2
- machineconfig/profile/create.py +0 -303
- machineconfig/profile/shell.py +0 -176
- machineconfig/scripts/cloud/init.sh +0 -119
- machineconfig/scripts/linux/agents +0 -2
- machineconfig/scripts/linux/choose_wezterm_theme +0 -3
- machineconfig/scripts/linux/cloud_copy +0 -2
- machineconfig/scripts/linux/cloud_mount +0 -2
- machineconfig/scripts/linux/cloud_repo_sync +0 -2
- machineconfig/scripts/linux/cloud_sync +0 -2
- machineconfig/scripts/linux/croshell +0 -3
- machineconfig/scripts/linux/devops +0 -2
- machineconfig/scripts/linux/fire +0 -2
- machineconfig/scripts/linux/ftpx +0 -2
- machineconfig/scripts/linux/fzf2g +0 -21
- machineconfig/scripts/linux/fzfag +0 -17
- machineconfig/scripts/linux/fzffg +0 -25
- machineconfig/scripts/linux/fzfrga +0 -21
- machineconfig/scripts/linux/gh_models +0 -2
- machineconfig/scripts/linux/initai +0 -2
- machineconfig/scripts/linux/kill_process +0 -2
- machineconfig/scripts/linux/scheduler +0 -2
- machineconfig/scripts/linux/sessions +0 -2
- machineconfig/scripts/linux/share_smb +0 -1
- machineconfig/scripts/linux/skrg +0 -4
- machineconfig/scripts/linux/start_slidev +0 -2
- machineconfig/scripts/linux/start_terminals +0 -3
- machineconfig/scripts/linux/warp-cli.sh +0 -122
- machineconfig/scripts/linux/wifi_conn +0 -2
- machineconfig/scripts/linux/z_ls +0 -104
- machineconfig/scripts/python/ai/generate_files.py +0 -83
- machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -5
- machineconfig/scripts/python/cloud_repo_sync.py +0 -190
- machineconfig/scripts/python/count_lines_frontend.py +0 -16
- machineconfig/scripts/python/devops_add_ssh_key.py +0 -120
- machineconfig/scripts/python/dotfile.py +0 -78
- machineconfig/scripts/python/fire_agents_help_launch.py +0 -120
- machineconfig/scripts/python/fire_agents_helper_types.py +0 -12
- machineconfig/scripts/python/fire_jobs_route_helper.py +0 -65
- machineconfig/scripts/python/get_zellij_cmd.py +0 -15
- machineconfig/scripts/python/gh_models.py +0 -104
- machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -116
- machineconfig/scripts/python/repos.py +0 -132
- machineconfig/scripts/python/repos_helper_action.py +0 -378
- machineconfig/scripts/python/snapshot.py +0 -25
- machineconfig/scripts/python/start_terminals.py +0 -121
- machineconfig/scripts/python/t4.py +0 -17
- machineconfig/scripts/windows/agents.ps1 +0 -1
- machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -1
- machineconfig/scripts/windows/cloud_copy.ps1 +0 -1
- machineconfig/scripts/windows/cloud_mount.ps1 +0 -1
- machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -1
- machineconfig/scripts/windows/cloud_sync.ps1 +0 -1
- machineconfig/scripts/windows/croshell.ps1 +0 -1
- machineconfig/scripts/windows/devops.ps1 +0 -1
- machineconfig/scripts/windows/dotfile.ps1 +0 -1
- machineconfig/scripts/windows/fire.ps1 +0 -1
- machineconfig/scripts/windows/ftpx.ps1 +0 -1
- machineconfig/scripts/windows/fzfb.ps1 +0 -3
- machineconfig/scripts/windows/fzfg.ps1 +0 -2
- machineconfig/scripts/windows/fzfrga.bat +0 -20
- machineconfig/scripts/windows/gpt.ps1 +0 -1
- machineconfig/scripts/windows/grep.ps1 +0 -2
- machineconfig/scripts/windows/initai.ps1 +0 -1
- machineconfig/scripts/windows/kill_process.ps1 +0 -1
- machineconfig/scripts/windows/nano.ps1 +0 -3
- machineconfig/scripts/windows/pomodoro.ps1 +0 -1
- machineconfig/scripts/windows/reload_path.ps1 +0 -3
- machineconfig/scripts/windows/scheduler.ps1 +0 -1
- machineconfig/scripts/windows/sessions.ps1 +0 -1
- machineconfig/scripts/windows/snapshot.ps1 +0 -1
- machineconfig/scripts/windows/start_slidev.ps1 +0 -1
- machineconfig/scripts/windows/start_terminals.ps1 +0 -1
- machineconfig/scripts/windows/wifi_conn.ps1 +0 -2
- machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -46
- machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -76
- machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
- machineconfig/settings/lf/windows/fzf_edit.ps1 +0 -6
- machineconfig/settings/lf/windows/tst.ps1 +0 -1
- machineconfig/settings/yazi/yazi.toml +0 -4
- machineconfig/setup_linux/nix/cli_installation.sh +0 -157
- machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -57
- machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -11
- machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -52
- machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -18
- machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -36
- machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -16
- machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -11
- machineconfig/utils/ai/generate_file_checklist.py +0 -68
- machineconfig/utils/installer_utils/installer.py +0 -189
- machineconfig-5.15.dist-info/METADATA +0 -188
- machineconfig-5.15.dist-info/RECORD +0 -415
- machineconfig-5.15.dist-info/entry_points.txt +0 -18
- machineconfig/cluster/sessions_managers/{utils → helpers}/load_balancer_helper.py +0 -0
- machineconfig/scripts/linux/{share_nfs → other/share_nfs} +0 -0
- machineconfig/scripts/linux/{start_docker → other/start_docker} +0 -0
- machineconfig/scripts/linux/{switch_ip → other/switch_ip} +0 -0
- machineconfig/{jobs/python → scripts/python/ai/utils}/__init__.py +0 -0
- machineconfig/scripts/python/{helpers → helpers_agents}/__init__.py +0 -0
- machineconfig/{jobs/windows/msc/cli_agents.bat → scripts/python/helpers_agents/agentic_frameworks/__init__.py} +0 -0
- machineconfig/scripts/python/{fire_agents_help_search.py → helpers_agents/fire_agents_help_search.py} +0 -0
- machineconfig/scripts/python/{fire_agents_load_balancer.py → helpers_agents/fire_agents_load_balancer.py} +0 -0
- machineconfig/{jobs/windows/msc/cli_agents.ps1 → scripts/python/helpers_cloud/__init__.py} +0 -0
- machineconfig/scripts/python/{helpers → helpers_cloud}/cloud_helpers.py +1 -1
- /machineconfig/scripts/python/{helpers → helpers_cloud}/helpers5.py +0 -0
- /machineconfig/scripts/python/{fire_jobs_streamlit_helper.py → helpers_croshell/__init__.py} +0 -0
- /machineconfig/scripts/python/{pomodoro.py → helpers_croshell/pomodoro.py} +0 -0
- /machineconfig/scripts/python/{scheduler.py → helpers_croshell/scheduler.py} +0 -0
- /machineconfig/scripts/python/{viewer.py → helpers_croshell/viewer.py} +0 -0
- /machineconfig/scripts/python/{viewer_template.py → helpers_croshell/viewer_template.py} +0 -0
- /machineconfig/scripts/{windows/share_nfs.ps1 → python/helpers_devops/__init__.py} +0 -0
- /machineconfig/{settings/shells/pwsh/profile.ps1 → scripts/python/helpers_devops/themes/__init__.py} +0 -0
- /machineconfig/{settings/yazi/keymap.toml → scripts/python/helpers_devops/themes/choose_starship_theme.ps1} +0 -0
- /machineconfig/scripts/python/{cloud_manager.py → helpers_fire_command/cloud_manager.py} +0 -0
- /machineconfig/scripts/{linux → python/helpers_network}/mount_drive +0 -0
- /machineconfig/scripts/python/{mount_nw_drive.py → helpers_network/mount_nw_drive.py} +0 -0
- /machineconfig/scripts/{linux → python/helpers_network}/mount_smb +0 -0
- /machineconfig/scripts/windows/{mount_nw.ps1 → mounts/mount_nw.ps1} +0 -0
- /machineconfig/scripts/windows/{mount_smb.ps1 → mounts/mount_smb.ps1} +0 -0
- /machineconfig/scripts/windows/{share_cloud.cmd → mounts/share_cloud.cmd} +0 -0
- /machineconfig/scripts/windows/{unlock_bitlocker.ps1 → mounts/unlock_bitlocker.ps1} +0 -0
- /machineconfig/setup_linux/{web_shortcuts → others}/android.sh +0 -0
- /machineconfig/{jobs/windows/archive → setup_windows/ssh}/openssh-server_add_key.ps1 +0 -0
- /machineconfig/{jobs/windows/archive → setup_windows/ssh}/openssh-server_copy-ssh-id.ps1 +0 -0
- {machineconfig-5.15.dist-info → machineconfig-7.98.dist-info}/WHEEL +0 -0
- {machineconfig-5.15.dist-info → machineconfig-7.98.dist-info}/top_level.txt +0 -0
|
@@ -2,156 +2,180 @@
|
|
|
2
2
|
|
|
3
3
|
"""
|
|
4
4
|
croshell
|
|
5
|
+
|
|
5
6
|
"""
|
|
6
7
|
|
|
7
8
|
from typing import Annotated, Optional
|
|
8
9
|
import typer
|
|
9
|
-
from machineconfig.utils.path_extended import PathExtended
|
|
10
|
-
from machineconfig.utils.accessories import randstr
|
|
11
|
-
|
|
12
|
-
from machineconfig.utils.options import choose_from_options
|
|
13
|
-
# from machineconfig.utils.ve import get_ve_activate_line
|
|
14
|
-
from rich.console import Console
|
|
15
|
-
from rich.panel import Panel
|
|
16
|
-
# from rich.text import Text
|
|
17
10
|
|
|
18
|
-
console = Console()
|
|
19
11
|
|
|
12
|
+
def croshell(
|
|
13
|
+
path: Annotated[Optional[str], typer.Argument(help="path of file to read.")] = None,
|
|
14
|
+
project_path: Annotated[Optional[str], typer.Option("--project", "-p", help="specify uv project to use")] = None,
|
|
15
|
+
uv_with: Annotated[Optional[str], typer.Option("--uv-with", "-w", help="specify uv with packages to use")] = None,
|
|
16
|
+
marimo: Annotated[bool, typer.Option("--marimo", "-m", help="open the notebook using marimo if available")] = False,
|
|
17
|
+
jupyter: Annotated[bool, typer.Option("--jupyter", "-j", help="run in jupyter interactive console")] = False,
|
|
18
|
+
vscode: Annotated[bool, typer.Option("--vscode", "-c", help="open the script in vscode")] = False,
|
|
19
|
+
visidata: Annotated[bool, typer.Option("--visidata", "-v", help="open data file in visidata")] = False,
|
|
20
|
+
# streamlit_viewer: Annotated[bool, typer.Option("--streamlit", "-s", help="view in streamlit app")] = False,
|
|
21
|
+
python: Annotated[bool, typer.Option("--python", "-P", help="flag to use python over IPython.")] = False,
|
|
22
|
+
profile: Annotated[Optional[str], typer.Option("--profile", "-r", help="ipython profile to use, defaults to default profile.")] = None,
|
|
23
|
+
|
|
24
|
+
) -> None:
|
|
25
|
+
if uv_with is not None: user_uv_with_line = f"--with {uv_with} "
|
|
26
|
+
else: user_uv_with_line = ""
|
|
20
27
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
from
|
|
32
|
-
from
|
|
28
|
+
if project_path is not None:
|
|
29
|
+
uv_project_line = f'--project {project_path}'
|
|
30
|
+
uv_python_line = ""
|
|
31
|
+
else:
|
|
32
|
+
uv_project_line = ""
|
|
33
|
+
uv_python_line = "--python 3.14"
|
|
34
|
+
|
|
35
|
+
from machineconfig.scripts.python.helpers_croshell.crosh import get_read_python_file_pycode, get_read_data_pycode
|
|
36
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
37
|
+
from pathlib import Path
|
|
38
|
+
from machineconfig.utils.accessories import randstr
|
|
39
|
+
from machineconfig.utils.ve import get_ve_path_and_ipython_profile
|
|
40
|
+
import json
|
|
33
41
|
from rich.console import Console
|
|
34
|
-
from rich.
|
|
42
|
+
from rich.panel import Panel
|
|
35
43
|
console = Console()
|
|
36
|
-
if pycode.strip() != "":
|
|
37
|
-
console.print(Panel(Syntax(pycode, lexer="python"), title='{title}'), style="bold red")
|
|
38
|
-
except Exception: print(pycode)
|
|
39
|
-
"""
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
def get_read_data_pycode(path: str):
|
|
43
|
-
return f"""
|
|
44
|
-
from rich.panel import Panel
|
|
45
|
-
from rich.text import Text
|
|
46
|
-
from rich.console import Console
|
|
47
|
-
console = Console()
|
|
48
|
-
p = PathExtended(r'{path}').absolute()
|
|
49
|
-
try:
|
|
50
|
-
from machineconfig.utils.files.read import Read
|
|
51
|
-
dat = Read.read(p)
|
|
52
|
-
if isinstance(dat, dict):
|
|
53
|
-
panel_title = f"📄 File Data: {{p.name}}"
|
|
54
|
-
console.print(Panel(Text(str(dat), justify="left"), title=panel_title, expand=False))
|
|
55
|
-
pprint(dat, PathExtended.name)
|
|
56
|
-
else:
|
|
57
|
-
panel_title = f"📄 Successfully read the file: {{p.name}}"
|
|
58
|
-
console.print(Panel(Text(str(dat), justify="left"), title=panel_title, expand=False))
|
|
59
|
-
except Exception as e:
|
|
60
|
-
error_message = f'''❌ ERROR READING FILE\nFile: {{p.name}}\nError: {{e}}'''
|
|
61
|
-
console.print(Panel(Text(error_message, justify="left"), title="Error", expand=False, border_style="red"))
|
|
62
|
-
"""
|
|
63
44
|
|
|
64
45
|
|
|
65
|
-
|
|
66
|
-
def main(
|
|
67
|
-
python: Annotated[bool, typer.Option("--python", "-p", help="flag to use python over IPython.")] = False,
|
|
68
|
-
fzf: Annotated[bool, typer.Option("--fzf", "-F", help="search with fuzzy finder for python scripts and run them")] = False,
|
|
69
|
-
ve: Annotated[Optional[str], typer.Option("--ve", "-v", help="virtual enviroment to use, defaults to activated ve, if existed, else ve.")] = None,
|
|
70
|
-
profile: Annotated[Optional[str], typer.Option("--profile", "-P", help="ipython profile to use, defaults to default profile.")] = None,
|
|
71
|
-
read: Annotated[str, typer.Option("--read", "-r", help="read a binary file.")] = "",
|
|
72
|
-
jupyter: Annotated[bool, typer.Option("--jupyter", "-j", help="run in jupyter interactive console")] = False,
|
|
73
|
-
streamlit_viewer: Annotated[bool, typer.Option("--stViewer", "-s", help="view in streamlit app")] = False,
|
|
74
|
-
visidata: Annotated[bool, typer.Option("--visidata", "-V", help="open data file in visidata")] = False,
|
|
75
|
-
) -> None:
|
|
76
46
|
# ==================================================================================
|
|
77
47
|
# flags processing
|
|
78
48
|
interactivity = "-i"
|
|
79
49
|
interpreter = "python" if python else "ipython"
|
|
80
50
|
ipython_profile: Optional[str] = profile
|
|
81
|
-
file_obj =
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
# #!/bin/bash
|
|
101
|
-
# streamlit run {py_file_path}
|
|
102
|
-
# """
|
|
103
|
-
# PROGRAM_PATH.write_text(data=final_program, encoding="utf-8")
|
|
104
|
-
return None
|
|
105
|
-
file_obj = PathExtended(str(read).lstrip()).expanduser().absolute()
|
|
106
|
-
program = get_read_data_pycode(str(file_obj))
|
|
107
|
-
text = f"📄 Reading data from: {file_obj.name}"
|
|
108
|
-
console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
|
|
109
|
-
|
|
51
|
+
file_obj = Path.cwd() # initialization value, could be modified according to args.
|
|
52
|
+
if path is not None:
|
|
53
|
+
from machineconfig.utils.path_helper import get_choice_file
|
|
54
|
+
choice_file = get_choice_file(path=path, suffixes={".*"})
|
|
55
|
+
if project_path is None:
|
|
56
|
+
ve_path, _ = get_ve_path_and_ipython_profile(choice_file)
|
|
57
|
+
if ve_path is not None:
|
|
58
|
+
ve_path_obj = Path(ve_path)
|
|
59
|
+
uv_project_line = f'--project {ve_path_obj.parent}'
|
|
60
|
+
uv_python_line = ""
|
|
61
|
+
if choice_file.suffix == ".py":
|
|
62
|
+
program = choice_file.read_text(encoding="utf-8")
|
|
63
|
+
text = f"📄 Selected file: {choice_file.name}"
|
|
64
|
+
console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
|
|
65
|
+
else:
|
|
66
|
+
program = lambda_to_python_script(lambda: get_read_data_pycode(path=str(choice_file)),
|
|
67
|
+
in_global=True, import_module=False)
|
|
68
|
+
text = f"📄 Reading data from: {file_obj.name}"
|
|
69
|
+
console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
|
|
110
70
|
else: # if nothing is specified, then run in interactive mode.
|
|
111
|
-
text = "⌨️ Entering interactive mode"
|
|
112
|
-
console.print(Panel(text, title="[bold blue]Info[/bold blue]"))
|
|
113
|
-
# from machineconfig.scripts.python.croshell import InteractiveShell
|
|
114
|
-
# InteractiveShell().run()
|
|
115
|
-
# return None
|
|
116
71
|
program = ""
|
|
117
72
|
|
|
118
|
-
|
|
73
|
+
if Path.home().joinpath("code/machineconfig").exists() and uv_project_line == "":
|
|
74
|
+
uv_project_line = f'--project "{str(Path.home().joinpath("code/machineconfig"))}"'
|
|
119
75
|
|
|
76
|
+
preprogram = """
|
|
120
77
|
#%%
|
|
121
|
-
|
|
122
|
-
from machineconfig.utils.files.headers import print_header, print_logo
|
|
123
|
-
print_header()
|
|
124
|
-
print_logo("CROCODILE")
|
|
125
|
-
from pathlib import Path
|
|
126
|
-
|
|
127
78
|
"""
|
|
128
|
-
|
|
129
|
-
|
|
79
|
+
def preprogram_func():
|
|
80
|
+
from machineconfig.utils.files.headers import print_header, print_logo
|
|
81
|
+
print_header()
|
|
82
|
+
print_logo("Machineconfig")
|
|
83
|
+
from pathlib import Path
|
|
84
|
+
from machineconfig.utils.path_extended import PathExtended
|
|
85
|
+
_ = Path, PathExtended # avoid unused import warnings
|
|
86
|
+
import inspect, textwrap
|
|
87
|
+
from types import FunctionType
|
|
88
|
+
def get_body_simple_function_no_args(f: FunctionType):
|
|
89
|
+
return textwrap.dedent("\n".join(inspect.getsource(f).splitlines()[1:]))
|
|
90
|
+
preprogram += get_body_simple_function_no_args(preprogram_func)
|
|
91
|
+
|
|
92
|
+
from pathlib import Path
|
|
93
|
+
pyfile = Path.home().joinpath(f"tmp_results/tmp_scripts/python/croshell/{randstr()}/script.py")
|
|
130
94
|
pyfile.parent.mkdir(parents=True, exist_ok=True)
|
|
131
|
-
|
|
132
95
|
title = "Reading Data"
|
|
133
|
-
|
|
96
|
+
def_code = lambda_to_python_script(lambda: get_read_python_file_pycode(path=str(pyfile), title=title),
|
|
97
|
+
in_global=False, import_module=False)
|
|
98
|
+
# print(def_code)
|
|
99
|
+
python_program = preprogram + "\n\n" + def_code + program
|
|
134
100
|
pyfile.write_text(python_program, encoding="utf-8")
|
|
135
101
|
# ve_root_from_file, ipython_profile = get_ve_path_and_ipython_profile(PathExtended(file))
|
|
136
102
|
ipython_profile = ipython_profile if ipython_profile is not None else "default"
|
|
137
103
|
# ve_activateion_line = get_ve_activate_line(ve_name=args.ve or ve_profile_suggested, a_path=str(PathExtended.cwd()))
|
|
138
104
|
|
|
105
|
+
# prepare notebook target path (avoid relying on locals())
|
|
106
|
+
nb_target = pyfile.with_suffix(".ipynb")
|
|
107
|
+
if jupyter:
|
|
108
|
+
try:
|
|
109
|
+
nb_path = pyfile.with_suffix(".ipynb")
|
|
110
|
+
nb_content = {
|
|
111
|
+
"cells": [
|
|
112
|
+
{
|
|
113
|
+
"cell_type": "code",
|
|
114
|
+
"metadata": {"language": "python"},
|
|
115
|
+
"source": [python_program],
|
|
116
|
+
"outputs": [],
|
|
117
|
+
"execution_count": None,
|
|
118
|
+
}
|
|
119
|
+
],
|
|
120
|
+
"metadata": {},
|
|
121
|
+
"nbformat": 4,
|
|
122
|
+
"nbformat_minor": 5,
|
|
123
|
+
}
|
|
124
|
+
nb_path.write_text(json.dumps(nb_content), encoding="utf-8")
|
|
125
|
+
nb_target = nb_path
|
|
126
|
+
except Exception:
|
|
127
|
+
# if writing fails, fall back to the default nb_target already set
|
|
128
|
+
pass
|
|
139
129
|
if visidata:
|
|
140
|
-
|
|
130
|
+
if file_obj.suffix == ".json":
|
|
131
|
+
fire_line = f"uv run {uv_python_line} {user_uv_with_line} {uv_project_line} --with visidata vd {str(file_obj)}"
|
|
132
|
+
else:
|
|
133
|
+
fire_line = f"uv run {uv_python_line} {user_uv_with_line} {uv_project_line} --with visidata,pyarrow vd {str(file_obj)}"
|
|
134
|
+
elif marimo:
|
|
135
|
+
if Path.home().joinpath("code/machineconfig").exists():
|
|
136
|
+
requirements = f"""{user_uv_with_line} {uv_project_line} --with marimo """
|
|
137
|
+
else: requirements = f"""{uv_python_line} {user_uv_with_line} {uv_project_line} --with "marimo,cowsay,machineconfig[plot]>=7.98" """
|
|
138
|
+
fire_line = f"""
|
|
139
|
+
cd {str(pyfile.parent)}
|
|
140
|
+
uv run {uv_python_line} --with "marimo" marimo convert {pyfile.name} -o marimo_nb.py
|
|
141
|
+
uv run {requirements} marimo edit --host 0.0.0.0 marimo_nb.py
|
|
142
|
+
"""
|
|
141
143
|
elif jupyter:
|
|
142
|
-
|
|
144
|
+
if Path.home().joinpath("code/machineconfig").exists():
|
|
145
|
+
requirements = f"""{user_uv_with_line} {uv_project_line} --with jupyterlab """
|
|
146
|
+
else: requirements = f"""{user_uv_with_line} {uv_project_line} --with "cowsay,machineconfig[plot]>=7.98" """
|
|
147
|
+
fire_line = f"uv run {requirements} {uv_project_line} jupyter-lab {str(nb_target)}"
|
|
148
|
+
elif vscode:
|
|
149
|
+
user_uv_add = f"uv add {uv_with}" if uv_with is not None else ""
|
|
150
|
+
fire_line = f"""
|
|
151
|
+
cd {str(pyfile.parent)}
|
|
152
|
+
uv init {uv_python_line}
|
|
153
|
+
uv venv
|
|
154
|
+
uv add "cowsay,machineconfig[plot]>=7.98"
|
|
155
|
+
uv add {user_uv_add}
|
|
156
|
+
# code serve-web
|
|
157
|
+
code --new-window {str(pyfile)}
|
|
158
|
+
"""
|
|
143
159
|
else:
|
|
144
160
|
if interpreter == "ipython": profile = f" --profile {ipython_profile} --no-banner"
|
|
145
161
|
else: profile = ""
|
|
146
|
-
|
|
162
|
+
if Path.home().joinpath("code/machineconfig").exists():
|
|
163
|
+
ve_line = f"""{user_uv_with_line} {uv_project_line} """
|
|
164
|
+
else: ve_line = f"""{uv_python_line} {user_uv_with_line} {uv_project_line} --with "cowsay,machineconfig[plot]>=7.98" """
|
|
165
|
+
fire_line = f"uv run {ve_line} {interpreter} {interactivity} {profile} {str(pyfile)}"
|
|
147
166
|
|
|
148
|
-
from machineconfig.utils.code import
|
|
149
|
-
|
|
167
|
+
from machineconfig.utils.code import exit_then_run_shell_script
|
|
168
|
+
exit_then_run_shell_script(fire_line, strict=False)
|
|
150
169
|
|
|
151
170
|
|
|
152
|
-
def
|
|
153
|
-
typer.run(
|
|
171
|
+
def main() -> None:
|
|
172
|
+
typer.run(croshell)
|
|
154
173
|
|
|
155
174
|
|
|
156
175
|
if __name__ == "__main__":
|
|
157
|
-
|
|
176
|
+
# def func(flag: Annotated[bool, typer.Option("--flag/-nf", help="dummy flag for debugging", flag_value=False, is_flag=True)]=True):
|
|
177
|
+
# console.print(f"flag: {flag}")
|
|
178
|
+
# app = typer.Typer()
|
|
179
|
+
# app.command()(func)
|
|
180
|
+
# app()
|
|
181
|
+
main()
|
|
@@ -1,106 +1,66 @@
|
|
|
1
1
|
"""devops with emojis"""
|
|
2
2
|
|
|
3
|
-
import machineconfig.utils.installer_utils.installer as installer_entry_point
|
|
4
|
-
import machineconfig.scripts.python.share_terminal as share_terminal
|
|
5
|
-
import machineconfig.scripts.python.repos as repos
|
|
6
|
-
|
|
7
|
-
from machineconfig import __version__
|
|
8
3
|
import typer
|
|
4
|
+
from typing import Optional, Annotated
|
|
5
|
+
|
|
6
|
+
import machineconfig.scripts.python.helpers_devops.cli_repos as cli_repos
|
|
7
|
+
import machineconfig.scripts.python.helpers_devops.cli_config as cli_config
|
|
8
|
+
import machineconfig.scripts.python.helpers_devops.cli_self as cli_self
|
|
9
|
+
import machineconfig.scripts.python.helpers_devops.cli_data as cli_data
|
|
10
|
+
import machineconfig.scripts.python.helpers_devops.cli_nw as cli_network
|
|
11
|
+
import machineconfig.scripts.python.helpers.run_py_script as run_py_script_module
|
|
12
|
+
|
|
13
|
+
def install(which: Annotated[Optional[str], typer.Argument(..., help="Comma-separated list of program names to install, or group name if --group flag is set.")] = None,
|
|
14
|
+
group: Annotated[bool, typer.Option(..., "--group", "-g", help="Treat 'which' as a group name. A group is bundle of apps.")] = False,
|
|
15
|
+
interactive: Annotated[bool, typer.Option(..., "--interactive", "-i", help="Interactive selection of programs to install.")] = False,
|
|
16
|
+
) -> None:
|
|
17
|
+
"""📦 Install packages"""
|
|
18
|
+
import machineconfig.utils.installer_utils.installer_cli as installer_entry_point
|
|
19
|
+
installer_entry_point.main_installer_cli(which=which, group=group, interactive=interactive)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
# def get_app():
|
|
24
|
+
# app = typer.Typer(add_completion=False, no_args_is_help=True)
|
|
25
|
+
# app.command(name="scripts", help="define all scripts", no_args_is_help=False)(define_scripts)
|
|
26
|
+
# return app
|
|
27
|
+
|
|
28
|
+
# def main():
|
|
29
|
+
# # return app
|
|
30
|
+
# app = get_app()
|
|
31
|
+
# app()
|
|
32
|
+
|
|
33
|
+
# define_app = get_define_app()
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def get_app():
|
|
37
|
+
|
|
38
|
+
cli_app = typer.Typer(help="🛠️ DevOps operations", no_args_is_help=True, add_help_option=False, add_completion=False)
|
|
39
|
+
cli_app.command("install", no_args_is_help=True, help="🛠️ [i] Install essential packages")(install)
|
|
40
|
+
cli_app.command("i", no_args_is_help=True, help="Install essential packages", hidden=True)(install)
|
|
41
|
+
|
|
42
|
+
app_repos = cli_repos.get_app()
|
|
43
|
+
cli_app.add_typer(app_repos, name="repos")
|
|
44
|
+
cli_app.add_typer(app_repos, name="r", hidden=True)
|
|
45
|
+
app_config = cli_config.get_app()
|
|
46
|
+
cli_app.add_typer(app_config, name="config")
|
|
47
|
+
cli_app.add_typer(app_config, name="c", hidden=True)
|
|
48
|
+
app_data = cli_data.get_app()
|
|
49
|
+
cli_app.add_typer(app_data, name="data")
|
|
50
|
+
cli_app.add_typer(app_data, name="d", hidden=True)
|
|
51
|
+
app_self = cli_self.get_app()
|
|
52
|
+
cli_app.add_typer(app_self, name="self")
|
|
53
|
+
cli_app.add_typer(app_self, name="s", hidden=True)
|
|
54
|
+
app_nw = cli_network.get_app()
|
|
55
|
+
cli_app.add_typer(app_nw, name="network")
|
|
56
|
+
cli_app.add_typer(app_nw, name="n", hidden=True)
|
|
57
|
+
|
|
58
|
+
cli_app.command("python", no_args_is_help=True, help="🐍 [p] python scripts or command/file in the machineconfig environment", context_settings={"show_help_on_error": True})(run_py_script_module.run_py_script)
|
|
59
|
+
cli_app.command("p", no_args_is_help=True, help="RUN python scripts or command/file in the machineconfig environment", hidden=True)(run_py_script_module.run_py_script)
|
|
60
|
+
|
|
61
|
+
return cli_app
|
|
9
62
|
|
|
10
63
|
|
|
11
|
-
|
|
12
|
-
app
|
|
13
|
-
app
|
|
14
|
-
app.add_typer(repos.app, name="repos", help="📁 Manage git repositories")
|
|
15
|
-
|
|
16
|
-
ssh_app = typer.Typer(help="🔐 SSH operations subcommands", no_args_is_help=True)
|
|
17
|
-
app.add_typer(ssh_app, name="ssh")
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
@app.command()
|
|
21
|
-
def update():
|
|
22
|
-
"""🔄 UPDATE essential repos"""
|
|
23
|
-
import machineconfig.scripts.python.devops_update_repos as helper
|
|
24
|
-
helper.main()
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
@app.command()
|
|
28
|
-
def symlinks():
|
|
29
|
-
"""🔗 SYMLINKS of dotfiles."""
|
|
30
|
-
import machineconfig.profile.create as helper
|
|
31
|
-
helper.main_symlinks()
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
@app.command()
|
|
35
|
-
def profile():
|
|
36
|
-
"""🔗 Update shell profile."""
|
|
37
|
-
import machineconfig.profile.create as helper
|
|
38
|
-
helper.main_profile()
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
@app.command()
|
|
42
|
-
def symlinks_new():
|
|
43
|
-
"""🆕 SYMLINKS new"""
|
|
44
|
-
import machineconfig.jobs.python.python_ve_symlink as helper
|
|
45
|
-
helper.main()
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
@ssh_app.command()
|
|
49
|
-
def add_key():
|
|
50
|
-
"""🔑 SSH add pub key to this machine"""
|
|
51
|
-
import machineconfig.scripts.python.devops_add_ssh_key as helper
|
|
52
|
-
helper.main()
|
|
53
|
-
@ssh_app.command()
|
|
54
|
-
def add_identity():
|
|
55
|
-
"""🗝️ SSH add identity (private key) to this machine"""
|
|
56
|
-
import machineconfig.scripts.python.devops_add_identity as helper
|
|
57
|
-
helper.main()
|
|
58
|
-
@ssh_app.command()
|
|
59
|
-
def connect():
|
|
60
|
-
"""🔐 SSH use key pair to connect two machines"""
|
|
61
|
-
raise NotImplementedError
|
|
62
|
-
@ssh_app.command()
|
|
63
|
-
def setup():
|
|
64
|
-
"""📡 SSH setup"""
|
|
65
|
-
_program_windows = """Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/openssh_all.ps1 | Invoke-Expression # https://github.com/thisismygitrepo.keys"""
|
|
66
|
-
_program_linux = """curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/openssh_all.sh | sudo bash # https://github.com/thisismygitrepo.keys"""
|
|
67
|
-
import subprocess
|
|
68
|
-
from platform import system
|
|
69
|
-
subprocess.run(_program_linux if system() == "Linux" else _program_windows, shell=True, check=True)
|
|
70
|
-
@ssh_app.command()
|
|
71
|
-
def setup_wsl():
|
|
72
|
-
"""🐧 SSH setup wsl"""
|
|
73
|
-
import subprocess
|
|
74
|
-
subprocess.run("curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/openssh_wsl.sh | sudo bash", shell=True, check=True)
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
@app.command()
|
|
78
|
-
def backup():
|
|
79
|
-
"""💾 BACKUP"""
|
|
80
|
-
from machineconfig.scripts.python.devops_backup_retrieve import main_backup_retrieve
|
|
81
|
-
main_backup_retrieve(direction="BACKUP")
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
@app.command()
|
|
85
|
-
def retrieve():
|
|
86
|
-
"""📥 RETRIEVE"""
|
|
87
|
-
from machineconfig.scripts.python.devops_backup_retrieve import main_backup_retrieve
|
|
88
|
-
main_backup_retrieve(direction="RETRIEVE")
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
@app.command()
|
|
92
|
-
def scheduler():
|
|
93
|
-
"""⏰ SCHEDULER"""
|
|
94
|
-
# from machineconfig.scripts.python.scheduler import main as helper
|
|
95
|
-
# helper()
|
|
96
|
-
|
|
97
|
-
@app.command()
|
|
98
|
-
def interactive():
|
|
99
|
-
"""🤖 INTERACTIVE configuration of machine."""
|
|
100
|
-
from machineconfig.scripts.python.interactive import main
|
|
101
|
-
main()
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
if __name__ == "__main__":
|
|
106
|
-
pass
|
|
64
|
+
def main():
|
|
65
|
+
app = get_app()
|
|
66
|
+
app()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
a = 2
|