machineconfig 6.82__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/cluster/remote/cloud_manager.py +1 -1
- machineconfig/cluster/sessions_managers/utils/maker.py +25 -13
- machineconfig/cluster/sessions_managers/wt_local.py +16 -221
- machineconfig/cluster/sessions_managers/wt_local_manager.py +55 -193
- machineconfig/cluster/sessions_managers/wt_remote_manager.py +42 -198
- machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
- machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
- machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
- machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
- machineconfig/cluster/sessions_managers/zellij_local_manager.py +3 -1
- machineconfig/cluster/sessions_managers/zellij_remote_manager.py +3 -2
- machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +2 -2
- machineconfig/jobs/installer/custom/boxes.py +2 -2
- machineconfig/jobs/installer/custom/hx.py +75 -18
- machineconfig/jobs/installer/custom/yazi.py +119 -0
- machineconfig/jobs/installer/custom_dev/brave.py +5 -3
- 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 +1 -1
- machineconfig/jobs/installer/custom_dev/nerdfont.py +1 -1
- machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +27 -22
- 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 +1287 -216
- machineconfig/jobs/installer/linux_scripts/q.sh +10 -7
- machineconfig/jobs/installer/linux_scripts/redis.sh +1 -0
- machineconfig/jobs/installer/package_groups.py +58 -89
- machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1 +129 -34
- machineconfig/logger.py +0 -1
- machineconfig/profile/create_helper.py +43 -16
- machineconfig/profile/create_links.py +2 -1
- machineconfig/profile/create_links_export.py +64 -18
- machineconfig/profile/create_shell_profile.py +78 -127
- machineconfig/profile/mapper.toml +15 -8
- machineconfig/scripts/__init__.py +0 -4
- machineconfig/scripts/linux/wrap_mcfg +46 -0
- machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
- machineconfig/scripts/python/agents.py +52 -37
- machineconfig/scripts/python/ai/initai.py +1 -1
- machineconfig/scripts/python/ai/scripts/command_runner.ps1 +33 -0
- machineconfig/scripts/python/ai/{command_runner → scripts}/command_runner.sh +1 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Thinking-Beast-Mode.chatmode.md → agents/Thinking-Beast-Mode.agent.md} +0 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md → agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md} +0 -1
- machineconfig/scripts/python/ai/solutions/copilot/{chatmodes/deepResearch.chatmode.md → agents/deepResearch.agent.md} +2 -2
- machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +5 -5
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +4 -0
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/watch_exec.prompt.md +20 -0
- machineconfig/scripts/python/ai/solutions/generic.py +1 -1
- machineconfig/scripts/python/ai/{generate_files.py → utils/generate_files.py} +2 -2
- machineconfig/scripts/python/ai/{vscode_tasks.py → utils/vscode_tasks.py} +7 -2
- machineconfig/scripts/python/croshell.py +77 -78
- machineconfig/scripts/python/devops.py +39 -21
- machineconfig/scripts/python/devops_navigator.py +0 -4
- machineconfig/scripts/python/env_manager/env_manager_tui.py +204 -0
- machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
- machineconfig/scripts/python/fire_jobs.py +84 -115
- machineconfig/scripts/python/ftpx.py +42 -16
- 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_fire → helpers_agents}/agentic_frameworks/fire_crush.json +1 -1
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +39 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/agentic_frameworks/fire_cursor_agents.py +3 -4
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +55 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_help_launch.py +32 -13
- machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_helper_types.py +11 -14
- machineconfig/scripts/python/helpers_agents/templates/prompt.txt +10 -0
- machineconfig/scripts/python/helpers_agents/templates/template.sh +32 -0
- machineconfig/scripts/python/helpers_cloud/cloud_copy.py +28 -21
- machineconfig/scripts/python/helpers_cloud/cloud_helpers.py +1 -1
- machineconfig/scripts/python/helpers_cloud/cloud_mount.py +19 -17
- machineconfig/scripts/python/helpers_cloud/cloud_sync.py +8 -7
- machineconfig/scripts/python/helpers_croshell/crosh.py +3 -3
- machineconfig/scripts/python/helpers_croshell/start_slidev.py +6 -7
- machineconfig/scripts/python/helpers_devops/cli_config.py +46 -61
- machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +67 -55
- machineconfig/scripts/python/helpers_devops/cli_nw.py +157 -16
- machineconfig/scripts/python/helpers_devops/cli_repos.py +55 -21
- machineconfig/scripts/python/helpers_devops/cli_self.py +98 -48
- machineconfig/scripts/python/helpers_devops/cli_share_file.py +137 -0
- machineconfig/scripts/python/helpers_devops/cli_share_server.py +80 -42
- machineconfig/scripts/python/helpers_devops/{cli_terminal.py → cli_share_terminal.py} +15 -17
- machineconfig/scripts/python/helpers_devops/cli_utils.py +3 -128
- machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +4 -4
- machineconfig/scripts/python/helpers_devops/devops_status.py +7 -19
- machineconfig/scripts/python/helpers_devops/themes/choose_wezterm_theme.py +1 -1
- machineconfig/scripts/python/{helpers_fire/helpers4.py → helpers_fire_command/file_wrangler.py} +56 -20
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +26 -16
- machineconfig/scripts/python/helpers_msearch/__init__.py +5 -0
- machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfg +3 -3
- machineconfig/scripts/python/helpers_msearch/scripts_windows/fzfg.ps1 +59 -0
- machineconfig/scripts/python/helpers_navigator/command_tree.py +50 -18
- machineconfig/scripts/python/helpers_network/address.py +132 -0
- machineconfig/scripts/python/{nw → helpers_network}/devops_add_ssh_key.py +24 -5
- machineconfig/scripts/python/{nw → helpers_network}/mount_nfs +0 -1
- machineconfig/scripts/python/{nw → helpers_network}/mount_nfs.py +2 -2
- machineconfig/scripts/python/{nw → helpers_network}/mount_ssh.py +1 -1
- machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_linux.py +7 -7
- machineconfig/scripts/python/{nw → helpers_network}/ssh_debug_windows.py +4 -4
- machineconfig/scripts/python/{nw → helpers_network}/wifi_conn.py +1 -53
- machineconfig/scripts/python/{nw → helpers_network}/wsl_windows_transfer.py +3 -2
- machineconfig/scripts/python/helpers_repos/clone.py +0 -1
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +46 -19
- machineconfig/scripts/python/helpers_repos/entrypoint.py +2 -1
- machineconfig/scripts/python/helpers_repos/grource.py +1 -1
- machineconfig/scripts/python/helpers_repos/record.py +2 -1
- machineconfig/scripts/python/helpers_repos/repo_analyzer_1.py +160 -0
- machineconfig/scripts/python/helpers_repos/{count_lines.py → repo_analyzer_2.py} +113 -192
- machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +20 -13
- machineconfig/scripts/python/helpers_utils/download.py +150 -0
- machineconfig/scripts/python/helpers_utils/path.py +185 -0
- machineconfig/scripts/python/interactive.py +19 -26
- machineconfig/scripts/python/{mcfg.py → mcfg_entry.py} +10 -0
- machineconfig/scripts/python/msearch.py +71 -0
- machineconfig/scripts/python/sessions.py +94 -25
- machineconfig/scripts/python/terminal.py +133 -0
- machineconfig/scripts/python/utils.py +28 -30
- machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
- machineconfig/scripts/windows/wrap_mcfg.ps1 +63 -0
- machineconfig/settings/broot/conf.toml +1 -1
- machineconfig/settings/helix/config.toml +16 -0
- machineconfig/settings/helix/languages.toml +13 -4
- machineconfig/settings/helix/yazi-picker.sh +12 -0
- machineconfig/settings/lf/linux/exe/lfcd.sh +1 -0
- machineconfig/settings/lf/linux/exe/previewer.sh +3 -2
- machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
- machineconfig/settings/lf/windows/lfrc +14 -16
- machineconfig/settings/marimo/marimo.toml +1 -1
- machineconfig/settings/marimo/snippets/globalize.py +34 -0
- machineconfig/settings/shells/bash/init.sh +43 -11
- machineconfig/settings/shells/ipy/profiles/default/startup/playext.py +1 -1
- machineconfig/settings/shells/nushell/config.nu +2 -32
- machineconfig/settings/shells/nushell/env.nu +45 -6
- machineconfig/settings/shells/nushell/init.nu +314 -0
- machineconfig/settings/shells/pwsh/init.ps1 +40 -14
- machineconfig/settings/shells/starship/starship.toml +16 -0
- machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
- machineconfig/settings/shells/wt/settings.json +14 -5
- machineconfig/settings/shells/zsh/init.sh +17 -19
- 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 +2 -1
- machineconfig/setup_linux/web_shortcuts/interactive.sh +27 -12
- machineconfig/setup_linux/web_shortcuts/live_from_github.sh +31 -0
- machineconfig/setup_mac/__init__.py +2 -3
- machineconfig/setup_mac/apps_gui.sh +248 -0
- machineconfig/setup_windows/__init__.py +3 -3
- machineconfig/setup_windows/uv.ps1 +8 -1
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +26 -11
- machineconfig/setup_windows/web_shortcuts/live_from_github.ps1 +30 -0
- machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
- machineconfig/utils/accessories.py +7 -4
- machineconfig/utils/code.py +99 -32
- machineconfig/utils/files/ascii_art.py +1 -1
- machineconfig/utils/files/headers.py +3 -2
- machineconfig/utils/installer_utils/github_release_bulk.py +156 -119
- machineconfig/utils/installer_utils/install_from_url.py +183 -0
- machineconfig/utils/installer_utils/installer_class.py +42 -99
- machineconfig/utils/installer_utils/installer_cli.py +175 -0
- machineconfig/utils/installer_utils/installer_helper.py +129 -0
- machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +36 -85
- machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +16 -61
- machineconfig/utils/io.py +69 -1
- machineconfig/utils/links.py +56 -38
- machineconfig/utils/meta.py +33 -18
- machineconfig/utils/options.py +46 -18
- machineconfig/utils/options_tv.py +119 -0
- machineconfig/utils/path_extended.py +44 -95
- machineconfig/utils/path_helper.py +76 -23
- machineconfig/utils/procs.py +1 -1
- machineconfig/utils/scheduler.py +20 -53
- machineconfig/utils/scheduling.py +0 -2
- machineconfig/utils/schemas/fire_agents/fire_agents_input.py +1 -1
- machineconfig/utils/schemas/layouts/layout_types.py +1 -1
- machineconfig/utils/ssh.py +159 -412
- 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 +1 -0
- machineconfig/utils/upgrade_packages.py +104 -28
- machineconfig/utils/ve.py +12 -4
- machineconfig-7.98.dist-info/METADATA +132 -0
- {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/RECORD +259 -196
- {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/entry_points.txt +4 -1
- machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -41
- machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -71
- machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -12
- machineconfig/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/mcfgs +0 -38
- machineconfig/scripts/linux/other/share_smb +0 -1
- machineconfig/scripts/linux/skrg +0 -4
- machineconfig/scripts/linux/warp-cli.sh +0 -122
- machineconfig/scripts/linux/z_ls +0 -104
- machineconfig/scripts/python/ai/command_runner/prompt.txt +0 -9
- machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py +0 -37
- machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py +0 -44
- machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py +0 -43
- machineconfig/scripts/python/helpers_fire/prompt.txt +0 -2
- machineconfig/scripts/python/helpers_fire/template.sh +0 -15
- machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +0 -17
- machineconfig/scripts/python/helpers_repos/secure_repo.py +0 -15
- machineconfig/scripts/python/nw/add_ssh_key.py +0 -148
- machineconfig/scripts/windows/fzfb.ps1 +0 -3
- machineconfig/scripts/windows/fzfg.ps1 +0 -2
- machineconfig/scripts/windows/fzfrga.bat +0 -20
- machineconfig/scripts/windows/mcfgs.ps1 +0 -17
- 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/apps.sh +0 -66
- machineconfig/setup_linux/others/cli_installation.sh +0 -137
- machineconfig/setup_mac/apps.sh +0 -73
- machineconfig/setup_windows/apps.ps1 +0 -62
- machineconfig/utils/installer_utils/installer.py +0 -225
- machineconfig-6.82.dist-info/METADATA +0 -82
- /machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +0 -0
- /machineconfig/scripts/python/{helpers_fire → ai/utils}/__init__.py +0 -0
- /machineconfig/scripts/python/{helpers_fire/agentic_frameworks → helpers_agents}/__init__.py +0 -0
- /machineconfig/scripts/python/{nw → helpers_agents/agentic_frameworks}/__init__.py +0 -0
- /machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_help_search.py +0 -0
- /machineconfig/scripts/python/{helpers_fire → helpers_agents}/fire_agents_load_balancer.py +0 -0
- /machineconfig/scripts/python/{helpers_fire → helpers_agents/templates}/template.ps1 +0 -0
- /machineconfig/{settings/shells/pwsh/profile.ps1 → scripts/python/helpers_fire_command/f.py} +0 -0
- /machineconfig/{settings/yazi/keymap.toml → scripts/python/helpers_network/__init__.py} +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/devops_add_identity.py +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/mount_drive +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/mount_nw_drive +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/mount_nw_drive.py +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/mount_smb +0 -0
- /machineconfig/scripts/python/{nw → helpers_network}/onetimeshare.py +0 -0
- /machineconfig/scripts/{Restore-ThunderbirdProfile.ps1 → windows/mounts/Restore-ThunderbirdProfile.ps1} +0 -0
- /machineconfig/{jobs/installer/powershell_scripts → setup_windows/ssh}/openssh-server_add_key.ps1 +0 -0
- /machineconfig/{jobs/installer/powershell_scripts → setup_windows/ssh}/openssh-server_copy-ssh-id.ps1 +0 -0
- {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/WHEEL +0 -0
- {machineconfig-6.82.dist-info → machineconfig-7.98.dist-info}/top_level.txt +0 -0
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import typer
|
|
3
|
-
from typing import Annotated
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
def analyze_repo_development(repo_path: Annotated[str, typer.Argument(..., help="Path to the git repository")]):
|
|
7
|
-
from machineconfig.scripts.python.helpers_repos import count_lines
|
|
8
|
-
from pathlib import Path
|
|
9
|
-
count_lines_path = Path(count_lines.__file__)
|
|
10
|
-
# --project $HOME/code/ machineconfig --group plot
|
|
11
|
-
cmd = f"""uv run --python 3.14 --with "machineconfig[plot]>=6.57" {count_lines_path} analyze-over-time {repo_path}"""
|
|
12
|
-
from machineconfig.utils.code import run_shell_script
|
|
13
|
-
run_shell_script(cmd)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if __name__ == "__main__":
|
|
17
|
-
pass
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import typer
|
|
3
|
-
from typing import Optional, Literal, Annotated
|
|
4
|
-
from pathlib import Path
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
def main(
|
|
8
|
-
cloud: Annotated[Optional[str], typer.Option(..., "--cloud", "-c", help="Cloud storage profile name. If not provided, uses default from config.")] = None,
|
|
9
|
-
repo: Annotated[Optional[str], typer.Option(..., "--repo", "-r", help="Path to the local repository. Defaults to cwd.")] = Path.cwd().as_posix(),
|
|
10
|
-
message: Annotated[Optional[str], typer.Option(..., "--message", "-m", help="Commit message for local changes.")] = None,
|
|
11
|
-
on_conflict: Annotated[Literal["ask", "push-local-merge", "overwrite-local", "stop-on-conflict", "remove-rclone-conflict"], typer.Option(..., "--on-conflict", "-oc", help="Action to take on merge conflict. Default is 'ask'.")] = "ask",
|
|
12
|
-
pwd: Annotated[Optional[str], typer.Option(..., "--password", help="Password for encryption/decryption of the remote repository.")] = None,
|
|
13
|
-
):
|
|
14
|
-
from machineconfig.scripts.python.helpers_repos.cloud_repo_sync import main as program_content
|
|
15
|
-
program_content(cloud=cloud, repo=repo, message=message, on_conflict=on_conflict, pwd=pwd)
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
"""SSH"""
|
|
2
|
-
|
|
3
|
-
from platform import system
|
|
4
|
-
from machineconfig.utils.source_of_truth import LIBRARY_ROOT
|
|
5
|
-
from machineconfig.utils.path_extended import PathExtended
|
|
6
|
-
from rich.console import Console
|
|
7
|
-
from rich.panel import Panel
|
|
8
|
-
from rich import box # Import box
|
|
9
|
-
from typing import Optional, Annotated
|
|
10
|
-
import typer
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
console = Console()
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
def get_add_ssh_key_script(path_to_key: PathExtended):
|
|
17
|
-
console.print(Panel("🔑 SSH KEY CONFIGURATION", title="[bold blue]SSH Setup[/bold blue]"))
|
|
18
|
-
if system() == "Linux" or system() == "Darwin":
|
|
19
|
-
authorized_keys = PathExtended.home().joinpath(".ssh/authorized_keys")
|
|
20
|
-
console.print(Panel(f"🐧 Linux SSH configuration\n📄 Authorized keys file: {authorized_keys}", title="[bold blue]System Info[/bold blue]"))
|
|
21
|
-
elif system() == "Windows":
|
|
22
|
-
authorized_keys = PathExtended("C:/ProgramData/ssh/administrators_authorized_keys")
|
|
23
|
-
console.print(Panel(f"🪟 Windows SSH configuration\n📄 Authorized keys file: {authorized_keys}", title="[bold blue]System Info[/bold blue]"))
|
|
24
|
-
else:
|
|
25
|
-
console.print(Panel("❌ ERROR: Unsupported operating system\nOnly Linux and Windows are supported", title="[bold red]Error[/bold red]"))
|
|
26
|
-
raise NotImplementedError
|
|
27
|
-
|
|
28
|
-
if authorized_keys.exists():
|
|
29
|
-
split = "\n"
|
|
30
|
-
keys_text = authorized_keys.read_text(encoding="utf-8").split(split)
|
|
31
|
-
key_count = len([k for k in keys_text if k.strip()])
|
|
32
|
-
console.print(Panel(f"🔍 Current SSH authorization status\n✅ Found {key_count} authorized key(s)", title="[bold blue]Status[/bold blue]"))
|
|
33
|
-
if path_to_key.read_text(encoding="utf-8") in authorized_keys.read_text(encoding="utf-8"):
|
|
34
|
-
console.print(Panel(f"⚠️ Key already authorized\nKey: {path_to_key.name}\nStatus: Already present in authorized_keys file\nNo action required", title="[bold yellow]Warning[/bold yellow]"))
|
|
35
|
-
program = ""
|
|
36
|
-
else:
|
|
37
|
-
console.print(Panel(f"➕ Adding new SSH key to authorized keys\n🔑 Key file: {path_to_key.name}", title="[bold blue]Action[/bold blue]"))
|
|
38
|
-
if system() == "Linux":
|
|
39
|
-
program = f"cat {path_to_key} >> ~/.ssh/authorized_keys"
|
|
40
|
-
elif system() == "Windows":
|
|
41
|
-
program_path = LIBRARY_ROOT.joinpath("setup_windows/add-sshkey.ps1")
|
|
42
|
-
program = program_path.expanduser().read_text(encoding="utf-8")
|
|
43
|
-
place_holder = r'$sshfile = "$env:USERPROFILE\.ssh\pubkey.pub"'
|
|
44
|
-
assert place_holder in program, f"This section performs string manipulation on the script {program_path} to add the key to the authorized_keys file. The script has changed and the string {place_holder} is not found."
|
|
45
|
-
program = program.replace(place_holder, f'$sshfile = "{path_to_key}"')
|
|
46
|
-
console.print(Panel("🔧 Configured PowerShell script for Windows\n📝 Replaced placeholder with actual key path", title="[bold blue]Configuration[/bold blue]"))
|
|
47
|
-
else:
|
|
48
|
-
raise NotImplementedError
|
|
49
|
-
else:
|
|
50
|
-
console.print(Panel(f"📝 Creating new authorized_keys file\n🔑 Using key: {path_to_key.name}", title="[bold blue]Action[/bold blue]"))
|
|
51
|
-
if system() == "Linux":
|
|
52
|
-
program = f"cat {path_to_key} > ~/.ssh/authorized_keys"
|
|
53
|
-
else:
|
|
54
|
-
program_path = LIBRARY_ROOT.joinpath("setup_windows/openssh-server_add-sshkey.ps1")
|
|
55
|
-
program = PathExtended(program_path).expanduser().read_text(encoding="utf-8").replace('$sshfile=""', f'$sshfile="{path_to_key}"')
|
|
56
|
-
console.print(Panel("🔧 Configured PowerShell script for Windows\n📝 Set key path in script", title="[bold blue]Configuration[/bold blue]"))
|
|
57
|
-
|
|
58
|
-
if system() == "Linux" or system() == "Darwin":
|
|
59
|
-
program += """
|
|
60
|
-
sudo chmod 700 ~/.ssh
|
|
61
|
-
sudo chmod 644 ~/.ssh/authorized_keys
|
|
62
|
-
sudo chmod 644 ~/.ssh/*.pub
|
|
63
|
-
sudo service ssh --full-restart
|
|
64
|
-
# from superuser.com/questions/215504/permissions-on-private-key-in-ssh-folder
|
|
65
|
-
"""
|
|
66
|
-
return program
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"""
|
|
71
|
-
# Common pitfalls:
|
|
72
|
-
# 🚫 Wrong line endings (LF/CRLF) in config files
|
|
73
|
-
# 🌐 Network port conflicts (try 2222 -> 2223) between WSL and Windows
|
|
74
|
-
# sudo service ssh restart
|
|
75
|
-
# sudo service ssh status
|
|
76
|
-
# sudo nano /etc/ssh/sshd_config
|
|
77
|
-
"""
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
def main(pub_path: Annotated[Optional[str], typer.Argument(..., help="Path to the public key file")] = None,
|
|
81
|
-
pub_choose: Annotated[bool, typer.Option(..., "--choose", "-c", help="Choose from available public keys in ~/.ssh")] = False,
|
|
82
|
-
pub_val: Annotated[bool, typer.Option(..., "--paste", "-p", help="Paste the public key content manually")] = False,
|
|
83
|
-
from_github: Annotated[Optional[str], typer.Option(..., "--from-github", "-g", help="Fetch public keys from a GitHub username")] = None
|
|
84
|
-
) -> None:
|
|
85
|
-
if pub_path:
|
|
86
|
-
key_path = PathExtended(pub_path).expanduser().absolute()
|
|
87
|
-
if not key_path.exists():
|
|
88
|
-
console.print(Panel(f"❌ ERROR: Provided key path does not exist\nPath: {key_path}", title="[bold red]Error[/bold red]"))
|
|
89
|
-
raise FileNotFoundError(f"Provided key path does not exist: {key_path}")
|
|
90
|
-
console.print(Panel(f"📄 Using provided public key file: {key_path}", title="[bold blue]Info[/bold blue]"))
|
|
91
|
-
program = get_add_ssh_key_script(key_path)
|
|
92
|
-
from machineconfig.utils.code import run_shell_script
|
|
93
|
-
run_shell_script(script=program)
|
|
94
|
-
console.print(Panel("✅ SSH KEY AUTHORIZATION COMPLETED", box=box.DOUBLE_EDGE, title_align="left"))
|
|
95
|
-
return
|
|
96
|
-
elif pub_choose:
|
|
97
|
-
console.print(Panel("🔐 SSH PUBLIC KEY AUTHORIZATION TOOL", box=box.DOUBLE_EDGE, title_align="left"))
|
|
98
|
-
console.print(Panel("🔍 Searching for public keys...", title="[bold blue]SSH Setup[/bold blue]", border_style="blue"))
|
|
99
|
-
pub_keys = PathExtended.home().joinpath(".ssh").search("*.pub")
|
|
100
|
-
if pub_keys:
|
|
101
|
-
console.print(Panel(f"✅ Found {len(pub_keys)} public key(s)", title="[bold green]Status[/bold green]", border_style="green"))
|
|
102
|
-
else:
|
|
103
|
-
console.print(Panel("⚠️ No public keys found", title="[bold yellow]Warning[/bold yellow]", border_style="yellow"))
|
|
104
|
-
return
|
|
105
|
-
console.print(Panel(f"🔄 Processing all {len(pub_keys)} public keys...", title="[bold blue]Processing[/bold blue]", border_style="blue"))
|
|
106
|
-
program = "\n\n\n".join([get_add_ssh_key_script(key) for key in pub_keys])
|
|
107
|
-
|
|
108
|
-
elif pub_val:
|
|
109
|
-
console.print(Panel("📋 Please provide a filename and paste the public key content", title="[bold blue]Input Required[/bold blue]", border_style="blue"))
|
|
110
|
-
key_filename = input("📝 File name (default: my_pasted_key.pub): ") or "my_pasted_key.pub"
|
|
111
|
-
key_path = PathExtended.home().joinpath(f".ssh/{key_filename}")
|
|
112
|
-
key_path.write_text(input("🔑 Paste the public key here: "), encoding="utf-8")
|
|
113
|
-
console.print(Panel(f"💾 Key saved to: {key_path}", title="[bold green]Success[/bold green]", border_style="green"))
|
|
114
|
-
program = get_add_ssh_key_script(key_path)
|
|
115
|
-
elif from_github:
|
|
116
|
-
console.print(Panel(f"🌐 Fetching public keys from GitHub user: {from_github}", title="[bold blue]GitHub Fetch[/bold blue]", border_style="blue"))
|
|
117
|
-
import requests
|
|
118
|
-
# $pubkey_url = 'https://github.com/thisismygitrepo.keys' # $pubkey_string = (Invoke-WebRequest $pubkey_url).Content
|
|
119
|
-
response = requests.get(f"https://api.github.com/users/{from_github}/keys")
|
|
120
|
-
if response.status_code != 200:
|
|
121
|
-
console.print(Panel(f"❌ ERROR: Failed to fetch keys from GitHub user {from_github}\nStatus Code: {response.status_code}", title="[bold red]Error[/bold red]", border_style="red"))
|
|
122
|
-
raise RuntimeError(f"Failed to fetch keys from GitHub user {from_github}: Status Code {response.status_code}")
|
|
123
|
-
keys = response.json()
|
|
124
|
-
if not keys:
|
|
125
|
-
console.print(Panel(f"⚠️ No public keys found for GitHub user: {from_github}", title="[bold yellow]Warning[/bold yellow]", border_style="yellow"))
|
|
126
|
-
return
|
|
127
|
-
console.print(Panel(f"✅ Found {len(keys)} public key(s) for user: {from_github}", title="[bold green]Success[/bold green]", border_style="green"))
|
|
128
|
-
key_path = PathExtended.home().joinpath(f".ssh/{from_github}_github_keys.pub")
|
|
129
|
-
key_path.write_text("\n".join([key["key"] for key in keys]), encoding="utf-8")
|
|
130
|
-
console.print(Panel(f"💾 Keys saved to: {key_path}", title="[bold green]Success[/bold green]", border_style="green"))
|
|
131
|
-
program = get_add_ssh_key_script(key_path)
|
|
132
|
-
else:
|
|
133
|
-
console.print(Panel("❌ ERROR: No method provided to add SSH key\nUse --help for options", title="[bold red]Error[/bold red]", border_style="red"))
|
|
134
|
-
raise ValueError("No method provided to add SSH key. Use --help for options.")
|
|
135
|
-
console.print(Panel("🚀 SSH KEY AUTHORIZATION READY\nRun the generated script to apply changes", box=box.DOUBLE_EDGE, title_align="left"))
|
|
136
|
-
from machineconfig.utils.code import run_shell_script
|
|
137
|
-
run_shell_script(script=program)
|
|
138
|
-
import socket
|
|
139
|
-
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
140
|
-
s.connect(('8.8.8.8',80))
|
|
141
|
-
local_ip_v4 = s.getsockname()[0]
|
|
142
|
-
s.close()
|
|
143
|
-
print(f"This computer is @ {local_ip_v4}")
|
|
144
|
-
console.print(Panel("✅ SSH KEY AUTHORIZATION COMPLETED", box=box.DOUBLE_EDGE, title_align="left"))
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
if __name__ == "__main__":
|
|
148
|
-
pass
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
REM adopted from https://github.com/phiresky/ripgrep-all/wiki/fzf-Integration
|
|
3
|
-
|
|
4
|
-
@echo off
|
|
5
|
-
setlocal
|
|
6
|
-
|
|
7
|
-
set RG_PREFIX=rga --files-with-matches
|
|
8
|
-
set FZF_DEFAULT_COMMAND=%RG_PREFIX% %1
|
|
9
|
-
for /f "delims=" %%i in ('fzf --sort --preview "rga --pretty --context 5 {q} {}" --phony -q %1 --bind "change:reload:%RG_PREFIX% {q}" --preview-window="70%:wrap"') do (
|
|
10
|
-
set FILE=%%i
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
if not "%FILE%" == "" (
|
|
14
|
-
echo Opening %FILE%
|
|
15
|
-
start "" "%FILE%"
|
|
16
|
-
) else (
|
|
17
|
-
echo No file selected.
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
endlocal
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# Generate a random name (based on current timestamp hashed with SHA256)
|
|
2
|
-
$timestamp = Get-Date -Format o | Get-FileHash -Algorithm SHA256
|
|
3
|
-
$randomName = ($timestamp.Hash.Substring(0, 16))
|
|
4
|
-
|
|
5
|
-
# Define the output path
|
|
6
|
-
$env:OP_PROGRAM_PATH = "$HOME/tmp_results/tmp_scripts/machineconfig/${randomName}.ps1"
|
|
7
|
-
|
|
8
|
-
# Run your equivalent command (replace with your actual command)
|
|
9
|
-
mcfg @args
|
|
10
|
-
|
|
11
|
-
# Check if the file exists
|
|
12
|
-
if (Test-Path $env:OP_PROGRAM_PATH) {
|
|
13
|
-
Write-Host "Found op program at: $env:OP_PROGRAM_PATH"
|
|
14
|
-
& $env:OP_PROGRAM_PATH
|
|
15
|
-
} else {
|
|
16
|
-
Write-Host "no op program found"
|
|
17
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
#!/bin/sh
|
|
2
|
-
# 🔍 Fuzzy Finder with Nano Editor Integration
|
|
3
|
-
|
|
4
|
-
# 📝 Open selected file in nano
|
|
5
|
-
nano (fzf2g) # space used for precedence in execution
|
|
6
|
-
|
|
7
|
-
# 💡 Alternative commands (commented):
|
|
8
|
-
# 🔎 FZF with bat preview:
|
|
9
|
-
# fzf --ansi --preview-window 'right:60%' --preview 'bat --color=always --style=numbers,grid,header --line-range :300 {}'
|
|
10
|
-
|
|
11
|
-
# 🪟 Windows Git Bash version:
|
|
12
|
-
# & "C:\Program Files\Git\usr\bin\nano.exe" (fzf --ansi --preview-window 'right:60%' --preview 'bat --color=always --style=numbers,grid,header --line-range :300 {}')
|
|
13
|
-
|
|
14
|
-
# 📜 PowerShell script integration:
|
|
15
|
-
# fzf | nano.ps1
|
|
16
|
-
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
nano.ps1 (fzfb) # space use for presedence in execution.
|
|
3
|
-
# fzf --ansi --preview-window 'right:60%' --preview 'bat --color=always --style=numbers,grid,header --line-range :300 {}'
|
|
4
|
-
# & "C:\Program Files\Git\usr\bin\nano.exe" (fzf --ansi --preview-window 'right:60%' --preview 'bat --color=always --style=numbers,grid,header --line-range :300 {}')
|
|
5
|
-
# fzf | nano.ps1
|
|
6
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
fzfb
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# --GROUP:ESSENTIAL_SYSTEM:git,nano,net-utils,wget,curl,nala,nvm,nodejs
|
|
5
|
-
echo "🔄 Updating apt package lists..."
|
|
6
|
-
echo "📥 Installing nala package manager..."
|
|
7
|
-
echo "📥 Installing essential network tools..."
|
|
8
|
-
echo "📥 Installing Node Version Manager (NVM)..."
|
|
9
|
-
sudo apt update -y || true
|
|
10
|
-
sudo apt install nala -y || true
|
|
11
|
-
sudo nala install curl wget gpg lsb-release apt-transport-https -y || true
|
|
12
|
-
sudo nala install git net-tools htop nano -y || true
|
|
13
|
-
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
|
14
|
-
echo "🔧 Configuring NVM environment..."
|
|
15
|
-
export NVM_DIR="$HOME/.nvm"
|
|
16
|
-
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
17
|
-
echo "📥 Installing latest Node.js..."
|
|
18
|
-
nvm install node || true
|
|
19
|
-
echo "📥 Installing SQLite - lightweight SQL database..."
|
|
20
|
-
echo "📥 Installing PostgreSQL client..."
|
|
21
|
-
echo "📥 Installing Redis command-line tools..."
|
|
22
|
-
sudo nala install sqlite3 -y || true
|
|
23
|
-
sudo nala install postgresql-client -y || true # # same for pgsq, when the server runs, we will need the client to talk to it.
|
|
24
|
-
sudo nala install redis-tools -y || true # this gives redis-cli, which is needed to talk to the redis-server that is running in the docker container.
|
|
25
|
-
|
|
26
|
-
# --GROUP:TerminalEyeCandy:fortune,toilet,sl,aafire,cmatrix,hollywood,chafa
|
|
27
|
-
echo "📥 Installing fortune - random wisdom generator..."
|
|
28
|
-
echo "📥 Installing toilet - large ASCII text generator..."
|
|
29
|
-
echo "📥 Installing sl - steam locomotive animation..."
|
|
30
|
-
echo "📥 Installing aafire - ASCII art fire animation..."
|
|
31
|
-
echo "📥 Installing cmatrix - Matrix-style terminal animation..."
|
|
32
|
-
echo "📥 Installing hollywood - Hollywood hacker terminal effect..."
|
|
33
|
-
echo "📥 Installing chafa - terminal image viewer..."
|
|
34
|
-
sudo nala install cowsay -y || true
|
|
35
|
-
sudo nala install lolcat -y || true
|
|
36
|
-
sudo nala install boxes -y || true
|
|
37
|
-
sudo nala install figlet -y || true
|
|
38
|
-
sudo nala install fortune -y || true
|
|
39
|
-
sudo nala install toilet -y || true
|
|
40
|
-
sudo nala install chafa -y
|
|
41
|
-
sudo nala install sl -y || true
|
|
42
|
-
sudo nala install libaa-bin -y
|
|
43
|
-
echo 'keyboard-configuration keyboard-configuration/layout select US English' | sudo debconf-set-selections
|
|
44
|
-
echo 'keyboard-configuration keyboard-configuration/layoutcode string us' | sudo debconf-set-selections
|
|
45
|
-
sudo DEBIAN_FRONTEND=noninteractive nala install -y cmatrix
|
|
46
|
-
sudo nala install hollywood -y || true
|
|
47
|
-
|
|
48
|
-
# --GROUP:NetworkTools: sshfs,samba,fuse3,nfs-common
|
|
49
|
-
echo "📥 Installing sshfs - mount remote filesystems over SSH..."
|
|
50
|
-
echo "📥 Installing Samba - LAN-based file sharing..."
|
|
51
|
-
sudo nala install sshfs
|
|
52
|
-
sudo nala install samba
|
|
53
|
-
sudo nala install fuse3 -y || true
|
|
54
|
-
sudo nala install nfs-common -y || true
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
# --GROUP:DEV_SYSTEM: graphviz,make,rust,libssl-dev,sqlite3,postgresql-client,redis-tools
|
|
58
|
-
echo "📥 Installing Graphviz - graph visualization software..."
|
|
59
|
-
echo "📥 Installing make - build automation tool..."
|
|
60
|
-
echo "📥 Installing SSL development libraries for Rust..."
|
|
61
|
-
echo "📥 Installing Rust programming language and toolchain..."
|
|
62
|
-
sudo nala install graphviz -y || true
|
|
63
|
-
sudo nala install ffmpeg -y || true # Required by some dev tools
|
|
64
|
-
sudo nala install make -y || true # Required by LunarVim and SpaceVim
|
|
65
|
-
(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) || true
|
|
66
|
-
sudo nala install libssl-dev -y
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# 📦 NIX CLI TOOLS INSTALLATION SCRIPT
|
|
3
|
-
# This script installs various command-line utilities using the Nix package manager
|
|
4
|
-
|
|
5
|
-
echo """🔄 SYSTEM UTILITIES | Installing system management tools
|
|
6
|
-
"""
|
|
7
|
-
|
|
8
|
-
# System upgrade tool
|
|
9
|
-
echo "📥 Installing topgrade - multi-package-manager upgrade tool..."
|
|
10
|
-
nix-env -iA nixpkgs.topgrade || true
|
|
11
|
-
|
|
12
|
-
# Process management
|
|
13
|
-
echo "📥 Installing procs - modern replacement for ps..."
|
|
14
|
-
nix-env -iA nixpkgs.procs || true
|
|
15
|
-
|
|
16
|
-
# File watching
|
|
17
|
-
echo "📥 Installing watchexec - executes commands when files change..."
|
|
18
|
-
nix-env -iA nixpkgs.watchexec || true
|
|
19
|
-
|
|
20
|
-
echo """📂 FILE MANAGEMENT | Installing file browsers and utilities
|
|
21
|
-
"""
|
|
22
|
-
|
|
23
|
-
# Terminal file managers
|
|
24
|
-
echo "📥 Installing xplr - hackable file explorer..."
|
|
25
|
-
nix-env -iA nixpkgs.xplr || true
|
|
26
|
-
|
|
27
|
-
echo "📥 Installing nnn - fast and flexible file manager..."
|
|
28
|
-
nix-env -iA nixpkgs.nnn || true
|
|
29
|
-
|
|
30
|
-
echo "📥 Installing joshuto - ranger-like file manager in Rust..."
|
|
31
|
-
nix-env -iA nixpkgs.joshuto || true
|
|
32
|
-
|
|
33
|
-
echo "📥 Installing lf - terminal file manager..."
|
|
34
|
-
nix-env -iA nixpkgs.lf || true
|
|
35
|
-
|
|
36
|
-
echo "📥 Installing broot - directory navigation tool..."
|
|
37
|
-
nix-env -iA nixpkgs.broot || true
|
|
38
|
-
|
|
39
|
-
echo "📥 Installing tere - faster alternative to cd..."
|
|
40
|
-
nix-env -iA nixpkgs.tere || true
|
|
41
|
-
|
|
42
|
-
# Disk usage analyzers
|
|
43
|
-
echo "📥 Installing dua - disk usage analyzer..."
|
|
44
|
-
nix-env -iA nixpkgs.dua || true
|
|
45
|
-
|
|
46
|
-
echo "📥 Installing diskonaut - terminal disk space navigator..."
|
|
47
|
-
nix-env -iA nixpkgs.diskonaut || true
|
|
48
|
-
|
|
49
|
-
# File cleanup
|
|
50
|
-
echo "📥 Installing kondo - cleanup tool for dev projects..."
|
|
51
|
-
nix-env -iA nixpkgs.kondo || true
|
|
52
|
-
|
|
53
|
-
echo """🖼️ VISUAL TOOLS | Installing terminal visualization tools
|
|
54
|
-
"""
|
|
55
|
-
|
|
56
|
-
# Terminal visualization
|
|
57
|
-
echo "📥 Installing viu - terminal image viewer..."
|
|
58
|
-
nix-env -iA nixpkgs.viu || true
|
|
59
|
-
|
|
60
|
-
echo "📥 Installing bottom - graphical process/system monitor..."
|
|
61
|
-
nix-env -iA nixpkgs.bottom || true
|
|
62
|
-
|
|
63
|
-
echo "📥 Installing delta - syntax-highlighting pager for git..."
|
|
64
|
-
nix-env -iA nixpkgs.delta || true
|
|
65
|
-
|
|
66
|
-
echo """🔧 DEVELOPMENT TOOLS | Installing programming utilities
|
|
67
|
-
"""
|
|
68
|
-
|
|
69
|
-
# Code editors
|
|
70
|
-
echo "📥 Installing helix - modal text editor..."
|
|
71
|
-
nix-env -iA nixpkgs.helix || true
|
|
72
|
-
|
|
73
|
-
# Terminal multiplexer
|
|
74
|
-
echo "📥 Installing zellij - terminal workspace with panes..."
|
|
75
|
-
nix-env -iA nixpkgs.zellij || true
|
|
76
|
-
|
|
77
|
-
# Development tools
|
|
78
|
-
echo "📥 Installing rust-analyzer - Rust language server..."
|
|
79
|
-
nix-env -iA nixpkgs.rust-analyzer || true
|
|
80
|
-
|
|
81
|
-
echo "📥 Installing tokei - code statistics tool..."
|
|
82
|
-
nix-env -iA nixpkgs.tokei || true
|
|
83
|
-
|
|
84
|
-
# Git interfaces
|
|
85
|
-
echo "📥 Installing gitui - terminal UI for git..."
|
|
86
|
-
nix-env -iA nixpkgs.gitui || true
|
|
87
|
-
|
|
88
|
-
echo """🔎 SEARCH TOOLS | Installing fuzzy finders and search utilities
|
|
89
|
-
"""
|
|
90
|
-
|
|
91
|
-
# Search history
|
|
92
|
-
echo "📥 Installing mcfly - search shell history with context..."
|
|
93
|
-
nix-env -iA nixpkgs.mcfly || true
|
|
94
|
-
|
|
95
|
-
# Fuzzy finder
|
|
96
|
-
echo "📥 Installing skim - fuzzy finder in Rust..."
|
|
97
|
-
nix-env -iA nixpkgs.skim || true
|
|
98
|
-
|
|
99
|
-
echo """🌐 NETWORK & CLOUD TOOLS | Installing file transfer and cloud utilities
|
|
100
|
-
"""
|
|
101
|
-
|
|
102
|
-
# File transfer
|
|
103
|
-
echo "📥 Installing termscp - terminal file transfer client..."
|
|
104
|
-
nix-env -iA nixpkgs.termscp || true
|
|
105
|
-
|
|
106
|
-
# Cloud storage
|
|
107
|
-
echo "📥 Installing rclone - rsync for cloud storage..."
|
|
108
|
-
nix-env -iA nixpkgs.rclone || true
|
|
109
|
-
|
|
110
|
-
echo """🛡️ SECURITY TOOLS | Installing password management utilities
|
|
111
|
-
"""
|
|
112
|
-
|
|
113
|
-
# Password management
|
|
114
|
-
echo "📥 Installing gopass - team password manager with git..."
|
|
115
|
-
nix-env -iA nixpkgs.gopass || true
|
|
116
|
-
|
|
117
|
-
echo """📚 DOCUMENTATION | Installing help and reference tools
|
|
118
|
-
"""
|
|
119
|
-
|
|
120
|
-
# Command reference
|
|
121
|
-
echo "📥 Installing tldr - simplified command documentation..."
|
|
122
|
-
nix-env -iA nixpkgs.tldr || true
|
|
123
|
-
|
|
124
|
-
# Shell alternatives
|
|
125
|
-
echo "📥 Installing nushell - modern shell alternative..."
|
|
126
|
-
nix-env -iA nixpkgs.nushell || true
|
|
127
|
-
|
|
128
|
-
echo """✅ INSTALLATION COMPLETE | All Nix CLI tools have been installed
|
|
129
|
-
"""
|
|
130
|
-
|
|
131
|
-
# Commented out tools
|
|
132
|
-
# echo "📥 Installing ots - one-time secret sharing..."
|
|
133
|
-
# nix-env -iA nixpkgs.ots || true
|
|
134
|
-
|
|
135
|
-
# echo "📥 Installing qrscan - QR code scanner..."
|
|
136
|
-
# nix-env -iA nixpkgs.qrscan || true
|
|
137
|
-
|
machineconfig/setup_mac/apps.sh
DELETED
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
4
|
-
echo "🔄 Updating Homebrew..."
|
|
5
|
-
brew update || true
|
|
6
|
-
|
|
7
|
-
# --GROUP:ESSENTIAL_SYSTEM:git,nano,curl,nvm,nodejs,brave-browser,visual-studio-code
|
|
8
|
-
echo "📥 Installing essential tools..."
|
|
9
|
-
echo "📥 Installing Git version control..."
|
|
10
|
-
echo "📥 Installing Nano text editor..."
|
|
11
|
-
echo "📥 Installing Node Version Manager (NVM)..."
|
|
12
|
-
# Note: git and nano are pre-installed on macOS, but we install via Homebrew to ensure latest versions
|
|
13
|
-
brew install git || true
|
|
14
|
-
brew install nano || true
|
|
15
|
-
brew install curl || true
|
|
16
|
-
# Install NVM
|
|
17
|
-
if [ ! -s "$HOME/.nvm/nvm.sh" ]; then
|
|
18
|
-
echo "📥 Installing NVM (Node Version Manager)..."
|
|
19
|
-
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
|
20
|
-
fi
|
|
21
|
-
echo "🔧 Configuring NVM environment..."
|
|
22
|
-
export NVM_DIR="$HOME/.nvm"
|
|
23
|
-
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
24
|
-
echo "📥 Installing latest Node.js..."
|
|
25
|
-
nvm install node || true
|
|
26
|
-
brew install --cask brave-browser || true
|
|
27
|
-
brew install --cask visual-studio-code || true
|
|
28
|
-
|
|
29
|
-
# Database tools
|
|
30
|
-
# echo "📥 Installing SQLite - lightweight SQL database..."
|
|
31
|
-
# echo "📥 Installing PostgreSQL client..."
|
|
32
|
-
# echo "📥 Installing Redis command-line tools..."
|
|
33
|
-
# brew install sqlite3 || true
|
|
34
|
-
# brew install postgresql || true
|
|
35
|
-
# brew install redis || true
|
|
36
|
-
|
|
37
|
-
# --GROUP:TerminalEyeCandy:fortune,toilet,sl,cmatrix,chafa
|
|
38
|
-
echo "📥 Installing fortune - random wisdom generator..."
|
|
39
|
-
echo "📥 Installing figlet - ASCII art text generator..."
|
|
40
|
-
echo "📥 Installing cowsay - ASCII cow speech generator..."
|
|
41
|
-
echo "📥 Installing lolcat - colorized text output..."
|
|
42
|
-
echo "📥 Installing chafa - terminal image viewer..."
|
|
43
|
-
brew install fortune || true
|
|
44
|
-
brew install figlet || true
|
|
45
|
-
brew install cowsay || true
|
|
46
|
-
brew install lolcat || true
|
|
47
|
-
brew install chafa || true
|
|
48
|
-
|
|
49
|
-
# --GROUP:NetworkTools: sshfs,nfs-utils
|
|
50
|
-
echo "📥 Installing SSHFS - mount remote filesystems over SSH..."
|
|
51
|
-
echo "📥 Installing NFS utilities..."
|
|
52
|
-
brew install sshfs || true
|
|
53
|
-
brew install nfs-utils || true
|
|
54
|
-
|
|
55
|
-
# --GROUP:DEV_SYSTEM: graphviz,make,rust,sqlite3,postgresql-client,redis-tools,ffmpeg
|
|
56
|
-
echo "📥 Installing Graphviz - graph visualization software..."
|
|
57
|
-
echo "📥 Installing make - build automation tool..."
|
|
58
|
-
echo "📥 Installing FFmpeg - multimedia framework..."
|
|
59
|
-
echo "📥 Installing SSL/TLS development libraries..."
|
|
60
|
-
echo "📥 Installing Rust programming language and toolchain..."
|
|
61
|
-
brew install graphviz || true
|
|
62
|
-
brew install make || true
|
|
63
|
-
brew install ffmpeg || true
|
|
64
|
-
brew install openssl || true
|
|
65
|
-
|
|
66
|
-
# Install Rust if not already installed
|
|
67
|
-
if ! command -v rustc &> /dev/null; then
|
|
68
|
-
echo "📥 Installing Rust..."
|
|
69
|
-
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y || true
|
|
70
|
-
fi
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# to get exact version of an app in winget, head to: https://winget.run
|
|
3
|
-
|
|
4
|
-
# --GROUP:ESSENTIAL_SYSTEM:WT+Brave+VSCode+WezTerm+OhMyPosh+Powershell+Starship+Git+Neovim+GNU Nano+Terminal-Icons+PSFzf
|
|
5
|
-
winget install --no-upgrade --name "Windows Terminal" --Id "Microsoft.WindowsTerminal" --source winget --scope user --accept-package-agreements --accept-source-agreements # Terminal is is installed by default on W 11
|
|
6
|
-
winget install --no-upgrade --name "Brave" --Id "Brave.Brave" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
7
|
-
winget install --no-upgrade --name "Microsoft Visual Studio Code" --Id "Microsoft.VisualStudioCode" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
8
|
-
winget install --no-upgrade --name "WezTerm" --Id "wez.wezterm" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
9
|
-
winget install --no-upgrade --name "Oh My Posh" --Id "JanDeDobbeleer.OhMyPosh" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
10
|
-
winget install --no-upgrade --name "Powershell" --Id "Microsoft.PowerShell" --source winget --scope user --accept-package-agreements --accept-source-agreements # powershell require admin
|
|
11
|
-
winget install --no-upgrade --name "Git" --Id "Git.Git" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
12
|
-
winget install --no-upgrade --name "Neovim" --Id "Neovim.Neovim" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
13
|
-
winget install --no-upgrade --name "GNU Nano" --Id "GNU.Nano" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
14
|
-
# winget install --no-upgrade --Id "CoreyButler.NVMforWindows" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
15
|
-
# winget install --no-upgrade --name "Starship" --Id "Starship.Starship" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
16
|
-
Install-Module -Name Terminal-Icons -Repository PSGallery -Force -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
|
|
17
|
-
Install-Module -Name PSFzf -SkipPublisherCheck # -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
# --GROUP:DEV_SYSTEM:VSRedistrib+VSBuildTools+Codeblocks+GnuWin32: Make+GnuPG+graphviz+WinFsp+SSHFS-win+xming+Node.js+Rustup+Cloudflare+Cloudflare WARP+Microsoft Garage Mouse without Borders
|
|
21
|
-
winget install --no-upgrade --name "VSRedistrib" --Id "Microsoft.VC++2015-2022Redist-x64" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
22
|
-
winget install --no-upgrade --name "VSBuildTools" --Id "Microsoft.VisualStudio.2022.BuildTools" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
23
|
-
winget install --no-upgrade --name "Codeblocks" --Id "Codeblocks.Codeblocks" --source winget --scope user --accept-package-agreements --accept-source-agreements # IDE for C/C++
|
|
24
|
-
winget install --no-upgrade --name "GnuWin32: Make" --Id "GnuWin32.Make" --source winget --scope user --accept-package-agreements --accept-source-agreements # required for building some python packages with native extensions, like dlib
|
|
25
|
-
winget install --no-upgrade --name "GnuPG" --Id "GnuPG.GnuPG" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
26
|
-
winget install --no-upgrade --name "graphviz" --Id "Graphviz.Graphviz" --source winget --scope user --accept-package-agreements --accept-source-agreements # required by pygraphviz. Used in Base.viz_object_hirarchy and Model.plot_model()
|
|
27
|
-
winget install --no-upgrade --name "WinFsp" --Id "WinFsp.WinFsp" --source winget --scope user --accept-package-agreements --accept-source-agreements # mount remote filesystems and required by rclone
|
|
28
|
-
winget install --no-upgrade --name "SSHFS-win" --Id "SSHFS-Win.SSHFS-Win" --source winget --scope user --accept-package-agreements --accept-source-agreements # mount remote filesystems # as per https://github.com/winfsp/sshfs-win
|
|
29
|
-
winget install --no-upgrade --name "xming" --Id "xming.xming" --source winget --scope user --accept-package-agreements --accept-source-agreements # X11 server. you need this while using wsl with gui, otherwise plt.show() returns: ImportError: Cannot load backend 'TkAgg' which requires the 'tk' interactive framework, as 'headless' is currently running
|
|
30
|
-
winget install --no-upgrade --name "Node.js" --Id "OpenJS.NodeJS" --source winget --scope user --accept-package-agreements --accept-source-agreements # ncessary for nvim plugins.
|
|
31
|
-
winget install --no-upgrade --name "Rustup" --Id "Rustlang.Rustup" --source winget --scope user --accept-package-agreements --accept-source-agreements # rust compiler, necessary for some nvim plugins
|
|
32
|
-
winget install --no-upgrade --name "Cloudflare" --Id "Cloudflare.cloudflared" --source winget --scope user --accept-package-agreements --accept-source-agreements # cloudflare tunnel client, alternative to ngrok
|
|
33
|
-
winget install --no-upgrade --name "Cloudflare WARP" --Id "Cloudflare.Warp" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
34
|
-
winget install --no-upgrade --name "Microsoft Garage Mouse without Borders" --Id "Microsoft.MouseWithoutBorders" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
# --GROUP:OTHER_WINDOWS:nu+Chrome+ChromeRemoteDesktop+Zoom+7zip+Firefox+Thunderbird+StreamlabsOBS+OBSStudio+MiKTeX+TexMaker+notepad+++Lapce+TesseractOCR+perl+DB Browser for SQLite+sql server management studio+Adobe Acrobat Reader DC+julia+Chafa+bottom+onefetch+Just+hyperfine+AWS CLI
|
|
38
|
-
winget install --no-upgrade --name "nu" --Id "Nushell.Nushell" --source winget --scope user --accept-package-agreements --accept-source-agreements # add to userpath C:\Program Files\nu\bin, done in symlinks
|
|
39
|
-
winget install --no-upgrade --name "Google Chrome" --Id "Google.Chrome" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
40
|
-
winget install --no-upgrade --name "Chrome Remote Desktop Host" --Id "Google.ChromeRemoteDesktop" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
41
|
-
winget install --no-upgrade --name "Zoom" --Id "Zoom.Zoom" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
42
|
-
winget install --no-upgrade --name "7-zip" --Id "7zip.7zip" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
43
|
-
winget install --no-upgrade --name "Mozilla Firefox" --Id "Mozilla.Firefox" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
44
|
-
winget install --no-upgrade --name "Mozilla Thunderbird (en-US)" --Id "Mozilla.Thunderbird" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
45
|
-
winget install --no-upgrade --name "StreamlabsOBS" --Id "Streamlabs.StreamlabsOBS" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
46
|
-
winget install --no-upgrade --name "OBSStudio" --Id "OBSProject.OBSStudio" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
47
|
-
winget install --no-upgrade --name "MiKTeX" --Id "MiKTeX.MiKTeX" --source winget --scope user # library / lanugage
|
|
48
|
-
winget install --no-upgrade --name "TexMaker" --Id "Texmaker.Texmaker" --source winget --scope user # IDE better than simple TexWorks shipped with MikTex. IDE is basically GUI for cmd interface of Tex
|
|
49
|
-
winget install --no-upgrade --name "notepad++" --Id "Notepad++.Notepad++" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
50
|
-
winget install --no-upgrade --name "Lapce" --Id "Lapce.Lapce" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
51
|
-
winget install --no-upgrade --name "TesseractOCR" --Id "UB-Mannheim.TesseractOCR" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
52
|
-
winget install --no-upgrade --name "perl" --Id "StrawbgnogerryPerl.StrawberryPerl" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
53
|
-
winget install --no-upgrade --name "DB Browser for SQLite" --Id "DBBrowserForSQLite.DBBrowserForSQLite" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
54
|
-
winget install --no-upgrade --name "sql server management studio" --Id "Microsoft.SQLServerManagementStudio" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
55
|
-
winget install --no-upgrade --name "Adobe Acrobat Reader DC" --Id "Adobe.Acrobat.Reader.64-bit" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
56
|
-
winget install --no-upgrade --name "julia" --Id "Julialang.Julia" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
57
|
-
winget install --no-upgrade --name "Chafa" --Id "hpjansson.Chafa" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
58
|
-
winget install --no-upgrade --name "bottom" --Id "Clement.bottom" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
59
|
-
winget install --no-upgrade --name "onefetch" --Id "o2sh.onefetch" --source winget --scope user # repo-version of system fastfetch, see also tokei
|
|
60
|
-
winget install --no-upgrade --name "Just" --Id "Casey.Just" --source winget --scope user # commandline runner
|
|
61
|
-
winget install --no-upgrade --name "hyperfine" --Id "sharkdp.hyperfine" --source winget --scope user # benchmarking tool
|
|
62
|
-
winget install --no-upgrade --name "AWS Command Line Interface" --Id "Amazon.AWSCLI" --source winget --scope user --accept-package-agreements --accept-source-agreements
|