machineconfig 5.23__py3-none-any.whl → 5.24__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.

@@ -30,15 +30,8 @@ def example_usage():
30
30
 
31
31
  try:
32
32
  # Create layout using the remote generator
33
- generator = ZellijRemoteLayoutGenerator(remote_name=remote_name, session_name_prefix=session_name)
34
-
35
- # Create layout file
36
- import tempfile
37
- with tempfile.NamedTemporaryFile(mode="w", suffix=".kdl", delete=False, prefix="zellij_example_") as tmp_file:
38
- output_path = tmp_file.name
39
- layout_path = generator.create_zellij_layout(sample_layout, output_path)
40
- print(f"✅ Remote layout created successfully: {layout_path}")
41
-
33
+ generator = ZellijRemoteLayoutGenerator(remote_name=remote_name, session_name=session_name, layout_config=sample_layout)
34
+ generator.create_layout_file()
42
35
  # Preview the layout content
43
36
  preview = generator.layout_generator.generate_layout_content(sample_layout)
44
37
  print(f"📄 Layout preview:\n{preview}")
@@ -35,9 +35,45 @@ console = Console()
35
35
 
36
36
  def display_header() -> None:
37
37
  from machineconfig.utils.installer import get_machineconfig_version
38
- header_text = Text(f"MACHINE CONFIGURATION {get_machineconfig_version()}", style="bold magenta")
39
- subtitle_text = Text("Interactive Installation Script", style="italic cyan")
40
- console.print(Panel(f"📦 {header_text}\n{subtitle_text}", border_style="blue", padding=(1, 2)))
38
+ from rich.align import Align
39
+ from rich.padding import Padding
40
+
41
+ # Fancy ASCII art header
42
+ ascii_art = """
43
+ ╔═════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
44
+ ║ ║
45
+ ║ ███╗ ███╗ █████╗ ██████╗██╗ ██╗██╗███╗ ██╗███████╗ ██████╗ ██████╗ ███╗ ██╗███████╗██╗ ██████╗ ║
46
+ ║ ████╗ ████║██╔══██╗██╔════╝██║ ██║██║████╗ ██║██╔════╝██╔════╝██╔═══██╗████╗ ██║██╔════╝██║██╔════╝ ║
47
+ ║ ██╔████╔██║███████║██║ ███████║██║██╔██╗ ██║█████╗ ██║ ██║ ██║██╔██╗ ██║█████╗ ██║██║ ███╗ ║
48
+ ║ ██║╚██╔╝██║██╔══██║██║ ██╔══██║██║██║╚██╗██║██╔══╝ ██║ ██║ ██║██║╚██╗██║██╔══╝ ██║██║ ██║ ║
49
+ ║ ██║ ╚═╝ ██║██║ ██║╚██████╗██║ ██║██║██║ ╚████║███████╗╚██████╗╚██████╔╝██║ ╚████║██║ ██║╚██████╔╝ ║
50
+ ║ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═════╝ ║
51
+ ║ ║
52
+ ╚═════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
53
+ """
54
+
55
+ version = get_machineconfig_version()
56
+ title = f"✨ MACHINE CONFIGURATION v{version} ✨"
57
+ subtitle = "🎯 Your digital life manager. Dotfiles, data, code and more."
58
+ bug_report = "🐛 Please report bugs to Alex Al-Saffar @ https://github.com/thisismygitrepo/machineconfig"
59
+
60
+ # Create styled texts
61
+ ascii_text = Text(ascii_art, style="bold cyan")
62
+ title_text = Text(title, style="bold bright_magenta")
63
+ subtitle_text = Text(subtitle, style="italic bright_blue")
64
+ bug_text = Text(bug_report, style="dim white")
65
+
66
+ # Create panel content with proper alignment
67
+ with console.capture() as capture:
68
+ console.print(ascii_text)
69
+ console.print()
70
+ console.print(Align.center(title_text))
71
+ console.print(Align.center(subtitle_text))
72
+ console.print()
73
+ console.print(Align.center(bug_text))
74
+
75
+ panel_content = capture.get()
76
+ console.print(Panel(Padding(panel_content, (1, 2)), border_style="bright_cyan", padding=(1, 2)))
41
77
  def display_completion_message() -> None:
42
78
  completion_text = Text("INSTALLATION COMPLETE", style="bold green")
43
79
  subtitle_text = Text("System setup finished successfully", style="italic green")
@@ -8,13 +8,8 @@ else
8
8
  echo """🔄 Updating uv package manager..."""
9
9
  $HOME/.local/bin/uv self update
10
10
  fi
11
- # Add uv to PATH if not already there
12
11
  if ! command -v uv &> /dev/null; then
13
- echo """🔍 uv command not found in PATH
14
- ➕ Adding uv to system PATH...
15
- """
12
+ echo """🔍 uv command not found in PATH ➕ Adding uv to system PATH..."""
16
13
  export PATH="$HOME/.local/bin:$PATH"
17
14
  fi
18
- echo """✅ uv is installed and ready to use."""
19
-
20
15
  $HOME/.local/bin/uv python install 3.13
@@ -1,9 +1,4 @@
1
1
  #!/bin/bash
2
2
 
3
- echo """
4
- =======================================================================
5
- 📦 MACHINE CONFIGURATION | Interactive Installation Script. Installing uv then getting started.
6
- ======================================================================="""
7
-
8
- curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/ve.sh | bash
3
+ . <( curl -sSL "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/ve.sh")
9
4
  $HOME/.local/bin/uv run --python 3.13 --with machineconfig devops self interactive
@@ -7,5 +7,4 @@ if (-not (Test-Path -Path "$HOME\.local\bin\uv.exe")) {
7
7
  Write-Output "uv binary found, updating..."
8
8
  & "$HOME\.local\bin\uv.exe" self update
9
9
  }
10
-
11
10
  & "$HOME\.local\bin\uv.exe" python install 3.13
@@ -1,13 +1,5 @@
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
-
8
- Invoke-WebRequest -Uri "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/ve.ps1" -OutFile "ve.ps1"
9
- .\ve.ps1
10
- rm ve.ps1
11
2
 
3
+ Write-Host "ℹ️ If you have execution policy issues, run: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser"
4
+ iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/ve.ps1").Content
12
5
  uv run --python 3.13 --with machineconfig devops self interactive
13
- # uv run --python 3.13 --with machineconfig https://raw.githubusercontent.com/thisismygitrepo/machineconfig/ee4f69e838e1acbb275bfb5a3d3faee23345f2a8/src/machineconfig/scripts/python/devops.py
@@ -0,0 +1,81 @@
1
+ Metadata-Version: 2.4
2
+ Name: machineconfig
3
+ Version: 5.24
4
+ Summary: Dotfiles management package
5
+ Author-email: Alex Al-Saffar <programmer@usa.com>
6
+ License: Apache 2.0
7
+ Project-URL: Homepage, https://github.com/thisismygitrepo/machineconfig
8
+ Project-URL: Bug Tracker, https://github.com/thisismygitrepo/machineconfig/issues
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: Apache Software License
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.13
13
+ Description-Content-Type: text/markdown
14
+ Requires-Dist: cryptography>=44.0.2
15
+ Requires-Dist: fire>=0.7.0
16
+ Requires-Dist: joblib>=1.5.2
17
+ Requires-Dist: paramiko>=3.5.1
18
+ Requires-Dist: randomname>=0.2.1
19
+ Requires-Dist: requests>=2.32.5
20
+ Requires-Dist: rich>=14.0.0
21
+ Requires-Dist: tenacity>=9.1.2
22
+ Requires-Dist: psutil>=7.0.0
23
+ Requires-Dist: gitpython>=3.1.44
24
+ Requires-Dist: pyfzf>=0.3.1
25
+ Requires-Dist: rclone-python>=0.1.23
26
+ Requires-Dist: pyjson5>=1.6.9
27
+ Requires-Dist: typer-slim>=0.19.2
28
+ Requires-Dist: questionary>=2.1.1
29
+ Requires-Dist: typer>=0.19.2
30
+ Provides-Extra: windows
31
+ Requires-Dist: pywin32; extra == "windows"
32
+ Provides-Extra: docs
33
+ Requires-Dist: pdoc>=15.0.2; extra == "docs"
34
+
35
+
36
+ <p align="center">
37
+
38
+ <a href="https://github.com/thisismygitrepo/machineconfig/commits">
39
+ <img src="https://img.shields.io/github/commit-activity/m/thisismygitrepo/machineconfig" />
40
+ </a>
41
+
42
+ </p>
43
+
44
+
45
+ # Welcome to machineconfig
46
+
47
+ # Shortcuts
48
+ * `bit.ly/cfgroot` is a shortcut to this repo.
49
+ * `glow https://bit.ly/cfgread` OR `curl bit.ly/cfgread -L | bat -l md --style="header"` to get the readme file.
50
+
51
+ Machineconfig is a package for managing configuration files (aka dotfiles). The idea is to collect those critical, time-consuming-files-to-setup in one directory and reference them via symbolic links from their original locations. Thus, when a new machine is to be setup, all that is required is to clone the repo in that machine and create the symbolic links.
52
+ Dotfiles include, but are not limited to:
53
+ * `~/.gitconfig`
54
+ * `~/.ssh`
55
+ * `~/.aws`
56
+ * `~/.bash_profile`
57
+ * `~/.bashrc`
58
+ * `~/.config`
59
+ * `$profile` in Windows Powershell
60
+ * etc
61
+
62
+
63
+ Additionally, files that contain data, sensitive information that should not be pushed to a repository are contained in a directory `~/dotfiles`. The files therein are encrypted before backedup.
64
+
65
+
66
+ # Windows:
67
+ ```powershell
68
+ iex (iwr bit.ly/cfgiawindows).Content
69
+ ```
70
+
71
+ # Linux and MacOS
72
+ ```bash
73
+ . <(curl -sL bit.ly/cfgialinux)
74
+ ```
75
+
76
+
77
+ # Author
78
+ Alex Al-Saffar. [email](mailto:programmer@usa.com)
79
+
80
+ [![Alex's github activity graph](https://github-readme-activity-graph.vercel.app/graph?username=thisismygitrepo)](https://github.com/ashutosh00710/github-readme-activity-graph)
81
+
@@ -34,7 +34,7 @@ machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py,sha256=Mitm7
34
34
  machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py,sha256=lApUy67_WhfaBXqt0meZSx_QvwiXjN0YLdyE3c7kP_s,6744
35
35
  machineconfig/cluster/sessions_managers/wt_utils/session_manager.py,sha256=-PNcYwPqwdNRnLU9QGKxRR9i6ewY02Id-tgnODB_OzQ,12552
36
36
  machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py,sha256=t5EWNOVS-PTc2fWE8aWNBrDyqR8akLtwtRinztxOdpY,9590
37
- machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py,sha256=k0vLV3ZPpQKsmflN2l16aYNdGN9UWj3zi073b_O-GH8,3302
37
+ machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py,sha256=zA_PGkaMFVkRjxjXHl0FcyCQ9BASFSTP7ZnEgQ_rtyE,2996
38
38
  machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py,sha256=FMpwaSeDCc71pEiVk99s8f5NkZEQ8zKQNUuaSXojgq4,4615
39
39
  machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py,sha256=8l8OAfWYy5xv-EaVqtXLqvPo9YaR9i8kFqGMhPzk0nw,2616
40
40
  machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py,sha256=4SwH0i9V5Qwugzcewr3uv1Y5mjLhQAXyaGiWtOOjY7E,13696
@@ -167,7 +167,7 @@ machineconfig/scripts/python/fire_jobs_streamlit_helper.py,sha256=47DEQpj8HBSa-_
167
167
  machineconfig/scripts/python/ftpx.py,sha256=QfQTp-6jQP6yxfbLc5sKxiMtTgAgc8sjN7d17_uLiZc,9400
168
168
  machineconfig/scripts/python/get_zellij_cmd.py,sha256=e35-18hoXM9N3PFbvbizfkNY_-63iMicieWE3TbGcCQ,576
169
169
  machineconfig/scripts/python/gh_models.py,sha256=3BLfW25mBRiPO5VKtVm-nMlKLv-PaZDw7mObajq6F6M,5538
170
- machineconfig/scripts/python/interactive.py,sha256=FYb-bhn5GYDSER_l_w8YS_LwEI1aeczp3pF-3U2e3aQ,10038
170
+ machineconfig/scripts/python/interactive.py,sha256=PfZXWbNGyG4krEGnuYQyP1sS7NjVqF13GP6wwtU-Lnw,13538
171
171
  machineconfig/scripts/python/mount_nfs.py,sha256=aECrL64j9g-9rF49sVJAjGmzaoGgcMnl3g9v17kQF4c,3239
172
172
  machineconfig/scripts/python/mount_nw_drive.py,sha256=iru6AtnTyvyuk6WxlK5R4lDkuliVpPV5_uBTVVhXtjQ,1550
173
173
  machineconfig/scripts/python/mount_ssh.py,sha256=k2fKq3f5dKq_7anrFOlqvJoI_3U4EWNHLRZ1o3Lsy6M,2268
@@ -366,17 +366,17 @@ machineconfig/setup_linux/apps.sh,sha256=0PdPojpj2B-wOxE6ryvguKwBvL6vEt-43A1Ndnw
366
366
  machineconfig/setup_linux/apps_desktop.sh,sha256=nBt_24tbdgKYK68w15ZiktgcEEJ7ytLoPWIrDluTkIQ,5077
367
367
  machineconfig/setup_linux/apps_gui.sh,sha256=ufsCqmShc8G3XyKBmchD1tJ85FZYjSDY2yiE_0Rl7v4,3031
368
368
  machineconfig/setup_linux/repos.sh,sha256=VHrMMadbu__P94eF5SRpy1OeXm1fNjAxFJjITioxKXQ,476
369
- machineconfig/setup_linux/ve.sh,sha256=yHxDzRoiAkEmLvUHNHUZksyOWpwiirLJruM_tgsuwYs,579
369
+ machineconfig/setup_linux/ve.sh,sha256=VxjGbRif_I4hZ9vogOZYxQhFGqX91zlvVfELvvqRwB8,487
370
370
  machineconfig/setup_linux/nix/cli_installation.sh,sha256=AQ_wRmldeD1tPqCmU7qgz9ZrZFly4OYwBJDGRpb9IJ0,5470
371
371
  machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh,sha256=F5dbg0n9RHsKGPn8fIdZMn3p0RrHEkb8rWBGsdVGbus,1207
372
372
  machineconfig/setup_linux/ssh/openssh_all.sh,sha256=3dg6HEUFbHQOzLfSAtzK_D_GB8rGCCp_aBnxNdnidVc,824
373
373
  machineconfig/setup_linux/ssh/openssh_wsl.sh,sha256=1eeRGrloVB34K5z8yWVUMG5b9pV-WBfHgV9jqXiYgCQ,1398
374
374
  machineconfig/setup_linux/web_shortcuts/android.sh,sha256=gzep6bBhK7FCBvGcXK0fdJCtkSfBOftt0aFyDZq_eMs,68
375
- machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=l0ULuMUhidth8ksOeZatw5alrny0zRN5toL5MUQzRMQ,468
375
+ machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=PHi3mlEJcEAH_aIYZIceDswkfEzt7qJqE35wnbOnecA,219
376
376
  machineconfig/setup_windows/__init__.py,sha256=M8DFE3a4BW7-EAH9-F0F6U3WfYMF8wiLfXf9f3Mv2Go,438
377
377
  machineconfig/setup_windows/apps.ps1,sha256=G5GqZ9G0aiQr_A-HaahtRdzpaTTdW6n3DRKMZWDTSPc,11214
378
378
  machineconfig/setup_windows/repos.ps1,sha256=gIQBOLIh65oUXgSjYMeYeD6lU1Bu80LZ59xqRc3T3BA,918
379
- machineconfig/setup_windows/ve.ps1,sha256=a0Vk7BJfp_dY5GpDYC20WrJbqZHIWWbCZ9hDpKobMDk,311
379
+ machineconfig/setup_windows/ve.ps1,sha256=hYawJUKBAujEIYaORr4-OaFagTfnz0l-nVd_s7APZPI,310
380
380
  machineconfig/setup_windows/others/docker.ps1,sha256=M8NfsSxH8YlmY92J4rSe1xWOwTW8IFrdgb8cI8Riu2E,311
381
381
  machineconfig/setup_windows/others/obs.ps1,sha256=2andchcXpxS3rqZjGaMpY5VShxTAKWvw6eCrayjuaLo,30
382
382
  machineconfig/setup_windows/others/power_options.ps1,sha256=c7Hn94jBD5GWF29CxMhmNpuM0hgXTQgVJmIRR_7sdcY,182
@@ -384,7 +384,7 @@ machineconfig/setup_windows/ssh/openssh-server.ps1,sha256=7FopRdNn8hQbst4Cq_T1qo
384
384
  machineconfig/setup_windows/ssh/openssh-server_add-sshkey.ps1,sha256=qiNC02kzUZi6KBV7O-nRQ7pQ0OGixbq-rUvSCQ7TVxc,1656
385
385
  machineconfig/setup_windows/ssh/openssh-server_add_identity.ps1,sha256=b8ZXpmNUSw3IMYvqSY7ClpdWPG39FS7MefoWnRhWN2U,506
386
386
  machineconfig/setup_windows/ssh/openssh_all.ps1,sha256=-mBGNRJSxsY6Z3gFMwIoL_3poj943acjfzXwGo2YFu4,864
387
- machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=jiOjj0w5wCrcR3JeHg-4bYDCW4CQB6QF3OfxGuifSOE,719
387
+ machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=VSw7JlTUAI8hflz4lyCqsRt2nMwGC2HyxrgQ2hhXhIs,328
388
388
  machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
389
389
  machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
390
390
  machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -422,8 +422,8 @@ machineconfig/utils/schemas/fire_agents/fire_agents_input.py,sha256=pTxvLzIpD5RF
422
422
  machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoSpdmTIdgS9LS-RvE-QZ-D260tD3o,1214
423
423
  machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
424
424
  machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
425
- machineconfig-5.23.dist-info/METADATA,sha256=05e1sWze1Djv22HNMTjw8P3eWy-HdIXBBFgfp2NHM04,8030
426
- machineconfig-5.23.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
427
- machineconfig-5.23.dist-info/entry_points.txt,sha256=2afE1mw-o4MUlfxyX73SV02XaQI4SV_LdL2r6_CzhPU,1074
428
- machineconfig-5.23.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
429
- machineconfig-5.23.dist-info/RECORD,,
425
+ machineconfig-5.24.dist-info/METADATA,sha256=x_ppEl8FlOooPs2RGCfTOQt_5FSR_WO88KVwe1S9-sU,2670
426
+ machineconfig-5.24.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
427
+ machineconfig-5.24.dist-info/entry_points.txt,sha256=2afE1mw-o4MUlfxyX73SV02XaQI4SV_LdL2r6_CzhPU,1074
428
+ machineconfig-5.24.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
429
+ machineconfig-5.24.dist-info/RECORD,,
@@ -1,188 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: machineconfig
3
- Version: 5.23
4
- Summary: Dotfiles management package
5
- Author-email: Alex Al-Saffar <programmer@usa.com>
6
- License: Apache 2.0
7
- Project-URL: Homepage, https://github.com/thisismygitrepo/machineconfig
8
- Project-URL: Bug Tracker, https://github.com/thisismygitrepo/machineconfig/issues
9
- Classifier: Programming Language :: Python :: 3
10
- Classifier: License :: OSI Approved :: Apache Software License
11
- Classifier: Operating System :: OS Independent
12
- Requires-Python: >=3.13
13
- Description-Content-Type: text/markdown
14
- Requires-Dist: cryptography>=44.0.2
15
- Requires-Dist: fire>=0.7.0
16
- Requires-Dist: joblib>=1.5.2
17
- Requires-Dist: paramiko>=3.5.1
18
- Requires-Dist: randomname>=0.2.1
19
- Requires-Dist: requests>=2.32.5
20
- Requires-Dist: rich>=14.0.0
21
- Requires-Dist: tenacity>=9.1.2
22
- Requires-Dist: psutil>=7.0.0
23
- Requires-Dist: gitpython>=3.1.44
24
- Requires-Dist: pyfzf>=0.3.1
25
- Requires-Dist: rclone-python>=0.1.23
26
- Requires-Dist: pyjson5>=1.6.9
27
- Requires-Dist: typer-slim>=0.19.2
28
- Requires-Dist: questionary>=2.1.1
29
- Requires-Dist: typer>=0.19.2
30
- Provides-Extra: windows
31
- Requires-Dist: pywin32; extra == "windows"
32
- Provides-Extra: docs
33
- Requires-Dist: pdoc>=15.0.2; extra == "docs"
34
-
35
-
36
- <p align="center">
37
-
38
- <a href="https://github.com/thisismygitrepo/machineconfig/commits">
39
- <img src="https://img.shields.io/github/commit-activity/m/thisismygitrepo/machineconfig" />
40
- </a>
41
-
42
- </p>
43
-
44
-
45
- # Welcome to machineconfig
46
-
47
- # Shortcuts
48
- * `bit.ly/cfgroot` is a shortcut to this repo.
49
- * `glow https://bit.ly/cfgread` OR `curl bit.ly/cfgread -L | bat -l md --style="header"` to get the readme file.
50
-
51
- Machineconfig is a package for managing configuration files (aka dotfiles). The idea is to collect those critical, time-consuming-files-to-setup in one directory and reference them via symbolic links from their original locations. Thus, when a new machine is to be setup, all that is required is to clone the repo in that machine and create the symbolic links.
52
- Dotfiles include, but are not limited to:
53
- * `~/.gitconfig`
54
- * `~/.ssh`
55
- * `~/.aws`
56
- * `~/.bash_profile`
57
- * `~/.bashrc`
58
- * `~/.config`
59
- * `$profile` in Windows Powershell
60
- * etc
61
-
62
-
63
- Additionally, files that contain data, sensitive information that should not be pushed to a repository are contained in a directory `~/dotfiles`. The files therein are encrypted before backedup.
64
-
65
-
66
- ## Windows Setup
67
- With elevated `PowerShell`, run the following: (short `curl bit.ly/cfgallwindows -L | iex`)
68
-
69
- **You have to have `winget` first. If its not available in the your terminal, try those resources:**
70
-
71
- * https://github.com/asheroto/winget-install
72
- * https://github.com/microsoft/winget-cli
73
- * https://github.com/microsoft/winget-cli/discussions/3258
74
-
75
-
76
- ```shell
77
- # apps # short: `(iwr bit.ly/cfgappswindows).Content | iex`
78
- Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/apps.ps1 | Invoke-Expression
79
- # virtual enviornment # short (iwr bit.ly/cfgvewindows).Content | iex OR `curl bit.ly/cfgvewindows -L | iex`
80
- Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/ve.ps1 | Invoke-Expression
81
- # symlinks # short `(iwr bit.ly/cfgsymlinkswindows).Content | iex` OR `curl bit.ly/cfgsymlinkswindows -L | iex`
82
- . $HOME/code/machineconfig/src/machineconfig/setup_windows/symlinks.ps1
83
- # devapps:
84
- $HOME/code/machineconfig/src/machineconfig/setup_windows/devapps.ps1
85
- # pwsh and wt settings: (iwr bit.ly/cfgwt).Content | iex
86
- iwr https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/wt_and_pwsh.ps1 | iex
87
-
88
- ```
89
-
90
- ```shell
91
-
92
- (iwr bit.ly/cfgappswindows).Content | iex
93
- (iwr bit.ly/cfgvewindows).Content | iex
94
- . $HOME/code/machineconfig/src/machineconfig/setup_windows/devapps.ps1
95
- (iwr bit.ly/cfgwt).Content | iex
96
- . $HOME/code/machineconfig/src/machineconfig/setup_windows/symlinks.ps1
97
-
98
- & "$HOME\code\machineconfig\.venv\Scripts\activate.ps1"
99
- python -m fire machineconfig.profile.create main2 --choice=all
100
- deactivate
101
-
102
- ```
103
-
104
- ###### Setup SSH connection:
105
- ```shell
106
- # CHANGE pubkey_string APPROPRIATELY
107
- $pubkey_string=(Invoke-WebRequest 'https://github.com/thisismygitrepo.keys').Content
108
- Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/openssh_all.ps1 | Invoke-Expression
109
- ```
110
- short `(iwr bit.ly/cfgsshwindows).Content | iex` OR `curl bit.ly/cfgsshwindows -L | iex`
111
-
112
- ###### Install Croshell Terminal Directly,
113
- ```shell
114
- Invoke-WebRequest https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/web_shortcuts/croshell.ps1 | Invoke-Expression
115
- ```
116
- short: `curl bit.ly/cfgcroshellwindows -L | iex` OR `(iwr bit.ly/cfgcroshellwindows).Content | iex`
117
-
118
-
119
- # Linux Setup
120
- With `sudo` access, run the following: (short `curl bit.ly/cfgalllinux -L | bash`)
121
- ```bash
122
- export package_manager="nala"
123
- export package_manager="nix"
124
-
125
- # apps # short: `curl bit.ly/cfgappslinux -L | bash`
126
- curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/apps.sh | bash
127
- # Optionally: curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/apps_dev.sh | bash
128
-
129
- # virtual enviornment # short `curl bit.ly/cfgvelinux -L | bash`
130
- curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/ve.sh | bash
131
-
132
- # repos # short `curl bit.ly/cfgreposlinux -L | bash`
133
- curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/repos.sh | bash
134
- # symlinks and bash profile: # short `curl bit.ly/cfgsymlinkslinux -L | bash`
135
- source ~/code/machineconfig/src/machineconfig/setup_linux/symlinks.sh # requires sudo since it invloves chmod of dotfiles/.ssh, however sudo doesn't work with source. best to have sudo -s earlier.
136
-
137
- # devapps
138
- source <(sudo cat ~/code/machineconfig/src/machineconfig/setup_linux/devapps.sh)
139
- ```
140
-
141
- ###### Setup SSH connection:
142
- ```bash
143
- pubkey_url='https://github.com/thisismygitrepo.keys' # (CHANGE APPROPRIATELY)
144
- export pubkey_string=$(curl --silent $pubkey_url)
145
- curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/openssh_all.sh | sudo bash
146
- # For WSL only, also run the following:
147
- export port=2223
148
- curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/openssh_wsl.sh | sudo bash
149
- # don't forget to run `wsl_ssh_windows_port_forwarding -p 2223` from Windows using the designated port with
150
- ```
151
- short `curl bit.ly/cfgsshlinux -L | bash`
152
-
153
-
154
- ###### Install Croshell Terminal Directly
155
-
156
- ```bash
157
-
158
- curl https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/web_shortcuts/croshell.sh | sudo bash
159
-
160
- ```
161
- short `curl bit.ly/cfgcroshelllinux -L | bash`
162
-
163
-
164
- ## Repository management CLI
165
-
166
- The DevOps CLI now exposes rich subcommands for working with git repositories. Run `python -m machineconfig.scripts.python.devops repos --help` to explore the hierarchy:
167
-
168
- * Top-level actions: `push`, `pull`, `commit`, `all`, and `analyze`.
169
- * These commands accept `--recursive/-r` and `--no-sync` to control nested repos and automatic `uv sync`.
170
- * Sync workflows live under `sync`:
171
- * `record` captures the current machine state into a `repos.json`.
172
- * `capture` clones repos from a specification without changing commits.
173
- * `checkout` aligns repositories to commits stored in the spec.
174
- * `checkout-to-branch` switches repositories to the tracked branch.
175
- * Each sync subcommand accepts `--cloud/-c` for fetching/saving specs from remote storage.
176
-
177
- Example:
178
-
179
- ```bash
180
- python -m machineconfig.scripts.python.devops repos sync record ~/code --cloud my_remote
181
- python -m machineconfig.scripts.python.devops repos pull ~/code --recursive
182
- ```
183
-
184
- # Author
185
- Alex Al-Saffar. [email](mailto:programmer@usa.com)
186
-
187
- [![Alex's github activity graph](https://github-readme-activity-graph.vercel.app/graph?username=thisismygitrepo)](https://github.com/ashutosh00710/github-readme-activity-graph)
188
-