machineconfig 3.99__py3-none-any.whl → 7.66__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of machineconfig might be problematic. Click here for more details.
- machineconfig/__init__.py +0 -28
- machineconfig/cluster/remote/distribute.py +0 -1
- machineconfig/cluster/remote/file_manager.py +0 -2
- machineconfig/cluster/remote/script_execution.py +1 -2
- machineconfig/cluster/sessions_managers/{enhanced_command_runner.py → helpers/enhanced_command_runner.py} +4 -6
- machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py +145 -0
- machineconfig/cluster/sessions_managers/utils/load_balancer.py +53 -0
- machineconfig/cluster/sessions_managers/utils/maker.py +69 -0
- machineconfig/cluster/sessions_managers/wt_local.py +128 -330
- machineconfig/cluster/sessions_managers/wt_local_manager.py +53 -187
- machineconfig/cluster/sessions_managers/wt_remote.py +51 -43
- machineconfig/cluster/sessions_managers/wt_remote_manager.py +49 -197
- 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 +22 -172
- machineconfig/cluster/sessions_managers/zellij_remote.py +40 -41
- machineconfig/cluster/sessions_managers/zellij_remote_manager.py +13 -10
- 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 -16
- machineconfig/jobs/installer/custom/boxes.py +61 -0
- machineconfig/jobs/installer/custom/gh.py +69 -53
- machineconfig/jobs/installer/custom/hx.py +77 -20
- machineconfig/jobs/installer/custom_dev/alacritty.py +45 -30
- machineconfig/jobs/installer/custom_dev/brave.py +43 -35
- machineconfig/jobs/installer/custom_dev/bypass_paywall.py +31 -20
- machineconfig/jobs/installer/custom_dev/cloudflare_warp_cli.py +23 -0
- machineconfig/jobs/installer/custom_dev/code.py +33 -21
- machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +30 -0
- machineconfig/jobs/installer/custom_dev/espanso.py +64 -41
- machineconfig/jobs/installer/custom_dev/goes.py +41 -36
- machineconfig/jobs/installer/custom_dev/lvim.py +49 -33
- machineconfig/jobs/installer/custom_dev/nerdfont.py +71 -47
- machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +32 -26
- machineconfig/jobs/installer/custom_dev/redis.py +51 -33
- machineconfig/jobs/installer/custom_dev/sysabc.py +119 -0
- machineconfig/jobs/installer/custom_dev/wezterm.py +55 -39
- machineconfig/jobs/installer/custom_dev/winget.py +1 -0
- machineconfig/jobs/installer/installer_data.json +3406 -0
- 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/ngrok.sh +6 -0
- machineconfig/jobs/installer/linux_scripts/q.sh +9 -0
- 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 +255 -0
- machineconfig/logger.py +0 -1
- machineconfig/profile/backup.toml +49 -0
- machineconfig/profile/bash_shell_profiles.md +11 -0
- machineconfig/profile/create_helper.py +74 -0
- machineconfig/profile/create_links.py +288 -0
- machineconfig/profile/create_links_export.py +100 -0
- machineconfig/profile/create_shell_profile.py +136 -0
- machineconfig/profile/mapper.toml +258 -0
- machineconfig/scripts/Restore-ThunderbirdProfile.ps1 +92 -0
- machineconfig/scripts/__init__.py +0 -4
- machineconfig/scripts/linux/{share_cloud.sh → other/share_cloud.sh} +14 -25
- machineconfig/scripts/linux/wrap_mcfg +47 -0
- machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
- machineconfig/scripts/python/agents.py +198 -0
- machineconfig/scripts/python/ai/command_runner/command_runner.sh +9 -0
- machineconfig/scripts/python/ai/command_runner/prompt.txt +9 -0
- machineconfig/scripts/python/ai/generate_files.py +307 -42
- machineconfig/scripts/python/ai/initai.py +3 -28
- 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/instructions/python/dev.instructions.md +1 -1
- machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +16 -0
- machineconfig/scripts/python/ai/solutions/generic.py +27 -4
- machineconfig/scripts/python/ai/vscode_tasks.py +37 -0
- machineconfig/scripts/python/cloud.py +29 -0
- machineconfig/scripts/python/croshell.py +117 -181
- machineconfig/scripts/python/define.py +31 -0
- machineconfig/scripts/python/devops.py +44 -124
- machineconfig/scripts/python/devops_navigator.py +10 -0
- machineconfig/scripts/python/env_manager/__init__.py +1 -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/explore.py +49 -0
- machineconfig/scripts/python/fire_jobs.py +106 -244
- machineconfig/scripts/python/ftpx.py +125 -68
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.json +14 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +37 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_cursor_agents.py +22 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +42 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
- machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py +110 -0
- machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +34 -0
- machineconfig/scripts/python/helpers_agents/fire_agents_load_balancer.py +22 -0
- machineconfig/scripts/python/helpers_agents/templates/prompt.txt +6 -0
- machineconfig/scripts/python/helpers_agents/templates/template.ps1 +14 -0
- machineconfig/scripts/python/helpers_agents/templates/template.sh +24 -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} +11 -19
- machineconfig/scripts/python/{cloud_sync.py → helpers_cloud/cloud_sync.py} +12 -18
- machineconfig/scripts/python/{helpers → helpers_cloud}/helpers2.py +3 -3
- machineconfig/scripts/python/helpers_croshell/crosh.py +39 -0
- machineconfig/scripts/python/{start_slidev.py → helpers_croshell/start_slidev.py} +17 -7
- machineconfig/scripts/python/helpers_devops/cli_config.py +95 -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 +134 -0
- machineconfig/scripts/python/helpers_devops/cli_repos.py +182 -0
- machineconfig/scripts/python/helpers_devops/cli_self.py +134 -0
- machineconfig/scripts/python/helpers_devops/cli_share_file.py +137 -0
- machineconfig/scripts/python/helpers_devops/cli_share_server.py +141 -0
- machineconfig/scripts/python/helpers_devops/cli_terminal.py +156 -0
- 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 +511 -0
- machineconfig/scripts/python/helpers_devops/devops_update_repos.py +269 -0
- 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} +2 -2
- machineconfig/scripts/python/helpers_fire_command/__init__.py +0 -0
- machineconfig/scripts/python/{helpers/helpers4.py → helpers_fire_command/file_wrangler.py} +57 -87
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +145 -0
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +110 -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}/fzfag +1 -1
- machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfg +1 -1
- machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfrga +1 -1
- 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 +588 -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_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} +6 -7
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +218 -0
- machineconfig/scripts/python/helpers_repos/count_lines.py +348 -0
- machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +17 -0
- machineconfig/scripts/python/helpers_repos/entrypoint.py +77 -0
- machineconfig/scripts/python/helpers_repos/grource.py +340 -0
- machineconfig/scripts/python/{repos_helper_record.py → helpers_repos/record.py} +7 -4
- 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 +58 -0
- machineconfig/scripts/python/helpers_utils/download.py +152 -0
- machineconfig/scripts/python/helpers_utils/path.py +108 -0
- machineconfig/scripts/python/interactive.py +79 -160
- machineconfig/scripts/python/machineconfig.py +63 -0
- machineconfig/scripts/python/msearch.py +21 -0
- machineconfig/scripts/python/nw/__init__.py +0 -0
- machineconfig/scripts/python/{devops_add_identity.py → nw/devops_add_identity.py} +1 -3
- machineconfig/scripts/python/{devops_add_ssh_key.py → nw/devops_add_ssh_key.py} +74 -44
- machineconfig/scripts/{linux → python/nw}/mount_nfs +1 -1
- machineconfig/scripts/python/{mount_nfs.py → nw/mount_nfs.py} +19 -16
- machineconfig/scripts/{linux → python/nw}/mount_nw_drive +1 -2
- machineconfig/scripts/python/{mount_ssh.py → nw/mount_ssh.py} +7 -8
- machineconfig/scripts/python/{onetimeshare.py → nw/onetimeshare.py} +0 -1
- machineconfig/scripts/python/nw/ssh_debug_linux.py +391 -0
- machineconfig/scripts/python/nw/ssh_debug_windows.py +338 -0
- machineconfig/scripts/python/{wifi_conn.py → nw/wifi_conn.py} +1 -53
- machineconfig/scripts/python/{wsl_windows_transfer.py → nw/wsl_windows_transfer.py} +6 -5
- machineconfig/scripts/python/sessions.py +167 -0
- machineconfig/scripts/python/terminal.py +127 -0
- machineconfig/scripts/python/utils.py +66 -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 +60 -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/fzf_edit.ps1 +2 -2
- 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 +55 -31
- machineconfig/settings/shells/nushell/config.nu +1 -34
- machineconfig/settings/shells/nushell/init.nu +127 -0
- machineconfig/settings/shells/pwsh/init.ps1 +60 -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/yazi/init.lua +57 -0
- machineconfig/settings/yazi/keymap_linux.toml +79 -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/yazi.toml +13 -0
- machineconfig/setup_linux/__init__.py +10 -0
- machineconfig/setup_linux/apps_desktop.sh +89 -0
- machineconfig/setup_linux/apps_gui.sh +64 -0
- machineconfig/setup_linux/{nix → others}/cli_installation.sh +9 -29
- 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_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 +8 -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 +10 -0
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +27 -9
- machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +16 -0
- machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +37 -23
- machineconfig/utils/accessories.py +7 -5
- machineconfig/utils/cloud/onedrive/README.md +139 -0
- machineconfig/utils/code.py +140 -93
- 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 +118 -0
- machineconfig/utils/files/dbms.py +257 -0
- machineconfig/utils/files/headers.py +68 -0
- machineconfig/utils/files/ouch/__init__.py +0 -0
- machineconfig/utils/files/ouch/decompress.py +45 -0
- machineconfig/utils/files/read.py +95 -0
- machineconfig/utils/installer_utils/github_release_bulk.py +2 -12
- machineconfig/utils/installer_utils/installer_class.py +68 -126
- machineconfig/utils/installer_utils/installer_cli.py +181 -0
- machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +38 -85
- machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +69 -69
- machineconfig/utils/io.py +77 -23
- machineconfig/utils/links.py +309 -100
- machineconfig/utils/meta.py +255 -0
- machineconfig/utils/notifications.py +1 -1
- machineconfig/utils/options.py +10 -25
- machineconfig/utils/path_extended.py +94 -104
- machineconfig/utils/path_helper.py +75 -22
- machineconfig/utils/procs.py +50 -74
- machineconfig/utils/scheduler.py +94 -97
- machineconfig/utils/scheduling.py +0 -3
- machineconfig/utils/schemas/fire_agents/fire_agents_input.py +5 -17
- machineconfig/utils/schemas/installer/installer_types.py +0 -1
- machineconfig/utils/schemas/layouts/layout_types.py +2 -1
- machineconfig/utils/source_of_truth.py +3 -6
- machineconfig/utils/ssh.py +742 -254
- machineconfig/utils/ssh_utils/utils.py +0 -0
- machineconfig/utils/terminal.py +3 -140
- machineconfig/utils/tst.py +20 -0
- machineconfig/utils/upgrade_packages.py +109 -28
- machineconfig/utils/ve.py +13 -5
- machineconfig-7.66.dist-info/METADATA +124 -0
- machineconfig-7.66.dist-info/RECORD +451 -0
- machineconfig-7.66.dist-info/entry_points.txt +15 -0
- machineconfig/cluster/templates/utils.py +0 -51
- machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -49
- machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -85
- machineconfig/jobs/installer/packages_custom_dev.json +0 -226
- machineconfig/jobs/installer/packages_custom_essential.json +0 -39
- machineconfig/jobs/installer/packages_github_dev.json +0 -1110
- machineconfig/jobs/installer/packages_github_essential.json +0 -804
- machineconfig/jobs/linux/msc/cli_agents.sh +0 -37
- machineconfig/jobs/python/create_bootable_media.py +0 -16
- machineconfig/jobs/python/python_cargo_build_share.py +0 -59
- machineconfig/jobs/python/python_ve_symlink.py +0 -29
- machineconfig/jobs/python/tasks.py +0 -3
- machineconfig/jobs/python/vscode/api.py +0 -49
- machineconfig/jobs/python/vscode/sync_code.py +0 -58
- 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 -170
- machineconfig/profile/shell.py +0 -176
- machineconfig/scripts/cloud/init.sh +0 -119
- 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/fire_agents +0 -2
- machineconfig/scripts/linux/ftpx +0 -2
- machineconfig/scripts/linux/fzf2g +0 -21
- machineconfig/scripts/linux/fzffg +0 -25
- machineconfig/scripts/linux/gh_models +0 -2
- machineconfig/scripts/linux/initai +0 -2
- machineconfig/scripts/linux/kill_process +0 -2
- machineconfig/scripts/linux/programs +0 -21
- machineconfig/scripts/linux/repos +0 -2
- machineconfig/scripts/linux/scheduler +0 -2
- machineconfig/scripts/linux/share_smb +0 -1
- 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/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -5
- machineconfig/scripts/python/cloud_repo_sync.py +0 -186
- machineconfig/scripts/python/devops_devapps_install.py +0 -159
- machineconfig/scripts/python/devops_update_repos.py +0 -180
- machineconfig/scripts/python/dotfile.py +0 -52
- machineconfig/scripts/python/fire_agents.py +0 -175
- machineconfig/scripts/python/fire_agents_help_launch.py +0 -143
- machineconfig/scripts/python/fire_agents_load_balancer.py +0 -50
- machineconfig/scripts/python/fire_jobs_args_helper.py +0 -75
- machineconfig/scripts/python/fire_jobs_layout_helper.py +0 -74
- 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 -114
- machineconfig/scripts/python/repos.py +0 -80
- machineconfig/scripts/python/repos_helper_action.py +0 -335
- machineconfig/scripts/python/share_terminal.py +0 -104
- 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/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/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/repos.ps1 +0 -1
- machineconfig/scripts/windows/scheduler.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/setup_linux/others/openssh-server_add_pub_key.sh +0 -57
- machineconfig/setup_linux/web_shortcuts/ascii_art.sh +0 -93
- 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-3.99.dist-info/METADATA +0 -167
- machineconfig-3.99.dist-info/RECORD +0 -409
- machineconfig-3.99.dist-info/entry_points.txt +0 -18
- machineconfig/cluster/{templates → remote}/run_cloud.py +0 -0
- machineconfig/cluster/{templates → remote}/run_cluster.py +0 -0
- machineconfig/cluster/{templates → remote}/run_remote.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/helpers_agents}/__init__.py +0 -0
- machineconfig/scripts/python/{helpers → 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/{jobs/windows/msc/cli_agents.bat → 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/{jobs/windows/msc/cli_agents.ps1 → scripts/python/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/python/{fire_jobs_streamlit_helper.py → helpers_devops/__init__.py} +0 -0
- /machineconfig/scripts/{windows/share_nfs.ps1 → 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_msearch/scripts_linux}/skrg +0 -0
- /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfb.ps1 +0 -0
- /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfg.ps1 +0 -0
- /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfrga.bat +0 -0
- /machineconfig/scripts/{linux → python/nw}/mount_drive +0 -0
- /machineconfig/scripts/python/{mount_nw_drive.py → nw/mount_nw_drive.py} +0 -0
- /machineconfig/scripts/{linux → python/nw}/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-3.99.dist-info → machineconfig-7.66.dist-info}/WHEEL +0 -0
- {machineconfig-3.99.dist-info → machineconfig-7.66.dist-info}/top_level.txt +0 -0
|
@@ -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,10 @@
|
|
|
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
|
+
& "$HOME\.local\bin\uv.exe" python install 3.14
|
|
@@ -1,12 +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
|
-
|
|
6
|
+
function devops { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.66" devops $args }
|
|
7
|
+
function cloud { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.66" cloud $args }
|
|
8
|
+
function agents { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.66" agents $args }
|
|
9
|
+
function sessions { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.66" sessions $args }
|
|
10
|
+
function ftpx { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.66" ftpx $args }
|
|
11
|
+
function fire { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.66" fire $args }
|
|
12
|
+
function croshell { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.66" croshell $args }
|
|
13
|
+
function utils { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.66" utils $args }
|
|
14
|
+
function terminal { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.66" terminal $args }
|
|
15
|
+
function msearch { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.66" 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,16 @@
|
|
|
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
|
+
uv tool install --upgrade --python 3.14 machineconfig both
|
|
5
|
+
|
|
6
|
+
devops install --group sysabc
|
|
7
|
+
|
|
8
|
+
# configs
|
|
9
|
+
devops config copy-assets both
|
|
10
|
+
devops config public --method copy --on-conflict overwrite-default-path --which all
|
|
11
|
+
devops config shell
|
|
12
|
+
devops config shell --which nushell
|
|
13
|
+
|
|
14
|
+
wt # start Windows Terminal to pick up config changes
|
|
15
|
+
devops install --group termabc
|
|
16
|
+
devops install --group gui
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"""Set Windows Terminal Settings"""
|
|
2
2
|
|
|
3
3
|
from machineconfig.utils.accessories import randstr
|
|
4
|
-
from machineconfig.utils.path_extended import PathExtended
|
|
4
|
+
from machineconfig.utils.path_extended import PathExtended
|
|
5
5
|
from machineconfig.utils.io import read_json, save_json
|
|
6
6
|
import platform
|
|
7
7
|
|
|
8
8
|
# from uuid import uuid4
|
|
9
9
|
import os
|
|
10
10
|
from typing import Any
|
|
11
|
+
from rich import box
|
|
11
12
|
from rich.console import Console
|
|
12
13
|
from rich.panel import Panel
|
|
13
14
|
|
|
@@ -28,34 +29,41 @@ system = platform.system() # Linux or Windows
|
|
|
28
29
|
assert system == "Windows", "This script is only for Windows."
|
|
29
30
|
|
|
30
31
|
|
|
32
|
+
def render_banner(message: str, title: str, border_style: str, box_style: box.Box) -> None:
|
|
33
|
+
console.print(Panel.fit(message, title=title, border_style=border_style, box=box_style, padding=(1, 4)))
|
|
34
|
+
|
|
35
|
+
|
|
31
36
|
class TerminalSettings(object):
|
|
32
37
|
def __init__(self):
|
|
33
38
|
# Grabbing Terminal Settings file:
|
|
34
|
-
print(
|
|
39
|
+
console.print()
|
|
40
|
+
render_banner("🔍 INITIALIZING TERMINAL SETTINGS 🔍", "Windows Terminal", "cyan", box.DOUBLE)
|
|
41
|
+
console.print()
|
|
35
42
|
tmp = os.getenv("LOCALAPPDATA")
|
|
36
43
|
if not isinstance(tmp, str):
|
|
37
|
-
print("❌ ERROR: Could not find LOCALAPPDATA environment variable!")
|
|
44
|
+
console.print("❌ ERROR: Could not find LOCALAPPDATA environment variable!")
|
|
38
45
|
raise ValueError("Could not find LOCALAPPDATA environment variable.")
|
|
39
46
|
self.path = PathExtended(tmp).joinpath(r"Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json")
|
|
40
47
|
backup_name = f".orig_{randstr()}"
|
|
41
|
-
print(f"📝 Creating backup of original settings as {backup_name}...")
|
|
48
|
+
console.print(f"📝 Creating backup of original settings as {backup_name}...")
|
|
42
49
|
self.path.copy(append=backup_name)
|
|
43
|
-
print(f"📂 Loading Windows Terminal settings from: {self.path}")
|
|
50
|
+
console.print(f"📂 Loading Windows Terminal settings from: {self.path}")
|
|
44
51
|
self.dat: dict[str, Any] = read_json(self.path)
|
|
45
52
|
# Use a plain Python list for profiles
|
|
46
53
|
self.profs = list(self.dat["profiles"]["list"])
|
|
47
|
-
console
|
|
48
|
-
console.print(Panel(f"✅ Successfully loaded {len(self.profs)} profiles", title="[bold blue]Terminal Settings[/bold blue]", border_style="blue"))
|
|
54
|
+
console.print(Panel(f"✅ Successfully loaded {len(self.profs)} profiles", title="[bold blue]Terminal Settings[/bold blue]", border_style="blue", box=box.ROUNDED))
|
|
49
55
|
|
|
50
56
|
def save_terminal_settings(self):
|
|
51
|
-
print(
|
|
57
|
+
console.print()
|
|
58
|
+
console.print(f"💾 Saving terminal settings to: {self.path}")
|
|
52
59
|
self.dat["profiles"]["list"] = list(self.profs)
|
|
53
60
|
save_json(obj=self.dat, path=self.path, indent=5)
|
|
54
|
-
console.print(Panel("✅ Settings saved successfully!", title="[bold blue]Terminal Settings[/bold blue]", border_style="blue"))
|
|
61
|
+
console.print(Panel("✅ Settings saved successfully!", title="[bold blue]Terminal Settings[/bold blue]", border_style="blue", box=box.ROUNDED))
|
|
55
62
|
|
|
56
63
|
# ========================= Terminal Settings =========================================
|
|
57
64
|
def update_default_settings(self):
|
|
58
|
-
print(
|
|
65
|
+
console.print()
|
|
66
|
+
console.print("⚙️ Updating default terminal settings...")
|
|
59
67
|
# Changing start up settings:
|
|
60
68
|
self.dat["startOnUserLogin"] = True
|
|
61
69
|
self.dat["launchMode"] = "fullscreen"
|
|
@@ -64,12 +72,13 @@ class TerminalSettings(object):
|
|
|
64
72
|
self.dat["copyOnSelect"] = True
|
|
65
73
|
self.dat["profiles"]["defaults"]["padding"] = "0"
|
|
66
74
|
self.dat["profiles"]["defaults"]["useAcrylic"] = False
|
|
67
|
-
console.print(Panel("✅ Default settings updated", title="[bold blue]Terminal Settings[/bold blue]", border_style="blue"))
|
|
75
|
+
console.print(Panel("✅ Default settings updated", title="[bold blue]Terminal Settings[/bold blue]", border_style="blue", box=box.ROUNDED))
|
|
68
76
|
|
|
69
77
|
# 1- Customizing Powershell========================================================
|
|
70
78
|
# as opposed to Windows Powershell
|
|
71
79
|
def customize_powershell(self, nerd_font: bool = True):
|
|
72
|
-
print(
|
|
80
|
+
console.print()
|
|
81
|
+
console.print("🛠️ Customizing PowerShell profile...")
|
|
73
82
|
pwsh: dict[str, Any] = dict(
|
|
74
83
|
name="PowerShell",
|
|
75
84
|
commandline="pwsh",
|
|
@@ -79,45 +88,50 @@ class TerminalSettings(object):
|
|
|
79
88
|
startingDirectory="%USERPROFILE%", # "%USERPROFILE%", # None: inherent from parent process.
|
|
80
89
|
)
|
|
81
90
|
if nerd_font:
|
|
82
|
-
print("🔤 Setting PowerShell font to CaskaydiaCove Nerd Font...")
|
|
91
|
+
console.print("🔤 Setting PowerShell font to CaskaydiaCove Nerd Font...")
|
|
83
92
|
pwsh["font"] = dict(face="CaskaydiaCove Nerd Font") # because oh-my-posh uses glyphs from this font.
|
|
84
93
|
|
|
85
94
|
for idx, item in enumerate(self.profs):
|
|
86
95
|
if item["name"] == "PowerShell":
|
|
87
96
|
self.profs[idx].update(pwsh)
|
|
88
|
-
console.print(Panel("✅ PowerShell profile customized successfully", title="[bold blue]Terminal Settings[/bold blue]", border_style="blue"))
|
|
97
|
+
console.print(Panel("✅ PowerShell profile customized successfully", title="[bold blue]Terminal Settings[/bold blue]", border_style="blue", box=box.ROUNDED))
|
|
89
98
|
break
|
|
90
99
|
else:
|
|
91
|
-
console.print(Panel("❌ Couldn't customize PowerShell because profile not found, try to install it first.", title="[bold red]Terminal Settings[/bold red]", border_style="red"))
|
|
100
|
+
console.print(Panel("❌ Couldn't customize PowerShell because profile not found, try to install it first.", title="[bold red]Terminal Settings[/bold red]", border_style="red", box=box.ROUNDED))
|
|
92
101
|
|
|
93
102
|
def make_powershell_default_profile(self):
|
|
94
|
-
print(
|
|
103
|
+
console.print()
|
|
104
|
+
console.print("🌟 Setting PowerShell as the default profile...")
|
|
95
105
|
for profile in self.profs:
|
|
96
106
|
if profile["name"] == "PowerShell":
|
|
97
107
|
self.dat["defaultProfile"] = profile["guid"]
|
|
98
|
-
console.print(Panel("✅ PowerShell is now the default profile!", title="[bold blue]Terminal Settings[/bold blue]", border_style="blue"))
|
|
108
|
+
console.print(Panel("✅ PowerShell is now the default profile!", title="[bold blue]Terminal Settings[/bold blue]", border_style="blue", box=box.ROUNDED))
|
|
99
109
|
break
|
|
100
110
|
else:
|
|
101
|
-
console.print(Panel("❌ PowerShell profile was not found in the list of profiles and therefore was not made the default.", title="[bold red]Terminal Settings[/bold red]", border_style="red"))
|
|
111
|
+
console.print(Panel("❌ PowerShell profile was not found in the list of profiles and therefore was not made the default.", title="[bold red]Terminal Settings[/bold red]", border_style="red", box=box.ROUNDED))
|
|
102
112
|
|
|
103
113
|
|
|
104
114
|
def main():
|
|
105
|
-
print(
|
|
115
|
+
console.print()
|
|
116
|
+
render_banner("🖥️ WINDOWS TERMINAL SETUP 🖥️", "Windows Terminal", "cyan", box.DOUBLE)
|
|
117
|
+
console.print()
|
|
106
118
|
shell = {"powershell": "pwsh.exe", "Windows Powershell": "powershell.exe"}["powershell"].split(".exe", maxsplit=1)[0]
|
|
107
119
|
if shell == "pwsh":
|
|
108
|
-
print("🚀 Starting Windows Terminal configuration with PowerShell...")
|
|
120
|
+
console.print("🚀 Starting Windows Terminal configuration with PowerShell...")
|
|
109
121
|
ts = TerminalSettings()
|
|
110
122
|
ts.update_default_settings()
|
|
111
123
|
ts.customize_powershell(nerd_font=True)
|
|
112
124
|
ts.make_powershell_default_profile()
|
|
113
|
-
print("⌨️ Adding keyboard shortcut for pane zoom (ctrl+shift+z)...")
|
|
125
|
+
console.print("⌨️ Adding keyboard shortcut for pane zoom (ctrl+shift+z)...")
|
|
114
126
|
ts.dat["actions"].append({"command": "togglePaneZoom", "keys": "ctrl+shift+z"})
|
|
115
127
|
|
|
116
128
|
ts.save_terminal_settings()
|
|
117
|
-
print(
|
|
129
|
+
console.print()
|
|
130
|
+
render_banner("✨ WINDOWS TERMINAL SETUP COMPLETE ✨", "Windows Terminal", "green", box.DOUBLE)
|
|
131
|
+
console.print()
|
|
118
132
|
else:
|
|
119
133
|
error_msg = "❌ ERROR: Only PowerShell is supported, not Windows PowerShell!"
|
|
120
|
-
print(error_msg)
|
|
134
|
+
console.print(error_msg)
|
|
121
135
|
raise NotImplementedError(error_msg)
|
|
122
136
|
|
|
123
137
|
|
|
@@ -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`
|