machineconfig 6.99__py3-none-any.whl → 7.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of machineconfig might be problematic. Click here for more details.
- machineconfig/scripts/python/define.py +26 -0
- machineconfig/scripts/python/helpers_devops/cli_config.py +3 -12
- machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +41 -38
- machineconfig/setup_linux/__init__.py +1 -0
- machineconfig/utils/links.py +16 -7
- machineconfig/utils/upgrade_packages.py +4 -2
- {machineconfig-6.99.dist-info → machineconfig-7.2.dist-info}/METADATA +13 -3
- {machineconfig-6.99.dist-info → machineconfig-7.2.dist-info}/RECORD +11 -10
- {machineconfig-6.99.dist-info → machineconfig-7.2.dist-info}/entry_points.txt +2 -0
- {machineconfig-6.99.dist-info → machineconfig-7.2.dist-info}/WHEEL +0 -0
- {machineconfig-6.99.dist-info → machineconfig-7.2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
"""
|
|
3
|
+
Minimalist programs that only print scripts without frills so it can be sourced by by shell.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
import typer
|
|
8
|
+
import platform
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def define_scripts():
|
|
12
|
+
if platform.system() != "Linux":
|
|
13
|
+
raise RuntimeError("This command is only supported on Linux systems.")
|
|
14
|
+
from machineconfig.setup_linux import INTERACTIVE as script_path
|
|
15
|
+
script = script_path.read_text(encoding="utf-8")
|
|
16
|
+
print(script)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def main():
|
|
20
|
+
app = typer.Typer(add_completion=False, no_args_is_help=True)
|
|
21
|
+
app.command(name="scripts", help="define all scripts", no_args_is_help=False)(define_scripts)
|
|
22
|
+
app()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# if __name__ == "__main__":
|
|
26
|
+
# main()
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
from typing import Literal, Annotated, Optional
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
import typer
|
|
6
|
-
|
|
6
|
+
import machineconfig.scripts.python.helpers_devops.cli_config_dotfile as dotfile_module
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
def private(method: Annotated[Literal["symlink", "copy"], typer.Option(..., "--method", "-m", help="Method to use for linking files")],
|
|
@@ -22,15 +22,6 @@ def public(method: Annotated[Literal["symlink", "copy"], typer.Option(..., "--me
|
|
|
22
22
|
import machineconfig.profile.create_links_export as create_links_export
|
|
23
23
|
create_links_export.main_public_from_parser(method=method, on_conflict=on_conflict, which=which, interactive=interactive)
|
|
24
24
|
|
|
25
|
-
def dotfile(file: Annotated[str, typer.Argument(help="file/folder path.")],
|
|
26
|
-
overwrite: Annotated[bool, typer.Option("--overwrite", "-o", help="Overwrite.")] = False,
|
|
27
|
-
dest: Annotated[str, typer.Option("--dest", "-d", help="destination folder")] = "",
|
|
28
|
-
):
|
|
29
|
-
"""🔗 Manage dotfiles."""
|
|
30
|
-
import machineconfig.scripts.python.helpers_devops.cli_config_dotfile as dotfile_module
|
|
31
|
-
dotfile_module.main(file=file, overwrite=overwrite, dest=dest)
|
|
32
|
-
|
|
33
|
-
|
|
34
25
|
def shell():
|
|
35
26
|
"""🔗 Configure your shell profile."""
|
|
36
27
|
from machineconfig.profile.create_shell_profile import create_default_shell_profile
|
|
@@ -104,8 +95,8 @@ def get_app():
|
|
|
104
95
|
config_apps.command("v", no_args_is_help=True, hidden=True)(private)
|
|
105
96
|
config_apps.command("public", no_args_is_help=True, help="🔗 [b] Manage public configuration files.")(public)
|
|
106
97
|
config_apps.command("b", no_args_is_help=True, help="Manage public configuration files.", hidden=True)(public)
|
|
107
|
-
config_apps.command("dotfile", no_args_is_help=True, help="🔗 [d] Manage dotfiles.")(
|
|
108
|
-
config_apps.command("d", no_args_is_help=True, hidden=True)(
|
|
98
|
+
config_apps.command("dotfile", no_args_is_help=True, help="🔗 [d] Manage dotfiles.")(dotfile_module.main)
|
|
99
|
+
config_apps.command("d", no_args_is_help=True, hidden=True)(dotfile_module.main)
|
|
109
100
|
config_apps.command("shell", no_args_is_help=False, help="🔗 [s] Configure your shell profile.")(shell)
|
|
110
101
|
config_apps.command("s", no_args_is_help=False, help="Configure your shell profile.", hidden=True)(shell)
|
|
111
102
|
config_apps.command("path", no_args_is_help=False, help="📚 [p] NAVIGATE PATH variable with TUI")(path)
|
|
@@ -1,41 +1,44 @@
|
|
|
1
1
|
"""Like yadm and dotter."""
|
|
2
2
|
|
|
3
|
-
from typing import Annotated
|
|
4
|
-
|
|
3
|
+
from typing import Annotated, Literal
|
|
5
4
|
import typer
|
|
6
5
|
|
|
7
6
|
|
|
8
7
|
def main(
|
|
9
8
|
file: Annotated[str, typer.Argument(help="file/folder path.")],
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
method: Annotated[Literal["symlink", "copy"], typer.Option(..., "--method", "-m", help="Method to use for linking files")] = "copy",
|
|
10
|
+
on_conflict: Annotated[Literal["throw-error", "overwriteSelfManaged", "backupSelfManaged", "overwriteDefaultPath", "backupDefaultPath"], typer.Option(..., "--on-conflict", "-o", help="Action to take on conflict")] = "throw-error",
|
|
11
|
+
sensitivity: Annotated[Literal["private", "public"], typer.Option(..., "--sensitivity", "-s", help="Sensitivity of the config file.")] = "private",
|
|
12
|
+
destination: Annotated[str, typer.Option("--destination", "-d", help="destination folder (override the default, use at your own risk)")] = "",
|
|
12
13
|
) -> None:
|
|
13
|
-
|
|
14
14
|
from rich.console import Console
|
|
15
15
|
from rich.panel import Panel
|
|
16
|
+
from machineconfig.utils.links import symlink_map, copy_map
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
match sensitivity:
|
|
19
|
+
case "private":
|
|
20
|
+
backup_root = Path.home().joinpath("dotfiles/mapper")
|
|
21
|
+
case "public":
|
|
22
|
+
from machineconfig.utils.source_of_truth import CONFIG_ROOT
|
|
23
|
+
backup_root = Path(CONFIG_ROOT).joinpath("dotfiles/mapper")
|
|
16
24
|
|
|
17
|
-
from machineconfig.utils.links import symlink_map
|
|
18
|
-
from machineconfig.utils.path_extended import PathExtended
|
|
19
|
-
from machineconfig.utils.source_of_truth import CONFIG_ROOT
|
|
20
25
|
console = Console()
|
|
21
|
-
orig_path =
|
|
22
|
-
if
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
elif "Roaming" in str(orig_path):
|
|
26
|
-
junction = orig_path.split(at="Roaming", sep=-1)[1]
|
|
27
|
-
elif ".config" in str(orig_path):
|
|
28
|
-
junction = orig_path.split(at=".config", sep=-1)[1]
|
|
29
|
-
else:
|
|
30
|
-
junction = orig_path.rel2home()
|
|
31
|
-
new_path = PathExtended(CONFIG_ROOT).parent.parent.joinpath(junction)
|
|
26
|
+
orig_path = Path(file).expanduser().absolute()
|
|
27
|
+
if destination == "":
|
|
28
|
+
new_path = backup_root.joinpath(orig_path.relative_to(Path.home()))
|
|
29
|
+
new_path.parent.mkdir(parents=True, exist_ok=True)
|
|
32
30
|
else:
|
|
33
|
-
dest_path =
|
|
31
|
+
dest_path = Path(destination).expanduser().absolute()
|
|
34
32
|
dest_path.mkdir(parents=True, exist_ok=True)
|
|
35
33
|
new_path = dest_path.joinpath(orig_path.name)
|
|
36
34
|
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
from machineconfig.utils.path_extended import PathExtended
|
|
36
|
+
if method == "copy":
|
|
37
|
+
copy_map(config_file_default_path=PathExtended(orig_path), self_managed_config_file_path=PathExtended(new_path), on_conflict=on_conflict)
|
|
38
|
+
elif method == "symlink":
|
|
39
|
+
symlink_map(config_file_default_path=PathExtended(orig_path), self_managed_config_file_path=PathExtended(new_path), on_conflict=on_conflict)
|
|
40
|
+
else:
|
|
41
|
+
raise ValueError(f"Unknown method: {method}")
|
|
39
42
|
console.print(
|
|
40
43
|
Panel(
|
|
41
44
|
"\n".join(
|
|
@@ -50,23 +53,23 @@ def main(
|
|
|
50
53
|
)
|
|
51
54
|
)
|
|
52
55
|
|
|
53
|
-
mapper_snippet = "\n".join(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
)
|
|
56
|
+
# mapper_snippet = "\n".join(
|
|
57
|
+
# [
|
|
58
|
+
# f"[bold]📝 Edit configuration file:[/] [cyan]nano {PathExtended(CONFIG_ROOT)}/symlinks/mapper.toml[/cyan]",
|
|
59
|
+
# "",
|
|
60
|
+
# f"[{new_path.parent.name}]",
|
|
61
|
+
# f"{orig_path.name.split('.')[0]} = {{ this = '{orig_path.collapseuser().as_posix()}', to_this = '{new_path.collapseuser().as_posix()}' }}",
|
|
62
|
+
# ]
|
|
63
|
+
# )
|
|
61
64
|
|
|
62
|
-
console.print(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
)
|
|
65
|
+
# console.print(
|
|
66
|
+
# Panel(
|
|
67
|
+
# mapper_snippet,
|
|
68
|
+
# title="Mapper Entry",
|
|
69
|
+
# border_style="cyan",
|
|
70
|
+
# padding=(1, 2),
|
|
71
|
+
# )
|
|
72
|
+
# )
|
|
70
73
|
|
|
71
74
|
|
|
72
75
|
def arg_parser() -> None:
|
machineconfig/utils/links.py
CHANGED
|
@@ -162,14 +162,15 @@ def symlink_map(config_file_default_path: PathExtended, self_managed_config_file
|
|
|
162
162
|
config_file_default_path.delete(sure=True)
|
|
163
163
|
else:
|
|
164
164
|
# Files are different, use on_conflict strategy
|
|
165
|
+
import subprocess
|
|
166
|
+
command = f"""delta --side-by-side "{config_file_default_path}" "{self_managed_config_file_path}" """
|
|
167
|
+
try:
|
|
168
|
+
console.print(Panel(f"🆘 CONFLICT DETECTED | Showing diff between {config_file_default_path} and {self_managed_config_file_path}", title="Conflict Detected", expand=False))
|
|
169
|
+
subprocess.run(command, shell=True, check=True)
|
|
170
|
+
except Exception:
|
|
171
|
+
console.print(Panel("⚠️ Could not show diff using 'delta'. Please install 'delta' for better diff visualization.", title="Delta Not Found", expand=False))
|
|
172
|
+
|
|
165
173
|
if on_conflict == "throw-error":
|
|
166
|
-
import subprocess
|
|
167
|
-
command = f"""delta --side-by-side "{config_file_default_path}" "{self_managed_config_file_path}" """
|
|
168
|
-
try:
|
|
169
|
-
console.print(Panel(f"🆘 CONFLICT DETECTED | Showing diff between {config_file_default_path} and {self_managed_config_file_path}", title="Conflict Detected", expand=False))
|
|
170
|
-
subprocess.run(command, shell=True, check=True)
|
|
171
|
-
except Exception:
|
|
172
|
-
console.print(Panel("⚠️ Could not show diff using 'delta'. Please install 'delta' for better diff visualization.", title="Delta Not Found", expand=False))
|
|
173
174
|
raise RuntimeError(f"Conflict detected: {config_file_default_path} and {self_managed_config_file_path} both exist with different content")
|
|
174
175
|
elif on_conflict == "overwriteSelfManaged":
|
|
175
176
|
action_taken = "backing_up_target"
|
|
@@ -289,6 +290,14 @@ def copy_map(config_file_default_path: PathExtended, self_managed_config_file_pa
|
|
|
289
290
|
config_file_default_path.delete(sure=True)
|
|
290
291
|
else:
|
|
291
292
|
# Files are different, use on_conflict strategy
|
|
293
|
+
import subprocess
|
|
294
|
+
command = f"""delta --side-by-side "{config_file_default_path}" "{self_managed_config_file_path}" """
|
|
295
|
+
try:
|
|
296
|
+
console.print(Panel(f"🆘 CONFLICT DETECTED | Showing diff between {config_file_default_path} and {self_managed_config_file_path}", title="Conflict Detected", expand=False))
|
|
297
|
+
subprocess.run(command, shell=True, check=True)
|
|
298
|
+
except Exception:
|
|
299
|
+
console.print(Panel("⚠️ Could not show diff using 'delta'. Please install 'delta' for better diff visualization.", title="Delta Not Found", expand=False))
|
|
300
|
+
|
|
292
301
|
match on_conflict:
|
|
293
302
|
case "throw-error":
|
|
294
303
|
raise RuntimeError(f"Conflict detected: {config_file_default_path} and {self_managed_config_file_path} both exist with different content")
|
|
@@ -113,9 +113,11 @@ def upgrade_machine_config_version() -> None:
|
|
|
113
113
|
major: int = int(version_parts[0])
|
|
114
114
|
minor: int = int(version_parts[1])
|
|
115
115
|
|
|
116
|
-
# Bump minor version by 1
|
|
116
|
+
# Bump minor version by 1, preserving zero-padding
|
|
117
117
|
new_minor: int = minor + 1
|
|
118
|
-
|
|
118
|
+
# Preserve the same number of digits as the original minor version
|
|
119
|
+
minor_width: int = len(version_parts[1])
|
|
120
|
+
new_version: str = f"{major}.{new_minor:0{minor_width}d}"
|
|
119
121
|
|
|
120
122
|
old_version_constraint: str = f"machineconfig>={current_version_str}"
|
|
121
123
|
new_version_constraint: str = f"machineconfig>={new_version}"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: machineconfig
|
|
3
|
-
Version:
|
|
3
|
+
Version: 7.2
|
|
4
4
|
Summary: Dotfiles management package
|
|
5
5
|
Author-email: Alex Al-Saffar <programmer@usa.com>
|
|
6
6
|
License: Apache 2.0
|
|
@@ -59,15 +59,25 @@ Dotfiles are divided into private and public. Examples of private ones are, `~/.
|
|
|
59
59
|
# Install On Windows:
|
|
60
60
|
|
|
61
61
|
```powershell
|
|
62
|
-
|
|
62
|
+
# Temporary install:
|
|
63
63
|
iex (iwr bit.ly/cfgwindows).Content
|
|
64
|
+
# Or, if UV is installed:
|
|
65
|
+
iex (uvx machineconfig define)
|
|
66
|
+
# Permanent install:
|
|
67
|
+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # Skip if UV is already installed
|
|
68
|
+
uvx install --upgrade machineconfig
|
|
64
69
|
```
|
|
65
70
|
|
|
66
71
|
# Install On Linux and MacOS
|
|
67
72
|
|
|
68
73
|
```bash
|
|
69
|
-
|
|
74
|
+
# Temporary install:
|
|
70
75
|
. <(curl -L bit.ly/cfglinux)
|
|
76
|
+
# Or, if UV is installed:
|
|
77
|
+
. <(uvx machineconfig define)
|
|
78
|
+
# Permanent install:
|
|
79
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh # Skip if UV is already installed
|
|
80
|
+
uvx install --upgrade machineconfig
|
|
71
81
|
```
|
|
72
82
|
|
|
73
83
|
|
|
@@ -121,6 +121,7 @@ machineconfig/scripts/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
|
121
121
|
machineconfig/scripts/python/agents.py,sha256=aVbLQDgpngXZm4taHcED4sAxyHvV2_Dz5VW3apPcQcY,10651
|
|
122
122
|
machineconfig/scripts/python/cloud.py,sha256=yAD6ciKiEtv2CH3g2NScDK5cpCZQi7Vu8yyeehw_cU8,1263
|
|
123
123
|
machineconfig/scripts/python/croshell.py,sha256=QyQbVboNqDQHJkUeSsJvdT212t4TW46yat3GBzneqsQ,8649
|
|
124
|
+
machineconfig/scripts/python/define.py,sha256=vk7E5twa3DtK10ZxRVlbklYHzcou7M3zPAoV5z9_JGI,645
|
|
124
125
|
machineconfig/scripts/python/devops.py,sha256=Lv4d-UlyOREj4VTcu_pxswYo54Mawe3XGeKjreGQDYg,2222
|
|
125
126
|
machineconfig/scripts/python/devops_navigator.py,sha256=5Cm384D4S8_GsvMzTwr0C16D0ktf8_5Mk5bEJncwDO8,237
|
|
126
127
|
machineconfig/scripts/python/fire_jobs.py,sha256=-xrUlBQ90asQkXuWESiDsD6D05Xuw0-NMmfwBerwSjg,13874
|
|
@@ -192,8 +193,8 @@ machineconfig/scripts/python/helpers_croshell/start_slidev.py,sha256=HfJReOusTPh
|
|
|
192
193
|
machineconfig/scripts/python/helpers_croshell/viewer.py,sha256=heQNjB9fwn3xxbPgMofhv1Lp6Vtkl76YjjexWWBM0pM,2041
|
|
193
194
|
machineconfig/scripts/python/helpers_croshell/viewer_template.py,sha256=ve3Q1-iKhCLc0VJijKvAeOYp2xaFOeIOC_XW956GWCc,3944
|
|
194
195
|
machineconfig/scripts/python/helpers_devops/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
195
|
-
machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=
|
|
196
|
-
machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py,sha256=
|
|
196
|
+
machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=mFEqpjCEhRfHRX4I8NspFmIOB8VvsJ6U9B5YOCIVDlE,6875
|
|
197
|
+
machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py,sha256=Qp6Pgbs-nJzf7_us_wPsIimPLJhY4TFYwIiFcmy-dxU,3249
|
|
197
198
|
machineconfig/scripts/python/helpers_devops/cli_data.py,sha256=79Xvx7YnbueruEnl69hrDg2AhVxf_zCUdlVcKfeMGyQ,1774
|
|
198
199
|
machineconfig/scripts/python/helpers_devops/cli_nw.py,sha256=9NcVJvPYaUDtmI_DSKthZxR4emMBeNWVM_M5f0YR8EQ,7302
|
|
199
200
|
machineconfig/scripts/python/helpers_devops/cli_repos.py,sha256=Xwkv1adqHZvTfRSPWiqSK3PZ1XADyx3llw_YkbxaKyE,12505
|
|
@@ -368,7 +369,7 @@ machineconfig/settings/zellij/layouts/panes.kdl,sha256=KlhKtelBy4Z2ENV_pix4xE7NH
|
|
|
368
369
|
machineconfig/settings/zellij/layouts/st.kdl,sha256=QXLRK7Wx05aKbKRHVmm4RspLYzPmEa44JMK1TwXQk58,523
|
|
369
370
|
machineconfig/settings/zellij/layouts/st2.kdl,sha256=1FKTH3qQWYMWp_wPMreP7fKOTlVd4cfBy3J8fv4zCBc,1489
|
|
370
371
|
machineconfig/settings/zellij/layouts/stacked_panes.kdl,sha256=usY8kKKwX1KUMXnWDivPg0i0drpM1Biw-tOnNZVjiZU,163
|
|
371
|
-
machineconfig/setup_linux/__init__.py,sha256=
|
|
372
|
+
machineconfig/setup_linux/__init__.py,sha256=5gT_vc6ze_RUMx9mk7_9kkOTyPPTo3MJFh2fq8MGToU,391
|
|
372
373
|
machineconfig/setup_linux/apps.sh,sha256=XOEzhuwYNat83ybamUdnVhDaGf2wlQiT5wVNvz2aJYM,3262
|
|
373
374
|
machineconfig/setup_linux/apps_desktop.sh,sha256=L2b_pcw3GiQdoAaoMO7J4bVvUoG5Pnuy9kDhV8JqprU,3325
|
|
374
375
|
machineconfig/setup_linux/apps_gui.sh,sha256=lFPYq7H2bRogPwW6QoEuSr9GnTjHS-jRM_eYg2rjOmM,2301
|
|
@@ -401,7 +402,7 @@ machineconfig/utils/accessories.py,sha256=Rs8R0GUb2Ub6YimkgXHnI02CShS5BKlrZdCigV
|
|
|
401
402
|
machineconfig/utils/code.py,sha256=fVeQnhZE8-aoPBsrgjNcBTcv3NuyBSSQv9P8jyC8W_M,6635
|
|
402
403
|
machineconfig/utils/installer.py,sha256=1ScBaTe_pRsfTYht9-LXmirgnNizNy8u1GgetUfEDO4,10351
|
|
403
404
|
machineconfig/utils/io.py,sha256=4dSieoqZO8Vvi4vW8lLoITDHBvmFp4dtl3kyeZHQ6Co,2528
|
|
404
|
-
machineconfig/utils/links.py,sha256=
|
|
405
|
+
machineconfig/utils/links.py,sha256=j2gHll55iqUXtB4NQbo3QwANRL1ztLGZfpcwLoJQZyk,25033
|
|
405
406
|
machineconfig/utils/meta.py,sha256=4ocYH3Zi6bVN6FVgXoGIfoasV6oxi67I9rQ8hvyYinc,9892
|
|
406
407
|
machineconfig/utils/notifications.py,sha256=tuXIudcip0tEioG-bm8BbLr3FMDve4f6BktlznBhKxM,9013
|
|
407
408
|
machineconfig/utils/options.py,sha256=VWYx3EKJxIp-CJ8gDGYdjclKSc1tMUhyrC8v3seeneo,7447
|
|
@@ -414,7 +415,7 @@ machineconfig/utils/source_of_truth.py,sha256=ZAnCRltiM07ig--P6g9_6nEAvNFC4X4ERF
|
|
|
414
415
|
machineconfig/utils/ssh.py,sha256=6LHTYA4OB5GtsmTjQ8Rut0S6JUqZgm7Vx_Rm2s1G98s,39008
|
|
415
416
|
machineconfig/utils/terminal.py,sha256=VDgsjTjBmMGgZN0YIc0pJ8YksLDrBtiXON1EThy7_is,4264
|
|
416
417
|
machineconfig/utils/tst.py,sha256=6u1GI49NdcpxH2BYGAusNfY5q9G_ytCGVzFM5b6HYpM,674
|
|
417
|
-
machineconfig/utils/upgrade_packages.py,sha256=
|
|
418
|
+
machineconfig/utils/upgrade_packages.py,sha256=75kabcI-chMiaBnafJ_hdhDUz_GyH7AsDt7rW3hyu9M,5851
|
|
418
419
|
machineconfig/utils/ve.py,sha256=L-6PBXnQGXThiwWgheJMQoisAZOZA6SVCbGw2J-GFnI,2414
|
|
419
420
|
machineconfig/utils/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
420
421
|
machineconfig/utils/cloud/onedrive/README.md,sha256=i20oRG110AN0yLF3DARHfWXDJjPBiSgWI8CP2HQAqrk,3774
|
|
@@ -440,8 +441,8 @@ machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoS
|
|
|
440
441
|
machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
|
|
441
442
|
machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
|
|
442
443
|
machineconfig/utils/ssh_utils/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
443
|
-
machineconfig-
|
|
444
|
-
machineconfig-
|
|
445
|
-
machineconfig-
|
|
446
|
-
machineconfig-
|
|
447
|
-
machineconfig-
|
|
444
|
+
machineconfig-7.2.dist-info/METADATA,sha256=DC93r9S7PPEHc072tYmxoheeY2fls1KhmVq93sGl5yg,3395
|
|
445
|
+
machineconfig-7.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
446
|
+
machineconfig-7.2.dist-info/entry_points.txt,sha256=0ho96z7b1toS6CeiajpTwEwQa83UrJ3g1onD4Wxax9o,624
|
|
447
|
+
machineconfig-7.2.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
|
|
448
|
+
machineconfig-7.2.dist-info/RECORD,,
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
agents = machineconfig.scripts.python.agents:main
|
|
3
3
|
cloud = machineconfig.scripts.python.cloud:main
|
|
4
4
|
croshell = machineconfig.scripts.python.croshell:main
|
|
5
|
+
define = machineconfig.scripts.python.define:main
|
|
5
6
|
devops = machineconfig.scripts.python.devops:main
|
|
6
7
|
fire = machineconfig.scripts.python.fire_jobs:main
|
|
7
8
|
ftpx = machineconfig.scripts.python.ftpx:main
|
|
9
|
+
machineconfig = machineconfig.scripts.python.mcfg:main
|
|
8
10
|
mcfg = machineconfig.scripts.python.mcfg:main
|
|
9
11
|
sessions = machineconfig.scripts.python.sessions:main
|
|
10
12
|
terminal = machineconfig.scripts.python.terminal:main
|
|
File without changes
|
|
File without changes
|