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
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# 🔐 OpenSSH Setup for macOS
|
|
4
|
+
# This script sets up SSH configuration and permissions on macOS
|
|
5
|
+
|
|
6
|
+
echo "🔐 Starting OpenSSH setup for macOS..."
|
|
7
|
+
|
|
8
|
+
# ✅ SSH is built-in on macOS (OpenSSH comes pre-installed)
|
|
9
|
+
echo "✅ OpenSSH is pre-installed on macOS"
|
|
10
|
+
|
|
11
|
+
# 📁 Create SSH directory with correct permissions
|
|
12
|
+
echo "📁 Setting up SSH directory..."
|
|
13
|
+
mkdir -p ~/.ssh
|
|
14
|
+
chmod 700 ~/.ssh
|
|
15
|
+
echo "✅ SSH directory created with correct permissions (700)"
|
|
16
|
+
|
|
17
|
+
# 📝 Create authorized_keys file if it doesn't exist
|
|
18
|
+
if [ ! -f ~/.ssh/authorized_keys ]; then
|
|
19
|
+
touch ~/.ssh/authorized_keys
|
|
20
|
+
chmod 600 ~/.ssh/authorized_keys
|
|
21
|
+
echo "✅ Created authorized_keys file"
|
|
22
|
+
else
|
|
23
|
+
echo "✅ authorized_keys file already exists"
|
|
24
|
+
chmod 600 ~/.ssh/authorized_keys
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
# 🔑 Create SSH keys if they don't exist
|
|
28
|
+
if [ ! -f ~/.ssh/id_rsa ]; then
|
|
29
|
+
echo "🔑 Generating SSH keys (RSA)..."
|
|
30
|
+
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N "" -C "$(whoami)@$(hostname)"
|
|
31
|
+
echo "✅ SSH RSA keys generated: ~/.ssh/id_rsa"
|
|
32
|
+
else
|
|
33
|
+
echo "✅ SSH keys already exist"
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# 🔐 Create Ed25519 keys (modern alternative)
|
|
37
|
+
if [ ! -f ~/.ssh/id_ed25519 ]; then
|
|
38
|
+
echo "🔑 Generating SSH keys (Ed25519)..."
|
|
39
|
+
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N "" -C "$(whoami)@$(hostname)"
|
|
40
|
+
echo "✅ SSH Ed25519 keys generated: ~/.ssh/id_ed25519"
|
|
41
|
+
else
|
|
42
|
+
echo "✅ SSH Ed25519 keys already exist"
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
# 🔧 Configure SSH config file for convenience
|
|
46
|
+
SSH_CONFIG="$HOME/.ssh/config"
|
|
47
|
+
if [ ! -f "$SSH_CONFIG" ]; then
|
|
48
|
+
echo "📝 Creating SSH config file..."
|
|
49
|
+
cat > "$SSH_CONFIG" << 'EOF'
|
|
50
|
+
# SSH Config File for macOS
|
|
51
|
+
# Add your remote hosts below
|
|
52
|
+
|
|
53
|
+
# Example host configuration:
|
|
54
|
+
# Host myserver
|
|
55
|
+
# HostName example.com
|
|
56
|
+
# User username
|
|
57
|
+
# Port 22
|
|
58
|
+
# IdentityFile ~/.ssh/id_ed25519
|
|
59
|
+
# IdentityFile ~/.ssh/id_rsa
|
|
60
|
+
|
|
61
|
+
# Global settings
|
|
62
|
+
Host *
|
|
63
|
+
AddKeysToAgent yes
|
|
64
|
+
UseKeychain yes
|
|
65
|
+
IdentityFile ~/.ssh/id_ed25519
|
|
66
|
+
IdentityFile ~/.ssh/id_rsa
|
|
67
|
+
ServerAliveInterval 60
|
|
68
|
+
EOF
|
|
69
|
+
chmod 600 "$SSH_CONFIG"
|
|
70
|
+
echo "✅ SSH config file created: $SSH_CONFIG"
|
|
71
|
+
else
|
|
72
|
+
echo "✅ SSH config file already exists"
|
|
73
|
+
fi
|
|
74
|
+
|
|
75
|
+
# 🔒 Ensure correct file permissions
|
|
76
|
+
echo "🔒 Setting correct SSH file permissions..."
|
|
77
|
+
chmod 700 ~/.ssh
|
|
78
|
+
chmod 600 ~/.ssh/authorized_keys 2>/dev/null || true
|
|
79
|
+
chmod 600 ~/.ssh/id_rsa 2>/dev/null || true
|
|
80
|
+
chmod 644 ~/.ssh/id_rsa.pub 2>/dev/null || true
|
|
81
|
+
chmod 600 ~/.ssh/id_ed25519 2>/dev/null || true
|
|
82
|
+
chmod 644 ~/.ssh/id_ed25519.pub 2>/dev/null || true
|
|
83
|
+
chmod 600 ~/.ssh/config 2>/dev/null || true
|
|
84
|
+
echo "✅ SSH file permissions configured correctly"
|
|
85
|
+
|
|
86
|
+
# ℹ️ Display SSH key information
|
|
87
|
+
echo ""
|
|
88
|
+
echo "📋 SSH Setup Summary:"
|
|
89
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
90
|
+
echo "SSH Directory: ~/.ssh"
|
|
91
|
+
echo "SSH Config: ~/.ssh/config"
|
|
92
|
+
echo ""
|
|
93
|
+
echo "Available SSH Keys:"
|
|
94
|
+
if [ -f ~/.ssh/id_rsa.pub ]; then
|
|
95
|
+
echo " • RSA Key: ~/.ssh/id_rsa"
|
|
96
|
+
fi
|
|
97
|
+
if [ -f ~/.ssh/id_ed25519.pub ]; then
|
|
98
|
+
echo " • Ed25519 Key: ~/.ssh/id_ed25519"
|
|
99
|
+
fi
|
|
100
|
+
echo ""
|
|
101
|
+
echo "💡 Next Steps:"
|
|
102
|
+
echo " 1. View your public key:"
|
|
103
|
+
echo " cat ~/.ssh/id_ed25519.pub (or id_rsa.pub)"
|
|
104
|
+
echo " 2. Add it to your GitHub/GitLab/server authorized_keys"
|
|
105
|
+
echo " 3. Test connection:"
|
|
106
|
+
echo " ssh -v your_server"
|
|
107
|
+
echo " 4. Configure hosts in ~/.ssh/config for easy access"
|
|
108
|
+
echo ""
|
|
109
|
+
echo "📚 Learn more about SSH:"
|
|
110
|
+
echo " • man ssh"
|
|
111
|
+
echo " • man ssh-keygen"
|
|
112
|
+
echo " • man ssh_config"
|
|
113
|
+
echo ""
|
|
114
|
+
echo "✅ OpenSSH setup complete!"
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Install or update uv (universal version manager) on macOS
|
|
4
|
+
# Mirrors Linux uv installer but adapts PATH and locations for mac
|
|
5
|
+
|
|
6
|
+
set -euo pipefail
|
|
7
|
+
|
|
8
|
+
UV_BIN="$HOME/.local/bin/uv"
|
|
9
|
+
|
|
10
|
+
if [ ! -f "$UV_BIN" ]; then
|
|
11
|
+
echo "📦 uv binary not found — installing uv to $HOME/.local/bin..."
|
|
12
|
+
mkdir -p "$HOME/.local/bin"
|
|
13
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
14
|
+
echo "✅ uv installed to $UV_BIN"
|
|
15
|
+
else
|
|
16
|
+
echo "🔄 uv binary found — attempting self-update..."
|
|
17
|
+
"$UV_BIN" self update || true
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
# Ensure local bin is in PATH for this run
|
|
21
|
+
export PATH="$HOME/.local/bin:$PATH"
|
|
22
|
+
|
|
23
|
+
if ! command -v uv &> /dev/null; then
|
|
24
|
+
echo "⚠️ uv not found in PATH even after install; add \"$HOME/.local/bin\" to your shell profile"
|
|
25
|
+
else
|
|
26
|
+
echo "🔧 uv available: $(command -v uv)"
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
# Example uv usage: ensure Python 3.14 is available (adjust as needed)
|
|
30
|
+
if command -v uv &> /dev/null; then
|
|
31
|
+
echo "📥 Ensuring Python 3.14 via uv (if supported)"
|
|
32
|
+
# uv may manage various runtimes; this is an example command and will be skipped gracefully if unsupported
|
|
33
|
+
uv python install 3.14 || true
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
echo "✅ uv setup complete"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
|
|
4
|
+
UV = Path(__file__).parent.joinpath("uv.ps1")
|
|
5
|
+
DOCKER = Path(__file__).parent.joinpath("others/docker.ps1")
|
|
6
|
+
OBS = Path(__file__).parent.joinpath("others/obs.ps1")
|
|
7
|
+
POWER_OPTIONS = Path(__file__).parent.joinpath("others/power_options.ps1")
|
|
8
|
+
SSH_SERVER = Path(__file__).parent.joinpath("ssh/openssh_server.ps1")
|
|
9
|
+
INTERACTIVE = Path(__file__).parent.joinpath("web_shortcuts/interactive.ps1")
|
|
10
|
+
LIVE = Path(__file__).parent.joinpath("web_shortcuts/live_from_github.ps1")
|
|
11
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
|
|
2
|
+
# This script adds a public key to the authorized_keys file for the sshd service
|
|
3
|
+
# as a result, a remote can connet to the machine if they got the corresponding private key (identity).
|
|
4
|
+
|
|
5
|
+
# https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement
|
|
6
|
+
# http://woshub.com/using-ssh-key-based-authentication-on-windows/
|
|
7
|
+
|
|
8
|
+
$ErrorActionPreference = "Stop"
|
|
9
|
+
$sshd_dir = "$env:ProgramData\ssh"
|
|
10
|
+
$sshfile = "$env:USERPROFILE\.ssh\pubkey.pub" # this directory is for normal users, not admins.
|
|
11
|
+
# Once they are populated, we can create administrators_authorized_keys
|
|
12
|
+
|
|
13
|
+
Get-Content $sshfile >> "$sshd_dir\administrators_authorized_keys"
|
|
14
|
+
# set appropirate persmissions for this file
|
|
15
|
+
Set-Location $sshd_dir
|
|
16
|
+
icacls administrators_authorized_keys /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
|
|
17
|
+
# Lastly, enabling public key authentication.
|
|
18
|
+
$sshd_config = "$sshd_dir\sshd_config"
|
|
19
|
+
(Get-Content $sshd_config) -replace '#PubkeyAuthentication', 'PubkeyAuthentication' | Out-File -encoding ASCII $sshd_config
|
|
20
|
+
#(Get-Content $sshd_dir\sshd_config) -replace 'AuthorizedKeysFile __PROGRAMDATA__', '#AuthorizedKeysFile __PROGRAMDATA__' | Out-File -encoding ASCII $sshd_config
|
|
21
|
+
#(Get-Content $sshd_dir\sshd_config) -replace 'Match Group administrators', '#Match Group administrators' | Out-File -encoding ASCII $sshd_config
|
|
22
|
+
#cat C:\ProgramData\ssh\sshd_config
|
|
23
|
+
|
|
24
|
+
# to load the fresh settings, we need to restart the service:
|
|
25
|
+
Restart-Service sshd -Force
|
|
26
|
+
|
|
27
|
+
#Write-Host "Use this to Login/test Now"
|
|
28
|
+
#write-host ssh $env:UserName@localhost
|
|
29
|
+
# debug tip: use nano editor to inspect files above, if unreadable max-text format is used, ssh won't work.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
|
|
2
|
+
# on the side of the local machine, you need to sort out the following:
|
|
3
|
+
# if the $sshfile doesn't have a standard name, you will need to explicitly specify the identity while SSHing (e.g. ssh u@s -i ~/.ssh/my_id)
|
|
4
|
+
# However, this must be done every time. For permanent solutions, use .ssh/config
|
|
5
|
+
|
|
6
|
+
$sshfile = "$env:USERPROFILE\.ssh\id_rsa"
|
|
7
|
+
|
|
8
|
+
Set-Service ssh-agent -StartupType Manual # allow the service to be started manually
|
|
9
|
+
ssh-agent # start the service
|
|
10
|
+
ssh-add.exe $sshfile # add the key to the agent
|
|
11
|
+
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
|
|
2
|
+
$ErrorActionPreference = "Stop"
|
|
3
|
+
# ALL of the following require admin priviliages:
|
|
4
|
+
Set-ExecutionPolicy Bypass
|
|
5
|
+
# PowerShell.exe -ExecutionPolicy Bypass -File "C:\bypass\prompt\standard.ps1" 2>&1>$null
|
|
6
|
+
|
|
7
|
+
# Install SSH-Server on a windows machine. see this one below if this one didn't work:
|
|
8
|
+
# to install: winget install --Id Microsoft.OpenSSH.Preview --source winget --scope user # from: https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH
|
|
9
|
+
# the result is installed in C:\Program Files\OpenSSH as opposed to C:\Windows\System32\OpenSSH which is the case if openssh is added as a feature/capability to windows
|
|
10
|
+
# However, notice the new path is not in PATH as is the cases with system variant, so it needs to be added manually.
|
|
11
|
+
# finally, ssh config files are always @ "$env:ProgramData\ssh" irrespective of installation method.
|
|
12
|
+
# if ssh key is created on windows, it doesn't work on linux and gives a cryptlib error. It must be read again and saved in non DOS format.
|
|
13
|
+
|
|
14
|
+
Add-WindowsCapability -Online -Name OpenSSH.Server
|
|
15
|
+
Add-WindowsCapability -Online -Name OpenSSH.Client
|
|
16
|
+
|
|
17
|
+
#New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -Program "%WINDIR%\System32\OpenSSH\sshd.exe"
|
|
18
|
+
|
|
19
|
+
# Must Enable ssh-agent before starting. But even before that, one need to update path so that same shell has access to the NEWLY added ssh program
|
|
20
|
+
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
|
|
21
|
+
|
|
22
|
+
Set-Service -Name sshd -StartupType Automatic
|
|
23
|
+
#Get-Service -Name ssh-agent | Set-Service -StartupType Automatic
|
|
24
|
+
#Set-Service -Name ssh-agent -StartupType Automatic
|
|
25
|
+
#Start-Service ssh-agent
|
|
26
|
+
# Starting the service for the first time will populate the directory with config files.
|
|
27
|
+
Start-Service sshd
|
|
28
|
+
|
|
29
|
+
# Next up, change default shell to powershell, becuse CMD is lame
|
|
30
|
+
# following: https://github.com/PowerShell/Win32-OpenSSH/wiki/DefaultShell
|
|
31
|
+
$shell = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" # "C:\Windows\System32\wsl.exe"
|
|
32
|
+
# $shell = "C:\Program Files\PowerShell\7\pwsh.exe" # it slows SSH down because of startup time, one can still use it by running it explicitly
|
|
33
|
+
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value $shell -PropertyType String -Force
|
|
34
|
+
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShellCommandOption -Value "/c" -PropertyType String -Force
|
|
35
|
+
|
|
36
|
+
cd ~
|
|
37
|
+
mkdir .ssh -ErrorAction SilentlyContinue
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
if (-not (Test-Path -Path "$HOME\.local\bin\uv.exe")) {
|
|
4
|
+
Write-Output "uv binary not found, installing..."
|
|
5
|
+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
6
|
+
} else {
|
|
7
|
+
Write-Output "uv binary found, updating..."
|
|
8
|
+
& "$HOME\.local\bin\uv.exe" self update
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
# `C:\Users\aalsaf01\.local\bin` is not on your PATH. To use installed Python executables, run `$env:PATH = "C:\Users\aalsaf01\.local\bin;$env:PATH"` or `uv python update-shell`.
|
|
12
|
+
& "$env:USERPROFILE\.local\bin\uv.exe" python update-shell
|
|
13
|
+
$env:Path = [System.Environment]::GetEnvironmentVariable('Path', 'Machine') + ';' + [System.Environment]::GetEnvironmentVariable('Path', 'User')
|
|
14
|
+
|
|
15
|
+
# & "$HOME\.local\bin\uv.exe" python install 3.14
|
|
16
|
+
uv python install 3.14
|
|
17
|
+
|
|
@@ -1,13 +1,30 @@
|
|
|
1
|
-
Write-Host "
|
|
2
|
-
🚀 ===========================================
|
|
3
|
-
📦 Machine Configuration Installation Script
|
|
4
|
-
============================================="
|
|
5
1
|
|
|
6
|
-
Write-Host "ℹ️ If you have execution policy issues, run: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser"
|
|
7
2
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
rm ve.ps1
|
|
3
|
+
iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/uv.ps1").Content
|
|
4
|
+
iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/scripts/windows/wrap_mcfg.ps1").Content
|
|
11
5
|
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
function devops { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.98" devops $args }
|
|
7
|
+
function cloud { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.98" cloud $args }
|
|
8
|
+
function agents { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.98" agents $args }
|
|
9
|
+
function sessions { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.98" sessions $args }
|
|
10
|
+
function ftpx { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.98" ftpx $args }
|
|
11
|
+
function fire { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.98" fire $args }
|
|
12
|
+
function croshell { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.98" croshell $args }
|
|
13
|
+
function utils { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.98" utils $args }
|
|
14
|
+
function terminal { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.98" terminal $args }
|
|
15
|
+
function msearch { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.98" msearch $args }
|
|
16
|
+
|
|
17
|
+
function d { wrap_in_shell_script devops @args }
|
|
18
|
+
function c { wrap_in_shell_script cloud @args }
|
|
19
|
+
function a { wrap_in_shell_script agents @args }
|
|
20
|
+
function sx { wrap_in_shell_script sessions @args }
|
|
21
|
+
function fx { wrap_in_shell_script ftpx @args }
|
|
22
|
+
function f { wrap_in_shell_script fire @args }
|
|
23
|
+
function rr { wrap_in_shell_script croshell @args }
|
|
24
|
+
function u { wrap_in_shell_script utils @args }
|
|
25
|
+
function t { wrap_in_shell_script terminal @args }
|
|
26
|
+
function ms { wrap_in_shell_script msearch @args }
|
|
27
|
+
|
|
28
|
+
Write-Host "mcfg command aliases are now defined in this PowerShell session."
|
|
29
|
+
|
|
30
|
+
devops self interactive
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/uv.ps1").Content
|
|
4
|
+
iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/scripts/windows/wrap_mcfg.ps1").Content
|
|
5
|
+
|
|
6
|
+
function devops { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "git+https://github.com/thisismygitrepo/machineconfig" mcfg $args }
|
|
7
|
+
|
|
8
|
+
function devops {mcfg devops @args }
|
|
9
|
+
function cloud {mcfg cloud @args }
|
|
10
|
+
function agents {mcfg agents @args }
|
|
11
|
+
function sessions {mcfg sessions @args }
|
|
12
|
+
function ftpx {mcfg ftpx @args }
|
|
13
|
+
function fire {mcfg fire @args }
|
|
14
|
+
function croshell {mcfg croshell @args }
|
|
15
|
+
function utils {mcfg utils @args }
|
|
16
|
+
function terminal {mcfg terminal @args }
|
|
17
|
+
function msearch {mcfg msearch @args }
|
|
18
|
+
|
|
19
|
+
function d { wrap_in_shell_script mcfg devops @args }
|
|
20
|
+
function c { wrap_in_shell_script mcfg cloud @args }
|
|
21
|
+
function a { wrap_in_shell_script mcfg agents @args }
|
|
22
|
+
function sx { wrap_in_shell_script mcfg sessions @args }
|
|
23
|
+
function fx { wrap_in_shell_script mcfg ftpx @args }
|
|
24
|
+
function f { wrap_in_shell_script mcfg fire @args }
|
|
25
|
+
function rr { wrap_in_shell_script mcfg croshell @args }
|
|
26
|
+
function u { wrap_in_shell_script mcfg utils @args }
|
|
27
|
+
function t { wrap_in_shell_script mcfg terminal @args }
|
|
28
|
+
function ms { wrap_in_shell_script mcfg msearch @args }
|
|
29
|
+
|
|
30
|
+
Write-Host "mcfg command aliases are now defined in this PowerShell session."
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/uv.ps1").Content
|
|
3
|
+
# iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/scripts/windows/wrap_mcfg.ps1").Content
|
|
4
|
+
|
|
5
|
+
uv tool install --upgrade --python 3.14 machineconfig
|
|
6
|
+
|
|
7
|
+
devops install --group sysabc
|
|
8
|
+
|
|
9
|
+
# configs
|
|
10
|
+
devops config copy-assets both
|
|
11
|
+
devops config public --method copy --on-conflict overwrite-default-path --which all
|
|
12
|
+
devops config shell
|
|
13
|
+
devops config shell --which nushell
|
|
14
|
+
|
|
15
|
+
devops install --group termabc
|
|
16
|
+
wt # start Windows Terminal to pick up config changes
|
|
17
|
+
devops install --group gui
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
from pathlib import Path
|
|
2
1
|
from typing import Optional, Any
|
|
3
2
|
|
|
4
3
|
from datetime import datetime, timezone, timedelta
|
|
@@ -72,7 +71,6 @@ def split_list[T](sequence: list[T], every: Optional[int]=None, to: Optional[int
|
|
|
72
71
|
|
|
73
72
|
def pprint(obj: dict[Any, Any], title: str) -> None:
|
|
74
73
|
from rich import inspect
|
|
75
|
-
|
|
76
74
|
inspect(type("TempStruct", (object,), obj)(), value=False, title=title, docs=False, dunder=False, sort=False)
|
|
77
75
|
|
|
78
76
|
|
|
@@ -97,14 +95,18 @@ def human_friendly_dict(d: dict[str, Any]) -> dict[str, Any]:
|
|
|
97
95
|
return result
|
|
98
96
|
|
|
99
97
|
|
|
100
|
-
def get_repo_root(path: Path) -> Optional[Path]:
|
|
98
|
+
def get_repo_root(path: "Path") -> Optional["Path"]:
|
|
101
99
|
from git import Repo, InvalidGitRepositoryError
|
|
102
|
-
|
|
103
100
|
try:
|
|
104
|
-
repo = Repo(
|
|
101
|
+
repo = Repo(path, search_parent_directories=True)
|
|
105
102
|
root = repo.working_tree_dir
|
|
106
103
|
if root is not None:
|
|
104
|
+
from pathlib import Path
|
|
107
105
|
return Path(root)
|
|
108
106
|
except InvalidGitRepositoryError:
|
|
109
107
|
pass
|
|
110
108
|
return None
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
if __name__ == "__main__":
|
|
112
|
+
from pathlib import Path
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# OneDrive API without rclone
|
|
2
|
+
|
|
3
|
+
This module provides direct OneDrive integration using Microsoft Graph API without requiring rclone.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- ✅ Automatic token refresh when expired
|
|
8
|
+
- ✅ Persistent token storage
|
|
9
|
+
- ✅ Upload/download files with progress tracking
|
|
10
|
+
- ✅ Support for large file uploads (chunked)
|
|
11
|
+
- ✅ Direct OAuth2 authentication setup
|
|
12
|
+
|
|
13
|
+
## Quick Start
|
|
14
|
+
|
|
15
|
+
### Option 1: Direct OAuth Setup (Recommended)
|
|
16
|
+
|
|
17
|
+
1. **Set up Azure App Registration:**
|
|
18
|
+
- Go to [Azure Portal](https://portal.azure.com)
|
|
19
|
+
- Navigate to 'Azure Active Directory' > 'App registrations'
|
|
20
|
+
- Click 'New registration'
|
|
21
|
+
- Name: 'OneDrive API Access'
|
|
22
|
+
- Redirect URI: `http://localhost:8080/callback`
|
|
23
|
+
- Add permissions: `Files.ReadWrite.All` and `offline_access`
|
|
24
|
+
|
|
25
|
+
2. **Set environment variables:**
|
|
26
|
+
```bash
|
|
27
|
+
export ONEDRIVE_CLIENT_ID='your_client_id_here'
|
|
28
|
+
export ONEDRIVE_REDIRECT_URI='http://localhost:8080/callback'
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
3. **Run initial setup:**
|
|
32
|
+
```python
|
|
33
|
+
from transaction import setup_oauth_authentication
|
|
34
|
+
setup_oauth_authentication()
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Option 2: Using existing rclone token
|
|
38
|
+
|
|
39
|
+
If you already have rclone configured, the system will automatically use and refresh your existing tokens.
|
|
40
|
+
|
|
41
|
+
## Usage Examples
|
|
42
|
+
|
|
43
|
+
```python
|
|
44
|
+
from transaction import push_to_onedrive, pull_from_onedrive
|
|
45
|
+
|
|
46
|
+
# Upload a file
|
|
47
|
+
success = push_to_onedrive('/path/to/local/file.pdf', '/Documents/file.pdf')
|
|
48
|
+
|
|
49
|
+
# Download a file
|
|
50
|
+
success = pull_from_onedrive('/Documents/file.pdf', '/path/to/local/downloaded.pdf')
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Token Management
|
|
54
|
+
|
|
55
|
+
### Automatic Token Refresh
|
|
56
|
+
|
|
57
|
+
The system automatically handles token refresh:
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
from transaction import get_access_token
|
|
61
|
+
|
|
62
|
+
# This will automatically refresh if expired
|
|
63
|
+
token = get_access_token()
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Manual Token Operations
|
|
67
|
+
|
|
68
|
+
```python
|
|
69
|
+
from transaction import refresh_access_token, save_token_to_file, load_token_from_file
|
|
70
|
+
|
|
71
|
+
# Manually refresh token
|
|
72
|
+
new_token = refresh_access_token()
|
|
73
|
+
|
|
74
|
+
# Save token to file
|
|
75
|
+
save_token_to_file(token_data)
|
|
76
|
+
|
|
77
|
+
# Load token from file
|
|
78
|
+
token_data = load_token_from_file()
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## How Token Renewal Works
|
|
82
|
+
|
|
83
|
+
1. **Automatic Detection**: The system checks token expiry before each API call
|
|
84
|
+
2. **Refresh Attempt**: If expired, it automatically uses the refresh token to get a new access token
|
|
85
|
+
3. **Persistent Storage**: New tokens are saved to `~/.onedrive_token.json` for future use
|
|
86
|
+
4. **Fallback**: If refresh fails, it provides clear instructions for manual intervention
|
|
87
|
+
|
|
88
|
+
## No rclone Required
|
|
89
|
+
|
|
90
|
+
This implementation eliminates the need for rclone by:
|
|
91
|
+
|
|
92
|
+
- Using Microsoft Graph API directly
|
|
93
|
+
- Implementing OAuth2 flow natively
|
|
94
|
+
- Managing token lifecycle automatically
|
|
95
|
+
- Providing persistent token storage
|
|
96
|
+
|
|
97
|
+
## Error Handling
|
|
98
|
+
|
|
99
|
+
The system gracefully handles various scenarios:
|
|
100
|
+
|
|
101
|
+
- Expired tokens → Automatic refresh
|
|
102
|
+
- Network errors → Detailed error messages
|
|
103
|
+
- Missing permissions → Clear setup instructions
|
|
104
|
+
- Invalid tokens → Step-by-step recovery guide
|
|
105
|
+
|
|
106
|
+
## Files Created
|
|
107
|
+
|
|
108
|
+
- `~/.onedrive_token.json`: Encrypted token storage (chmod 600)
|
|
109
|
+
- Token is automatically loaded on import
|
|
110
|
+
|
|
111
|
+
## Security
|
|
112
|
+
|
|
113
|
+
- Tokens are stored with restrictive permissions (600)
|
|
114
|
+
- Client secrets are optional (public client mode supported)
|
|
115
|
+
- Refresh tokens are securely managed
|
|
116
|
+
- No sensitive data in logs
|
|
117
|
+
|
|
118
|
+
## Troubleshooting
|
|
119
|
+
|
|
120
|
+
### Token Refresh Failed
|
|
121
|
+
```python
|
|
122
|
+
# Try manual refresh
|
|
123
|
+
from transaction import refresh_access_token
|
|
124
|
+
token = refresh_access_token()
|
|
125
|
+
|
|
126
|
+
# Or re-run OAuth setup
|
|
127
|
+
from transaction import setup_oauth_authentication
|
|
128
|
+
setup_oauth_authentication()
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Permission Errors
|
|
132
|
+
Make sure your Azure app has the correct permissions:
|
|
133
|
+
- `Files.ReadWrite.All` (Delegated)
|
|
134
|
+
- `offline_access` (Delegated)
|
|
135
|
+
|
|
136
|
+
### Network Issues
|
|
137
|
+
Check your firewall allows connections to:
|
|
138
|
+
- `https://login.microsoftonline.com`
|
|
139
|
+
- `https://graph.microsoft.com`
|