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

@@ -1469,14 +1469,14 @@
1469
1469
  "doc": "🌐 cli to get info of ips",
1470
1470
  "fileNamePattern": {
1471
1471
  "amd64": {
1472
- "linux": "ipinfo_{version}_linux_amd64.tar.gz",
1473
- "windows": "ipinfo_{version}_windows_amd64.zip",
1474
- "macos": "ipinfo_{version}_darwin_amd64.tar.gz"
1472
+ "linux": "{version}_linux_amd64.tar.gz",
1473
+ "windows": "{version}_windows_amd64.zip",
1474
+ "macos": "{version}_darwin_amd64.tar.gz"
1475
1475
  },
1476
1476
  "arm64": {
1477
- "linux": "ipinfo_{version}_linux_arm64.tar.gz",
1478
- "windows": "ipinfo_{version}_windows_arm64.zip",
1479
- "macos": "ipinfo_{version}_darwin_arm64.tar.gz"
1477
+ "linux": "{version}_linux_arm64.tar.gz",
1478
+ "windows": "{version}_windows_arm64.zip",
1479
+ "macos": "{version}_darwin_arm64.tar.gz"
1480
1480
  }
1481
1481
  }
1482
1482
  },
@@ -50,8 +50,8 @@ def get_app():
50
50
  nw_apps.command(name="s", help="Start local/global server to share files/folders via web browser", hidden=True, no_args_is_help=True)(cli_share_server.main)
51
51
  nw_apps.command(name="install-ssh-server", help="📡 [i] Install SSH server")(install_ssh_server)
52
52
  nw_apps.command(name="i", help="Install SSH server", hidden=True)(install_ssh_server)
53
- nw_apps.command(name="add-ssh-key", help="🔑 [k] Add SSH public key to this machine")(add_ssh_key)
54
- nw_apps.command(name="k", help="Add SSH public key to this machine", hidden=True)(add_ssh_key)
53
+ nw_apps.command(name="add-ssh-key", help="🔑 [k] Add SSH public key to this machine", no_args_is_help=True)(add_ssh_key)
54
+ nw_apps.command(name="k", help="Add SSH public key to this machine", hidden=True, no_args_is_help=True)(add_ssh_key)
55
55
  nw_apps.command(name="add-ssh-identity", help="🗝️ [a] Add SSH identity (private key) to this machine")(add_ssh_identity)
56
56
  nw_apps.command(name="a", help="Add SSH identity (private key) to this machine", hidden=True)(add_ssh_identity)
57
57
  nw_apps.command(name="show-address", help="[A] Show this computer addresses on network")(show_address)
@@ -75,8 +75,8 @@ def readme():
75
75
 
76
76
  def get_app():
77
77
  cli_app = typer.Typer(help="🔄 [s] self operations subcommands", no_args_is_help=True)
78
- cli_app.command("update", no_args_is_help=False, help="🔄 [u] UPDATE essential repos")(update)
79
- cli_app.command("u", no_args_is_help=False, help="UPDATE essential repos", hidden=True)(update)
78
+ cli_app.command("update", no_args_is_help=False, help="🔄 [u] UPDATE machineconfig")(update)
79
+ cli_app.command("u", no_args_is_help=False, hidden=True)(update)
80
80
  cli_app.command("interactive", no_args_is_help=False, help="🤖 [i] INTERACTIVE configuration of machine.")(interactive)
81
81
  cli_app.command("i", no_args_is_help=False, help="INTERACTIVE configuration of machine.", hidden=True)(interactive)
82
82
  cli_app.command("status", no_args_is_help=False, help="📊 [s] STATUS of machine, shell profile, apps, symlinks, dotfiles, etc.")(status)
@@ -86,6 +86,7 @@ def main(pub_path: Optional[str] = typer.Argument(None, help="Path to the public
86
86
 
87
87
  if pub_path:
88
88
  key_path = PathExtended(pub_path).expanduser().absolute()
89
+ key_path.parent.mkdir(parents=True, exist_ok=True)
89
90
  if not key_path.exists():
90
91
  console.print(Panel(f"❌ ERROR: Provided key path does not exist\nPath: {key_path}", title="[bold red]Error[/bold red]"))
91
92
  raise FileNotFoundError(f"Provided key path does not exist: {key_path}")
@@ -111,6 +112,7 @@ def main(pub_path: Optional[str] = typer.Argument(None, help="Path to the public
111
112
  console.print(Panel("📋 Please provide a filename and paste the public key content", title="[bold blue]Input Required[/bold blue]", border_style="blue"))
112
113
  key_filename = input("📝 File name (default: my_pasted_key.pub): ") or "my_pasted_key.pub"
113
114
  key_path = PathExtended.home().joinpath(f".ssh/{key_filename}")
115
+ key_path.parent.mkdir(parents=True, exist_ok=True)
114
116
  key_path.write_text(input("🔑 Paste the public key here: "), encoding="utf-8")
115
117
  console.print(Panel(f"💾 Key saved to: {key_path}", title="[bold green]Success[/bold green]", border_style="green"))
116
118
  program = get_add_ssh_key_script(key_path)
@@ -127,6 +129,7 @@ def main(pub_path: Optional[str] = typer.Argument(None, help="Path to the public
127
129
  return
128
130
  console.print(Panel(f"✅ Found {len(keys)} public key(s) for user: {from_github}", title="[bold green]Success[/bold green]", border_style="green"))
129
131
  key_path = PathExtended.home().joinpath(f".ssh/{from_github}_github_keys.pub")
132
+ key_path.parent.mkdir(parents=True, exist_ok=True)
130
133
  key_path.write_text("\n".join([key["key"] for key in keys]), encoding="utf-8")
131
134
  console.print(Panel(f"💾 Keys saved to: {key_path}", title="[bold green]Success[/bold green]", border_style="green"))
132
135
  program = get_add_ssh_key_script(key_path)
@@ -276,9 +276,23 @@ class Installer:
276
276
  an_dl = asset.get("browser_download_url", "NA")
277
277
  available_filenames.append(an_dl.split("/")[-1])
278
278
  if filename not in available_filenames:
279
- filename = filename_pattern.format(version=actual_version.replace("v", ""))
280
- if filename not in available_filenames:
281
- print(f"❌ Filename {filename} not found in assets: {available_filenames}")
279
+ candidates = [
280
+ filename,
281
+ filename_pattern.format(version=actual_version),
282
+ filename_pattern.format(version=actual_version.replace("v", "")),
283
+ ]
284
+
285
+ # Include hyphen/underscore variants
286
+ variants = []
287
+ for f in candidates:
288
+ variants += [f, f.replace("-", "_"), f.replace("_", "-")]
289
+
290
+ for f in variants:
291
+ if f in available_filenames:
292
+ filename = f
293
+ break
294
+ else:
295
+ print(f"❌ Filename not found in assets. Tried: {variants}\nAvailable: {available_filenames}")
282
296
  return None, None
283
297
  browser_download_url = f"{repo_url}/releases/download/{actual_version}/{filename}"
284
298
  return browser_download_url, actual_version
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 5.77
3
+ Version: 5.78
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -56,29 +56,19 @@ Requires-Dist: python-magic>=0.4.27; extra == "plot"
56
56
  # Welcome to machineconfig
57
57
 
58
58
  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.
59
- Dotfiles include, but are not limited to:
60
- * `~/.gitconfig`
61
- * `~/.ssh`
62
- * `~/.aws`
63
- * `~/.bash_profile`
64
- * `~/.bashrc`
65
- * `~/.config`
66
- * `$profile` in Windows Powershell
67
- * etc
59
+ Dotfiles are divided into private and public. Examples of private ones are, `~/.gitconfig`, `~/.ssh`, etc. Whereas public config files are ones like `lfrc`. The private dotfiles are placed @ `~/dotfiles`. The files therein are encrypted before backedup.
68
60
 
69
-
70
- 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.
71
-
72
-
73
- # Windows:
61
+ # Install On Windows:
74
62
 
75
63
  ```powershell
64
+
76
65
  iex (iwr bit.ly/cfgwindows).Content
77
66
  ```
78
67
 
79
- # Linux and MacOS
68
+ # Install On Linux and MacOS
80
69
 
81
70
  ```bash
71
+
82
72
  . <(curl -sL bit.ly/cfglinux)
83
73
  ```
84
74
 
@@ -46,7 +46,7 @@ machineconfig/cluster/templates/cli_trogon.py,sha256=PFWGy8SFYIhT9r3ZV4oIEYfImsQ
46
46
  machineconfig/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  machineconfig/jobs/installer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
48
  machineconfig/jobs/installer/check_installations.py,sha256=uFuxhgI8rIMtClcGmuc9gpG6iJ7X0__peGUQfGkreT8,10778
49
- machineconfig/jobs/installer/installer_data.json,sha256=Cf-55djN5SpOpcFEaMDOJRkLD-lkm18smjLIPAU-s3Q,75020
49
+ machineconfig/jobs/installer/installer_data.json,sha256=qkQi-ZkGqjPJspa30CpbHzHLEnjEO81bUDK0yFyoIFc,74978
50
50
  machineconfig/jobs/installer/package_groups.py,sha256=i4z83F_rk7BVsrwFhz5Vn4SLF0IHxyQBFSxpAaZBl8M,5270
51
51
  machineconfig/jobs/installer/custom/gh.py,sha256=gn7TUSrsLx7uqFqj1Z-iYglS0EYBSgtJ9jWHxaJIfXM,4119
52
52
  machineconfig/jobs/installer/custom/hx.py,sha256=YQClQXqWtGvon8BLFGf1Fp20JPkHgZeEZ6ebmCJQQfI,5838
@@ -177,13 +177,13 @@ machineconfig/scripts/python/devops_helpers/__init__.py,sha256=47DEQpj8HBSa-_TIm
177
177
  machineconfig/scripts/python/devops_helpers/cli_config.py,sha256=wnQyhN-LbuIpVKvZhOxv8_UR7cwFTlKpZMqL3Ydi3Zo,5332
178
178
  machineconfig/scripts/python/devops_helpers/cli_config_dotfile.py,sha256=rjTys4FNf9_feP9flWM7Zvq17dxWmetSiGaHPxp25nk,2737
179
179
  machineconfig/scripts/python/devops_helpers/cli_data.py,sha256=kvJ7g2CccjjXIhCwdu_Vlif8JHC0qUoLjuGcTSqT-IU,514
180
- machineconfig/scripts/python/devops_helpers/cli_nw.py,sha256=oFATGL47At4xr09qf2Rt1Q3b_YuUIVSGs44GQcGbNbE,3398
180
+ machineconfig/scripts/python/devops_helpers/cli_nw.py,sha256=pMypnNF7Ffp__Ic9D0R386juwhbbQ21TAdYyZRwmCy0,3442
181
181
  machineconfig/scripts/python/devops_helpers/cli_repos.py,sha256=HJH5ZBob_Uzhc3fDgG9riOeW6YEJt88xTjQYcEUPmUY,12015
182
- machineconfig/scripts/python/devops_helpers/cli_self.py,sha256=c5XDe0Fzox2NVkOPIixH-kHIloGwg8U8aMGR2I74gag,4564
182
+ machineconfig/scripts/python/devops_helpers/cli_self.py,sha256=9ie3qtEKcUSDwi7rkwBbWCXZoYsk6wpYXEVIC4wlBIg,4531
183
183
  machineconfig/scripts/python/devops_helpers/cli_share_server.py,sha256=285OzxttCx7YsrpOkaapMKP1eVGHmG5TkkaSQnY7i3c,3976
184
184
  machineconfig/scripts/python/devops_helpers/cli_terminal.py,sha256=k_PzXaiGyE0vXr0Ii1XcJz2A7UvyPJrR31TRWt4RKRI,6019
185
185
  machineconfig/scripts/python/devops_helpers/devops_add_identity.py,sha256=wvjNgqsLmqD2SxbNCW_usqfp0LI-TDvcJJKGOWt2oFw,3775
186
- machineconfig/scripts/python/devops_helpers/devops_add_ssh_key.py,sha256=gjp2bv-nrGvSsQGHNIpE83yJqza2gj1FXJkimUtZwmU,9119
186
+ machineconfig/scripts/python/devops_helpers/devops_add_ssh_key.py,sha256=4Vn93ecTy62rIc8uLM90YsR3l0-0AiiqumMlI9Axk9A,9296
187
187
  machineconfig/scripts/python/devops_helpers/devops_backup_retrieve.py,sha256=nK47Rc7gQuDCnkk6_sW1y82gBnDJ9TdHU8XwMPFBK9c,5591
188
188
  machineconfig/scripts/python/devops_helpers/devops_status.py,sha256=PJVPhfhXq8der6Xd-_fjZfnizfM-RGfJApkRGhGBmNo,20525
189
189
  machineconfig/scripts/python/devops_helpers/devops_update_repos.py,sha256=qYS3vT-VECxXI4MXgmRMHAqbVX19aj0U_zobhyM_nGI,10130
@@ -414,14 +414,14 @@ machineconfig/utils/installer_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQ
414
414
  machineconfig/utils/installer_utils/github_release_bulk.py,sha256=WJf_qZlF02SmIc6C7o1h4Gy4gAaJAfeAS8O9s2Itj-k,6535
415
415
  machineconfig/utils/installer_utils/installer.py,sha256=bWFSIW05hDo6p1BsNqK-yCQL5ZNU_eZxCQW1QLLc-SA,9759
416
416
  machineconfig/utils/installer_utils/installer_abc.py,sha256=ZoMtINHD9cHEu4R5SYUWgHLTAqo4F2a33pBrEOGX4zs,11693
417
- machineconfig/utils/installer_utils/installer_class.py,sha256=zkbomiesAgc75BjVoe8KbjCMxaykotJ0dv9vKlm2Kv0,16756
417
+ machineconfig/utils/installer_utils/installer_class.py,sha256=apLMLmpZfHbj4I5ttgwg0ZIp66B5vx2nPtuhEobGdWM,17186
418
418
  machineconfig/utils/schemas/fire_agents/fire_agents_input.py,sha256=Xbi59rU35AzR7HZZ8ZQ8aUu_FjSgijNqc8Sme0rCk2Y,2050
419
419
  machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoSpdmTIdgS9LS-RvE-QZ-D260tD3o,1214
420
420
  machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
421
421
  machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
422
422
  machineconfig/utils/ssh_utils/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
423
- machineconfig-5.77.dist-info/METADATA,sha256=d7RjZI75mRctKM8EqCpyFnVcHW_YQP0cbbHPnJm4uFM,3103
424
- machineconfig-5.77.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
425
- machineconfig-5.77.dist-info/entry_points.txt,sha256=M0jwN_brZdXWhmNVeXLvdKxfkv8WhhXFZYcuKBA9qnk,418
426
- machineconfig-5.77.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
427
- machineconfig-5.77.dist-info/RECORD,,
423
+ machineconfig-5.78.dist-info/METADATA,sha256=i9g-av8M1QLZxEzuHg-_KcwvgukX_qg_ioP95H3oniY,3013
424
+ machineconfig-5.78.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
425
+ machineconfig-5.78.dist-info/entry_points.txt,sha256=M0jwN_brZdXWhmNVeXLvdKxfkv8WhhXFZYcuKBA9qnk,418
426
+ machineconfig-5.78.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
427
+ machineconfig-5.78.dist-info/RECORD,,