machineconfig 7.32__py3-none-any.whl → 7.33__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 +2 -2
- machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
- machineconfig/scripts/python/helpers_devops/cli_config.py +1 -1
- machineconfig/scripts/python/helpers_devops/cli_self.py +3 -3
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +1 -1
- machineconfig/scripts/python/{mcfg.py → machineconfig.py} +4 -0
- machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
- machineconfig/settings/shells/bash/init.sh +1 -1
- machineconfig/settings/shells/pwsh/init.ps1 +2 -2
- machineconfig/setup_linux/web_shortcuts/interactive.sh +10 -10
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +10 -10
- machineconfig/utils/io.py +69 -0
- machineconfig/utils/path_extended.py +2 -75
- machineconfig/utils/ssh.py +1 -1
- {machineconfig-7.32.dist-info → machineconfig-7.33.dist-info}/METADATA +1 -1
- {machineconfig-7.32.dist-info → machineconfig-7.33.dist-info}/RECORD +21 -21
- {machineconfig-7.32.dist-info → machineconfig-7.33.dist-info}/entry_points.txt +2 -2
- /machineconfig/scripts/linux/{mcfgs → wrap_mcfg} +0 -0
- /machineconfig/scripts/windows/{mcfgs.ps1 → wrap_mcfg.ps1} +0 -0
- {machineconfig-7.32.dist-info → machineconfig-7.33.dist-info}/WHEEL +0 -0
- {machineconfig-7.32.dist-info → machineconfig-7.33.dist-info}/top_level.txt +0 -0
|
@@ -16,10 +16,10 @@ def define_scripts():
|
|
|
16
16
|
print(script)
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
def
|
|
19
|
+
def get_app():
|
|
20
20
|
app = typer.Typer(add_completion=False, no_args_is_help=True)
|
|
21
21
|
app.command(name="scripts", help="define all scripts", no_args_is_help=False)(define_scripts)
|
|
22
|
-
app
|
|
22
|
+
return app
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
# if __name__ == "__main__":
|
|
@@ -39,7 +39,7 @@ def path():
|
|
|
39
39
|
uv_with = ["textual"]
|
|
40
40
|
uv_project_dir = None
|
|
41
41
|
if not Path.home().joinpath("code/machineconfig").exists():
|
|
42
|
-
uv_with.append("machineconfig>=7.
|
|
42
|
+
uv_with.append("machineconfig>=7.33")
|
|
43
43
|
else:
|
|
44
44
|
uv_project_dir = str(Path.home().joinpath("code/machineconfig"))
|
|
45
45
|
run_shell_script(get_uv_command_executing_python_script(python_script=path.read_text(encoding="utf-8"), uv_with=uv_with, uv_project_dir=uv_project_dir)[0])
|
|
@@ -48,9 +48,9 @@ def install(no_copy_assets: Annotated[bool, typer.Option("--no-assets-copy", "-n
|
|
|
48
48
|
else:
|
|
49
49
|
import platform
|
|
50
50
|
if platform.system() == "Windows":
|
|
51
|
-
run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=7.
|
|
51
|
+
run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=7.33" """)
|
|
52
52
|
else:
|
|
53
|
-
run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=7.
|
|
53
|
+
run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=7.33" """)
|
|
54
54
|
from machineconfig.profile.create_shell_profile import create_default_shell_profile
|
|
55
55
|
if not no_copy_assets:
|
|
56
56
|
create_default_shell_profile() # involves copying assets too
|
|
@@ -75,7 +75,7 @@ def navigate():
|
|
|
75
75
|
path = Path(navigator.__file__).resolve().parent.joinpath("devops_navigator.py")
|
|
76
76
|
from machineconfig.utils.code import run_shell_script
|
|
77
77
|
if Path.home().joinpath("code/machineconfig").exists(): executable = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" --with textual"""
|
|
78
|
-
else: executable = """--with "machineconfig>=7.
|
|
78
|
+
else: executable = """--with "machineconfig>=7.33,textual" """
|
|
79
79
|
run_shell_script(f"""uv run {executable} {path}""")
|
|
80
80
|
|
|
81
81
|
|
|
@@ -8,6 +8,7 @@ from machineconfig.scripts.python.utils import get_app as get_utils_app
|
|
|
8
8
|
from machineconfig.scripts.python.ftpx import ftpx as ftpx_func
|
|
9
9
|
from machineconfig.scripts.python.croshell import croshell as croshell_func
|
|
10
10
|
from machineconfig.scripts.python.fire_jobs import fire as get_fire_jobs_app
|
|
11
|
+
from machineconfig.scripts.python.define import get_app as get_define_app
|
|
11
12
|
|
|
12
13
|
def get_app():
|
|
13
14
|
import typer
|
|
@@ -40,6 +41,9 @@ def get_app():
|
|
|
40
41
|
app.add_typer(utils_app, name="utils", help="[u] Utility commands", no_args_is_help=True)
|
|
41
42
|
app.add_typer(utils_app, name="u", hidden=True) # short alias
|
|
42
43
|
|
|
44
|
+
define_app = get_define_app()
|
|
45
|
+
app.add_typer(define_app, name="define", help="[df] Define and manage configurations", no_args_is_help=True)
|
|
46
|
+
app.add_typer(define_app, name="df", hidden=True) # short alias
|
|
43
47
|
return app
|
|
44
48
|
|
|
45
49
|
|
|
@@ -7,7 +7,7 @@ $user = ''
|
|
|
7
7
|
$sharePath = ''
|
|
8
8
|
$driveLetter = ''
|
|
9
9
|
|
|
10
|
-
uv run --python 3.14 --with "machineconfig>=7.
|
|
10
|
+
uv run --python 3.14 --with "machineconfig>=7.33" python -m machineconfig.scripts.python.mount_ssh
|
|
11
11
|
|
|
12
12
|
net use T: \\sshfs.kr\$user@$host.local
|
|
13
13
|
# this worked: net use T: \\sshfs\alex@alex-p51s-5.local
|
|
@@ -37,7 +37,7 @@ add_to_path_if_not_already \
|
|
|
37
37
|
. $CONFIG_ROOT/settings/broot/br.sh
|
|
38
38
|
. $CONFIG_ROOT/settings/lf/linux/exe/lfcd.sh
|
|
39
39
|
. $CONFIG_ROOT/settings/tere/terecd.sh
|
|
40
|
-
. $CONFIG_ROOT/scripts/linux/
|
|
40
|
+
. $CONFIG_ROOT/scripts/linux/wrap_mcfg
|
|
41
41
|
|
|
42
42
|
# check if file in ~/dotfiles/machineconfig/init_linux.sh exists and source it
|
|
43
43
|
if [ -f "$HOME/dotfiles/machineconfig/init_linux.sh" ]; then
|
|
@@ -24,11 +24,11 @@ Add-ToPathIfNotAlready -Directories @(
|
|
|
24
24
|
)
|
|
25
25
|
|
|
26
26
|
# sources ================================================================
|
|
27
|
-
if (Test-Path "$CONFIG_ROOT\scripts\windows\
|
|
27
|
+
if (Test-Path "$CONFIG_ROOT\scripts\windows\wrap_mcfg.ps1") {
|
|
28
28
|
. $CONFIG_ROOT\settings\broot\brootcd.ps1
|
|
29
29
|
. $CONFIG_ROOT\settings\lf\windows\lfcd.ps1
|
|
30
30
|
. $CONFIG_ROOT\settings\tere\terecd.ps1
|
|
31
|
-
. $CONFIG_ROOT\scripts\windows\
|
|
31
|
+
. $CONFIG_ROOT\scripts\windows\wrap_mcfg.ps1
|
|
32
32
|
|
|
33
33
|
function lsdla { lsd -la }
|
|
34
34
|
Set-Alias -Name l -Value lsdla -Option AllScope
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
. <( curl -sSL "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/uv.sh")
|
|
3
|
-
. <( curl -sSL "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/scripts/linux/
|
|
3
|
+
. <( curl -sSL "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/scripts/linux/wrap_mcfg")
|
|
4
4
|
|
|
5
|
-
alias devops='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
6
|
-
alias cloud='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
7
|
-
alias agents='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
8
|
-
alias sessions='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
9
|
-
alias ftpx='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
10
|
-
alias fire='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
11
|
-
alias croshell='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
12
|
-
alias utils='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
13
|
-
alias terminal='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.
|
|
5
|
+
alias devops='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.33" devops'
|
|
6
|
+
alias cloud='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.33" cloud'
|
|
7
|
+
alias agents='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.33" agents'
|
|
8
|
+
alias sessions='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.33" sessions'
|
|
9
|
+
alias ftpx='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.33" ftpx'
|
|
10
|
+
alias fire='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.33" fire'
|
|
11
|
+
alias croshell='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.33" croshell'
|
|
12
|
+
alias utils='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.33" utils'
|
|
13
|
+
alias terminal='$HOME/.local/bin/uvx --python 3.14 --from "machineconfig>=7.33" terminal'
|
|
14
14
|
|
|
15
15
|
alias d='wrap_in_shell_script devops'
|
|
16
16
|
alias c='wrap_in_shell_script cloud'
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
3
|
iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/uv.ps1").Content
|
|
4
|
-
iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/scripts/windows/
|
|
4
|
+
iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/scripts/windows/wrap_mcfg.ps1").Content
|
|
5
5
|
|
|
6
|
-
function devops { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
7
|
-
function cloud { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
8
|
-
function agents { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
9
|
-
function sessions { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
10
|
-
function ftpx { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
11
|
-
function fire { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
12
|
-
function croshell { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
13
|
-
function utils { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
14
|
-
function terminal { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.
|
|
6
|
+
function devops { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.33" devops $args }
|
|
7
|
+
function cloud { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.33" cloud $args }
|
|
8
|
+
function agents { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.33" agents $args }
|
|
9
|
+
function sessions { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.33" sessions $args }
|
|
10
|
+
function ftpx { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.33" ftpx $args }
|
|
11
|
+
function fire { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.33" fire $args }
|
|
12
|
+
function croshell { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.33" croshell $args }
|
|
13
|
+
function utils { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.33" utils $args }
|
|
14
|
+
function terminal { & "$HOME\.local\bin\uvx.exe" --python 3.14 --from "machineconfig>=7.33" terminal $args }
|
|
15
15
|
|
|
16
16
|
function d { wrap_in_shell_script devops @args }
|
|
17
17
|
function c { wrap_in_shell_script cloud @args }
|
machineconfig/utils/io.py
CHANGED
|
@@ -77,3 +77,72 @@ def from_pickle(path: Path) -> Any:
|
|
|
77
77
|
import pickle
|
|
78
78
|
|
|
79
79
|
return pickle.loads(path.read_bytes())
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def pwd2key(password: str, salt: Optional[bytes] = None, iterations: int = 10) -> bytes: # Derive a secret key from a given password and salt"""
|
|
83
|
+
import base64
|
|
84
|
+
if salt is None:
|
|
85
|
+
import hashlib
|
|
86
|
+
m = hashlib.sha256()
|
|
87
|
+
m.update(password.encode(encoding="utf-8"))
|
|
88
|
+
return base64.urlsafe_b64encode(s=m.digest()) # make url-safe bytes required by Ferent.
|
|
89
|
+
from cryptography.hazmat.primitives import hashes
|
|
90
|
+
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
|
|
91
|
+
return base64.urlsafe_b64encode(PBKDF2HMAC(algorithm=hashes.SHA256(), length=32, salt=salt, iterations=iterations, backend=None).derive(password.encode()))
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
def encrypt(msg: bytes, key: Optional[bytes] = None, pwd: Optional[str] = None, salted: bool = True, iteration: Optional[int] = None, gen_key: bool = False) -> bytes:
|
|
95
|
+
import base64
|
|
96
|
+
from cryptography.fernet import Fernet
|
|
97
|
+
|
|
98
|
+
salt, iteration = None, None
|
|
99
|
+
if pwd is not None: # generate it from password
|
|
100
|
+
assert (key is None) and (type(pwd) is str), "❌ You can either pass key or pwd, or none of them, but not both."
|
|
101
|
+
import secrets
|
|
102
|
+
iteration = iteration or secrets.randbelow(exclusive_upper_bound=1_000_000)
|
|
103
|
+
salt = secrets.token_bytes(nbytes=16) if salted else None
|
|
104
|
+
key_resolved = pwd2key(password=pwd, salt=salt, iterations=iteration)
|
|
105
|
+
elif key is None:
|
|
106
|
+
if gen_key:
|
|
107
|
+
key_resolved = Fernet.generate_key()
|
|
108
|
+
Path.home().joinpath("dotfiles/creds/data/encrypted_files_key.bytes").write_bytes(key_resolved)
|
|
109
|
+
else:
|
|
110
|
+
try:
|
|
111
|
+
key_resolved = Path.home().joinpath("dotfiles/creds/data/encrypted_files_key.bytes").read_bytes()
|
|
112
|
+
print(f"⚠️ Using key from: {Path.home().joinpath('dotfiles/creds/data/encrypted_files_key.bytes')}")
|
|
113
|
+
except FileNotFoundError as err:
|
|
114
|
+
print("\n" * 3, "~" * 50, """Consider Loading up your dotfiles or pass `gen_key=True` to make and save one.""", "~" * 50, "\n" * 3)
|
|
115
|
+
raise FileNotFoundError(err) from err
|
|
116
|
+
elif isinstance(key, (str, Path)):
|
|
117
|
+
key_resolved = Path(key).read_bytes() # a path to a key file was passed, read it:
|
|
118
|
+
elif type(key) is bytes:
|
|
119
|
+
key_resolved = key # key passed explicitly
|
|
120
|
+
else:
|
|
121
|
+
raise TypeError("❌ Key must be either a path, bytes object or None.")
|
|
122
|
+
code = Fernet(key=key_resolved).encrypt(msg)
|
|
123
|
+
if pwd is not None and salt is not None and iteration is not None:
|
|
124
|
+
return base64.urlsafe_b64encode(b"%b%b%b" % (salt, iteration.to_bytes(4, "big"), base64.urlsafe_b64decode(code)))
|
|
125
|
+
return code
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def decrypt(token: bytes, key: Optional[bytes] = None, pwd: Optional[str] = None, salted: bool = True) -> bytes:
|
|
129
|
+
import base64
|
|
130
|
+
if pwd is not None:
|
|
131
|
+
assert key is None, "❌ You can either pass key or pwd, or none of them, but not both."
|
|
132
|
+
if salted:
|
|
133
|
+
decoded = base64.urlsafe_b64decode(token)
|
|
134
|
+
salt, iterations, token = decoded[:16], decoded[16:20], base64.urlsafe_b64encode(decoded[20:])
|
|
135
|
+
key_resolved = pwd2key(password=pwd, salt=salt, iterations=int.from_bytes(bytes=iterations, byteorder="big"))
|
|
136
|
+
else:
|
|
137
|
+
key_resolved = pwd2key(password=pwd) # trailing `;` prevents IPython from caching the result.
|
|
138
|
+
elif type(key) is bytes:
|
|
139
|
+
assert pwd is None, "❌ You can either pass key or pwd, or none of them, but not both."
|
|
140
|
+
key_resolved = key # passsed explicitly
|
|
141
|
+
elif key is None:
|
|
142
|
+
key_resolved = Path.home().joinpath("dotfiles/creds/data/encrypted_files_key.bytes").read_bytes() # read from file
|
|
143
|
+
elif isinstance(key, (str, Path)):
|
|
144
|
+
key_resolved = Path(key).read_bytes() # passed a path to a file containing kwy
|
|
145
|
+
else:
|
|
146
|
+
raise TypeError(f"❌ Key must be either str, P, Path, bytes or None. Recieved: {type(key)}")
|
|
147
|
+
from cryptography.fernet import Fernet
|
|
148
|
+
return Fernet(key=key_resolved).decrypt(token)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from machineconfig.utils.accessories import randstr
|
|
2
|
+
from machineconfig.utils.io import decrypt, encrypt
|
|
2
3
|
|
|
3
4
|
from datetime import datetime
|
|
4
5
|
import time
|
|
@@ -10,6 +11,7 @@ from platform import system
|
|
|
10
11
|
from typing import Any, Optional, Union, Callable, TypeAlias, Literal
|
|
11
12
|
|
|
12
13
|
|
|
14
|
+
|
|
13
15
|
OPLike: TypeAlias = Union[str, "PathExtended", Path, None]
|
|
14
16
|
PLike: TypeAlias = Union[str, "PathExtended", Path]
|
|
15
17
|
FILE_MODE: TypeAlias = Literal["r", "w", "x", "a"]
|
|
@@ -54,81 +56,6 @@ def _run_shell_command(
|
|
|
54
56
|
)
|
|
55
57
|
|
|
56
58
|
|
|
57
|
-
def pwd2key(password: str, salt: Optional[bytes] = None, iterations: int = 10) -> bytes: # Derive a secret key from a given password and salt"""
|
|
58
|
-
import base64
|
|
59
|
-
|
|
60
|
-
if salt is None:
|
|
61
|
-
import hashlib
|
|
62
|
-
|
|
63
|
-
m = hashlib.sha256()
|
|
64
|
-
m.update(password.encode(encoding="utf-8"))
|
|
65
|
-
return base64.urlsafe_b64encode(s=m.digest()) # make url-safe bytes required by Ferent.
|
|
66
|
-
from cryptography.hazmat.primitives import hashes
|
|
67
|
-
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
|
|
68
|
-
|
|
69
|
-
return base64.urlsafe_b64encode(PBKDF2HMAC(algorithm=hashes.SHA256(), length=32, salt=salt, iterations=iterations, backend=None).derive(password.encode()))
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
def encrypt(msg: bytes, key: Optional[bytes] = None, pwd: Optional[str] = None, salted: bool = True, iteration: Optional[int] = None, gen_key: bool = False) -> bytes:
|
|
73
|
-
import base64
|
|
74
|
-
from cryptography.fernet import Fernet
|
|
75
|
-
|
|
76
|
-
salt, iteration = None, None
|
|
77
|
-
if pwd is not None: # generate it from password
|
|
78
|
-
assert (key is None) and (type(pwd) is str), "❌ You can either pass key or pwd, or none of them, but not both."
|
|
79
|
-
import secrets
|
|
80
|
-
|
|
81
|
-
iteration = iteration or secrets.randbelow(exclusive_upper_bound=1_000_000)
|
|
82
|
-
salt = secrets.token_bytes(nbytes=16) if salted else None
|
|
83
|
-
key_resolved = pwd2key(password=pwd, salt=salt, iterations=iteration)
|
|
84
|
-
elif key is None:
|
|
85
|
-
if gen_key:
|
|
86
|
-
key_resolved = Fernet.generate_key()
|
|
87
|
-
Path.home().joinpath("dotfiles/creds/data/encrypted_files_key.bytes").write_bytes(key_resolved)
|
|
88
|
-
else:
|
|
89
|
-
try:
|
|
90
|
-
key_resolved = Path.home().joinpath("dotfiles/creds/data/encrypted_files_key.bytes").read_bytes()
|
|
91
|
-
print(f"⚠️ Using key from: {Path.home().joinpath('dotfiles/creds/data/encrypted_files_key.bytes')}")
|
|
92
|
-
except FileNotFoundError as err:
|
|
93
|
-
print("\n" * 3, "~" * 50, """Consider Loading up your dotfiles or pass `gen_key=True` to make and save one.""", "~" * 50, "\n" * 3)
|
|
94
|
-
raise FileNotFoundError(err) from err
|
|
95
|
-
elif isinstance(key, (str, PathExtended, Path)):
|
|
96
|
-
key_resolved = Path(key).read_bytes() # a path to a key file was passed, read it:
|
|
97
|
-
elif type(key) is bytes:
|
|
98
|
-
key_resolved = key # key passed explicitly
|
|
99
|
-
else:
|
|
100
|
-
raise TypeError("❌ Key must be either a path, bytes object or None.")
|
|
101
|
-
code = Fernet(key=key_resolved).encrypt(msg)
|
|
102
|
-
if pwd is not None and salt is not None and iteration is not None:
|
|
103
|
-
return base64.urlsafe_b64encode(b"%b%b%b" % (salt, iteration.to_bytes(4, "big"), base64.urlsafe_b64decode(code)))
|
|
104
|
-
return code
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
def decrypt(token: bytes, key: Optional[bytes] = None, pwd: Optional[str] = None, salted: bool = True) -> bytes:
|
|
108
|
-
import base64
|
|
109
|
-
|
|
110
|
-
if pwd is not None:
|
|
111
|
-
assert key is None, "❌ You can either pass key or pwd, or none of them, but not both."
|
|
112
|
-
if salted:
|
|
113
|
-
decoded = base64.urlsafe_b64decode(token)
|
|
114
|
-
salt, iterations, token = decoded[:16], decoded[16:20], base64.urlsafe_b64encode(decoded[20:])
|
|
115
|
-
key_resolved = pwd2key(password=pwd, salt=salt, iterations=int.from_bytes(bytes=iterations, byteorder="big"))
|
|
116
|
-
else:
|
|
117
|
-
key_resolved = pwd2key(password=pwd) # trailing `;` prevents IPython from caching the result.
|
|
118
|
-
elif type(key) is bytes:
|
|
119
|
-
assert pwd is None, "❌ You can either pass key or pwd, or none of them, but not both."
|
|
120
|
-
key_resolved = key # passsed explicitly
|
|
121
|
-
elif key is None:
|
|
122
|
-
key_resolved = Path.home().joinpath("dotfiles/creds/data/encrypted_files_key.bytes").read_bytes() # read from file
|
|
123
|
-
elif isinstance(key, (str, Path)):
|
|
124
|
-
key_resolved = Path(key).read_bytes() # passed a path to a file containing kwy
|
|
125
|
-
else:
|
|
126
|
-
raise TypeError(f"❌ Key must be either str, P, Path, bytes or None. Recieved: {type(key)}")
|
|
127
|
-
from cryptography.fernet import Fernet
|
|
128
|
-
|
|
129
|
-
return Fernet(key=key_resolved).decrypt(token)
|
|
130
|
-
|
|
131
|
-
|
|
132
59
|
def validate_name(astring: str, replace: str = "_") -> str:
|
|
133
60
|
import re
|
|
134
61
|
|
machineconfig/utils/ssh.py
CHANGED
|
@@ -8,7 +8,7 @@ from machineconfig.utils.terminal import Response
|
|
|
8
8
|
from machineconfig.utils.accessories import pprint, randstr
|
|
9
9
|
from machineconfig.utils.meta import lambda_to_python_script
|
|
10
10
|
UV_RUN_CMD = "$HOME/.local/bin/uv run" if platform.system() != "Windows" else """& "$env:USERPROFILE/.local/bin/uv" run"""
|
|
11
|
-
MACHINECONFIG_VERSION = "machineconfig>=7.
|
|
11
|
+
MACHINECONFIG_VERSION = "machineconfig>=7.33"
|
|
12
12
|
DEFAULT_PICKLE_SUBDIR = "tmp_results/tmp_scripts/ssh"
|
|
13
13
|
|
|
14
14
|
class SSH:
|
|
@@ -110,8 +110,8 @@ machineconfig/scripts/linux/fzfag,sha256=x0rX7vM_YjKLZ822D2Xh0HdaTj5kR_gG3g_5_w6
|
|
|
110
110
|
machineconfig/scripts/linux/fzffg,sha256=jjeeyFkWmBbwH2taRqC3EOzZep2KR-ZYoI4UI-5kHqg,1090
|
|
111
111
|
machineconfig/scripts/linux/fzfg,sha256=ClGnJZUsIk4y0qs3W5iXGo-nd0FaqAHMsnh8uoXQFy8,1190
|
|
112
112
|
machineconfig/scripts/linux/fzfrga,sha256=xSdws6ae28ZXkkqz_uupZ0MYw_vxE2qpLT2DLS3WITM,460
|
|
113
|
-
machineconfig/scripts/linux/mcfgs,sha256=R2WmmIVOL9nVtyZdvU02664GD7lYrmQUW4Y8b-wjLM8,1387
|
|
114
113
|
machineconfig/scripts/linux/skrg,sha256=JgQJGwxaChr148bDnpTB0rrqZMe2o2zGSDA9x_oUhWM,133
|
|
114
|
+
machineconfig/scripts/linux/wrap_mcfg,sha256=R2WmmIVOL9nVtyZdvU02664GD7lYrmQUW4Y8b-wjLM8,1387
|
|
115
115
|
machineconfig/scripts/linux/other/share_cloud.sh,sha256=lIZrXiaOT11kzu4NFNTXvANhc2bMdSPDYD1-7XUO_C0,2027
|
|
116
116
|
machineconfig/scripts/linux/other/share_nfs,sha256=LDQZQ9TV7z2y7RtNHiO4Wb513MztyGjaAV-GzTGwUdc,1374
|
|
117
117
|
machineconfig/scripts/linux/other/start_docker,sha256=_yDN_PPqgzSUnPT7dmniMTpL4IfeeaGy1a2OL3IJlDU,525
|
|
@@ -120,13 +120,13 @@ machineconfig/scripts/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
|
120
120
|
machineconfig/scripts/python/agents.py,sha256=aVbLQDgpngXZm4taHcED4sAxyHvV2_Dz5VW3apPcQcY,10651
|
|
121
121
|
machineconfig/scripts/python/cloud.py,sha256=yAD6ciKiEtv2CH3g2NScDK5cpCZQi7Vu8yyeehw_cU8,1263
|
|
122
122
|
machineconfig/scripts/python/croshell.py,sha256=QyQbVboNqDQHJkUeSsJvdT212t4TW46yat3GBzneqsQ,8649
|
|
123
|
-
machineconfig/scripts/python/define.py,sha256=
|
|
123
|
+
machineconfig/scripts/python/define.py,sha256=cT1N-QpnRvUTosYEsEtds-8rik90pbMNS4iliqb5sqM,653
|
|
124
124
|
machineconfig/scripts/python/devops.py,sha256=Lv4d-UlyOREj4VTcu_pxswYo54Mawe3XGeKjreGQDYg,2222
|
|
125
125
|
machineconfig/scripts/python/devops_navigator.py,sha256=5Cm384D4S8_GsvMzTwr0C16D0ktf8_5Mk5bEJncwDO8,237
|
|
126
126
|
machineconfig/scripts/python/fire_jobs.py,sha256=-xrUlBQ90asQkXuWESiDsD6D05Xuw0-NMmfwBerwSjg,13874
|
|
127
127
|
machineconfig/scripts/python/ftpx.py,sha256=A13hL_tDYfcsaK9PkshK-0lrUS6KPhPCtwqWtLSo6IM,9764
|
|
128
128
|
machineconfig/scripts/python/interactive.py,sha256=jFHpiQq_lisa51BS4-qUlWPJ1-pmHmPAfA6dixdsOzY,11745
|
|
129
|
-
machineconfig/scripts/python/
|
|
129
|
+
machineconfig/scripts/python/machineconfig.py,sha256=NvyNC0O3Yxf0vwTy_wl-vS_W6kEG6cLUSpj7yxLONL4,2747
|
|
130
130
|
machineconfig/scripts/python/sessions.py,sha256=Q_fbprawvW1x_E6jKQ-Z2Z5MRurRaepKUvi5z1G4CUw,9531
|
|
131
131
|
machineconfig/scripts/python/terminal.py,sha256=RY7hJ0JIefJeGe_sp7ZiZpOG_vhXLmEAFRq-Fon-VEY,5191
|
|
132
132
|
machineconfig/scripts/python/utils.py,sha256=9vwF5QRbHphNF154UYg6Ld3W0b3N9uEkfMEeR-nP_sg,2802
|
|
@@ -162,7 +162,7 @@ machineconfig/scripts/python/ai/solutions/opencode/opencode.json,sha256=nahHKRw1
|
|
|
162
162
|
machineconfig/scripts/python/ai/solutions/opencode/opencode.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
163
163
|
machineconfig/scripts/python/env_manager/__init__.py,sha256=E4LAHbU1wo2dLjE36ntv8U7QNTe8TasujUAYK9SLvWk,6
|
|
164
164
|
machineconfig/scripts/python/env_manager/path_manager_backend.py,sha256=ZVGlGJALhg7zNABDdwXxL7MFbL2BXPebObipXSLGbic,1552
|
|
165
|
-
machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=
|
|
165
|
+
machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=kuCv04XggHyAarWlzF8ryMaQoS0aRki0J9OFtsDtGtQ,6932
|
|
166
166
|
machineconfig/scripts/python/helpers_agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
167
167
|
machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py,sha256=YD6-rtudHNip8tx85amSmOZZIHBP9khq4az3dF41j6U,5934
|
|
168
168
|
machineconfig/scripts/python/helpers_agents/fire_agents_help_search.py,sha256=qIfSS_su2YJ1Gb0_lu4cbjlJlYMBw0v52NTGiSrGjk8,2991
|
|
@@ -192,12 +192,12 @@ machineconfig/scripts/python/helpers_croshell/start_slidev.py,sha256=HfJReOusTPh
|
|
|
192
192
|
machineconfig/scripts/python/helpers_croshell/viewer.py,sha256=heQNjB9fwn3xxbPgMofhv1Lp6Vtkl76YjjexWWBM0pM,2041
|
|
193
193
|
machineconfig/scripts/python/helpers_croshell/viewer_template.py,sha256=ve3Q1-iKhCLc0VJijKvAeOYp2xaFOeIOC_XW956GWCc,3944
|
|
194
194
|
machineconfig/scripts/python/helpers_devops/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
195
|
-
machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=
|
|
195
|
+
machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=n7940-XlvIoJZNW_Juil3B5bueeu17dHqiI_ZNMmKH8,6891
|
|
196
196
|
machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py,sha256=pVUFE1SUtyTiulLzUssf8FrtU190EIV-l9rpwucsBa0,3427
|
|
197
197
|
machineconfig/scripts/python/helpers_devops/cli_data.py,sha256=79Xvx7YnbueruEnl69hrDg2AhVxf_zCUdlVcKfeMGyQ,1774
|
|
198
198
|
machineconfig/scripts/python/helpers_devops/cli_nw.py,sha256=9NcVJvPYaUDtmI_DSKthZxR4emMBeNWVM_M5f0YR8EQ,7302
|
|
199
199
|
machineconfig/scripts/python/helpers_devops/cli_repos.py,sha256=Xwkv1adqHZvTfRSPWiqSK3PZ1XADyx3llw_YkbxaKyE,12505
|
|
200
|
-
machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=
|
|
200
|
+
machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=k5m7v3Sr7e291RxIISWPGiQ1vxT4_48AnCUbxPW2FVM,6621
|
|
201
201
|
machineconfig/scripts/python/helpers_devops/cli_share_server.py,sha256=BJnm9mEI0PGA2xK_ciNX1docIiRQ_fNhygGrDCcTekw,11076
|
|
202
202
|
machineconfig/scripts/python/helpers_devops/cli_terminal.py,sha256=k_PzXaiGyE0vXr0Ii1XcJz2A7UvyPJrR31TRWt4RKRI,6019
|
|
203
203
|
machineconfig/scripts/python/helpers_devops/cli_utils.py,sha256=B9pnosujOxZLpwzJO4YAqeO-2rvvOFIZgrUwGREZXfM,11118
|
|
@@ -225,7 +225,7 @@ machineconfig/scripts/python/helpers_navigator/search_bar.py,sha256=kDi8Jhxap8wd
|
|
|
225
225
|
machineconfig/scripts/python/helpers_repos/action.py,sha256=8je051kpGZ7A_GRsQyWKhPZ8xVW7tSm4bnPu6VjxaXk,9755
|
|
226
226
|
machineconfig/scripts/python/helpers_repos/action_helper.py,sha256=XRCtkGkNrxauqUd9qkxtfJt02Mx2gejSYDLL0jyWn24,6176
|
|
227
227
|
machineconfig/scripts/python/helpers_repos/clone.py,sha256=UULEG5xJuXlPGU0nqXH6U45jA9DOFqLw8B4iPytCwOQ,5471
|
|
228
|
-
machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=
|
|
228
|
+
machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=Bj1IGFaawc79RMyCgZO5GMLyg6G_jz9wWpYt0aC2C0g,10450
|
|
229
229
|
machineconfig/scripts/python/helpers_repos/count_lines.py,sha256=Q5c7b-DxvTlQmljoic7niTuiAVyFlwYvkVQ7uRJHiTo,16009
|
|
230
230
|
machineconfig/scripts/python/helpers_repos/count_lines_frontend.py,sha256=vSDtrF4829jziwp6WZmGt9G8MJ9jY4hfXqtf0vhkYSE,607
|
|
231
231
|
machineconfig/scripts/python/helpers_repos/entrypoint.py,sha256=WYEFGUJp9HWImlFjbs_hiFZrUqM_KEYm5VvSUjWd04I,2810
|
|
@@ -255,11 +255,11 @@ machineconfig/scripts/python/nw/wsl_windows_transfer.py,sha256=jHJyFTuks_Kw4cgE8
|
|
|
255
255
|
machineconfig/scripts/windows/fzfb.ps1,sha256=Bmngm2aY8hnPa3iKAOK6EPDYdKzGLUc81wYOnJhNoqg,149
|
|
256
256
|
machineconfig/scripts/windows/fzfg.ps1,sha256=CHJbMrMuZePd4dxwIwz3g4XWAEmWmckuX-Nrx2xgRkg,27
|
|
257
257
|
machineconfig/scripts/windows/fzfrga.bat,sha256=rU_KBMO6ii2EZ0akMnmDk9vpuhKSUZqkV0o8a8ywXcM,488
|
|
258
|
-
machineconfig/scripts/windows/
|
|
258
|
+
machineconfig/scripts/windows/wrap_mcfg.ps1,sha256=1mLCFDPBG-1uNVaZe3fIAgvS_uo3u55TQaysG6Wj9Sw,1868
|
|
259
259
|
machineconfig/scripts/windows/mounts/mount_nfs.ps1,sha256=XrAdzpxE6a4OccSmWJ7YWHJTnsZK8uXnFE5j9GOPA20,2026
|
|
260
260
|
machineconfig/scripts/windows/mounts/mount_nw.ps1,sha256=puxcfZc3ZCJerm8pj8OZGVoTYkhzp-h7oV-MrksSqIE,454
|
|
261
261
|
machineconfig/scripts/windows/mounts/mount_smb.ps1,sha256=PzYWpIO9BpwXjdWlUQL9pnMRnOGNSkxfh4bHukJFme8,69
|
|
262
|
-
machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=
|
|
262
|
+
machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=r5YtEVr0E7PoZE73lLAtkLnn61rsuAg4sM_asfcXms4,322
|
|
263
263
|
machineconfig/scripts/windows/mounts/share_cloud.cmd,sha256=exD7JCdxw2LqVjw2MKCYHbVZlEqmelXtwnATng-dhJ4,1028
|
|
264
264
|
machineconfig/scripts/windows/mounts/share_smb.ps1,sha256=U7x8ULYSjbgzTtiHNSKQuTaZ_apilDvkGV5Xm5hXk5M,384
|
|
265
265
|
machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1,sha256=Wv-SLscdckV-1mG3p82VXKPY9zW3hgkRmcLUXIZ1daE,253
|
|
@@ -331,7 +331,7 @@ machineconfig/settings/rofi/config.rasi,sha256=nDX5B8wdXQYF1fwiOTBRJUI4l_gQbYaLa
|
|
|
331
331
|
machineconfig/settings/rofi/config_default.rasi,sha256=rTfKnC-bZuWX1l-lWQACCUOE1ShhkfykAxtXX9PlQHE,4694
|
|
332
332
|
machineconfig/settings/shells/alacritty/alacritty.toml,sha256=EbL-2Y4QunW1pvRWB2yuLCw8MMPONheJr5LFoWRieUQ,871
|
|
333
333
|
machineconfig/settings/shells/alacritty/alacritty.yml,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
334
|
-
machineconfig/settings/shells/bash/init.sh,sha256=
|
|
334
|
+
machineconfig/settings/shells/bash/init.sh,sha256=2l-KKTSL-xLXpEvgVcxDa9iKZ0cxZCQh_GcVYj8rbR0,2935
|
|
335
335
|
machineconfig/settings/shells/hyper/.hyper.js,sha256=h-HqeYlvPvPD4Ee7828Cxo87uVkzbMGJFqXTZIWoegw,8884
|
|
336
336
|
machineconfig/settings/shells/ipy/profiles/default/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
337
337
|
machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -339,7 +339,7 @@ machineconfig/settings/shells/ipy/profiles/default/startup/playext.py,sha256=OJ3
|
|
|
339
339
|
machineconfig/settings/shells/kitty/kitty.conf,sha256=lDdx-dUX3jbKGb3BkS2f2TOpmgGiS-CI-_-lFvhD5A4,52870
|
|
340
340
|
machineconfig/settings/shells/nushell/config.nu,sha256=xtko80MPteDXuOJmwJHNFhXmfHT6fIBfmTgsF29GiEc,748
|
|
341
341
|
machineconfig/settings/shells/nushell/env.nu,sha256=4VmaXb-qP6qnMD5TPzkXMLFNlB5QC4l9HEzCvXZE2GQ,315
|
|
342
|
-
machineconfig/settings/shells/pwsh/init.ps1,sha256=
|
|
342
|
+
machineconfig/settings/shells/pwsh/init.ps1,sha256=doyiOqdLUHLoBtEbm6NNvges-hBcE4dD43jpXDZZVfE,2811
|
|
343
343
|
machineconfig/settings/shells/pwsh/profile.ps1,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
344
344
|
machineconfig/settings/shells/starship/starship.toml,sha256=d5lWKC0AnTcriRAZV1opEZy76QknSpKFgJ3jyW9_vZ0,1305
|
|
345
345
|
machineconfig/settings/shells/vtm/settings.xml,sha256=5TNXd-i0eUGo2w3tuhY9aOkwoJdqih8_HO_U6uL2Dts,18262
|
|
@@ -377,7 +377,7 @@ machineconfig/setup_linux/others/cli_installation.sh,sha256=gVvszYZJgKPRJx2SEaE3
|
|
|
377
377
|
machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh,sha256=F5dbg0n9RHsKGPn8fIdZMn3p0RrHEkb8rWBGsdVGbus,1207
|
|
378
378
|
machineconfig/setup_linux/ssh/openssh_all.sh,sha256=3dg6HEUFbHQOzLfSAtzK_D_GB8rGCCp_aBnxNdnidVc,824
|
|
379
379
|
machineconfig/setup_linux/ssh/openssh_wsl.sh,sha256=1eeRGrloVB34K5z8yWVUMG5b9pV-WBfHgV9jqXiYgCQ,1398
|
|
380
|
-
machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=
|
|
380
|
+
machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=qiRBA3ys4qc51tO_m-10GUs-kqi_rEzPLi6vE8sNUak,1453
|
|
381
381
|
machineconfig/setup_mac/__init__.py,sha256=Q1waupi5vCBroLqc8Rtnw69_7jLnm2Cs7_zH_GSZgMs,616
|
|
382
382
|
machineconfig/setup_mac/apps.sh,sha256=R0N6fBwLCzwy4qAormyMerXXXrHazibSkY6NrNOpTQU,2772
|
|
383
383
|
machineconfig/setup_mac/apps_gui.sh,sha256=3alvddg918oMlJB2aUWJWpGGoaq5atlxcaOwhnyXlRI,9517
|
|
@@ -392,25 +392,25 @@ machineconfig/setup_windows/others/power_options.ps1,sha256=c7Hn94jBD5GWF29CxMhm
|
|
|
392
392
|
machineconfig/setup_windows/ssh/add-sshkey.ps1,sha256=qfPdqCpd9KP3VhH4ifsUm1Xvec7c0QVl4Wt8JIAm9HQ,1653
|
|
393
393
|
machineconfig/setup_windows/ssh/add_identity.ps1,sha256=b8ZXpmNUSw3IMYvqSY7ClpdWPG39FS7MefoWnRhWN2U,506
|
|
394
394
|
machineconfig/setup_windows/ssh/openssh-server.ps1,sha256=OMlYQdvuJQNxF5EILLPizB6BZAT3jAmDsv1WcVVxpFQ,2529
|
|
395
|
-
machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=
|
|
395
|
+
machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=5Ja7_7iwadyNcMKhMSSo3_MEZMl3F_Xuo2S4eom1kF8,1755
|
|
396
396
|
machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
397
397
|
machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
|
|
398
398
|
machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
399
399
|
machineconfig/utils/accessories.py,sha256=Rs8R0GUb2Ub6YimkgXHnI02CShS5BKlrZdCigVxfPlk,4339
|
|
400
400
|
machineconfig/utils/code.py,sha256=fVeQnhZE8-aoPBsrgjNcBTcv3NuyBSSQv9P8jyC8W_M,6635
|
|
401
401
|
machineconfig/utils/installer.py,sha256=1ScBaTe_pRsfTYht9-LXmirgnNizNy8u1GgetUfEDO4,10351
|
|
402
|
-
machineconfig/utils/io.py,sha256=
|
|
402
|
+
machineconfig/utils/io.py,sha256=3Z2dLf12sCXe2y2_2p2ypfIH5OCwqvKqcYjcHMgCZt0,6491
|
|
403
403
|
machineconfig/utils/links.py,sha256=mA98WNkX5iK4c6f8Ht3HKv7sB6VjIwqukTxXY23PVjk,25143
|
|
404
404
|
machineconfig/utils/meta.py,sha256=4ocYH3Zi6bVN6FVgXoGIfoasV6oxi67I9rQ8hvyYinc,9892
|
|
405
405
|
machineconfig/utils/notifications.py,sha256=tuXIudcip0tEioG-bm8BbLr3FMDve4f6BktlznBhKxM,9013
|
|
406
406
|
machineconfig/utils/options.py,sha256=VWYx3EKJxIp-CJ8gDGYdjclKSc1tMUhyrC8v3seeneo,7447
|
|
407
|
-
machineconfig/utils/path_extended.py,sha256=
|
|
407
|
+
machineconfig/utils/path_extended.py,sha256=F9xjmuJ4JMqI6Ap2Hypvfz81BlBe-VsN0CfBaHWGEnQ,49293
|
|
408
408
|
machineconfig/utils/path_helper.py,sha256=Yxj8qlf-g_254-dfvRx5rlisM2WA0P-BhZBEbmReeys,8095
|
|
409
409
|
machineconfig/utils/procs.py,sha256=YPA_vEYQGwPd_o_Lc6nOTBo5BrB1tSs8PJ42XiGpenM,10957
|
|
410
410
|
machineconfig/utils/scheduler.py,sha256=fguwvINyaupOxdU5Uadyxalh_jXTXDzt0ioEgjEOKcM,14705
|
|
411
411
|
machineconfig/utils/scheduling.py,sha256=vcJgajeJPSWkJNlarYJSmLvasdOuCtBM4druOAB1Nwc,11089
|
|
412
412
|
machineconfig/utils/source_of_truth.py,sha256=ZAnCRltiM07ig--P6g9_6nEAvNFC4X4ERFTVcvpIYsE,764
|
|
413
|
-
machineconfig/utils/ssh.py,sha256=
|
|
413
|
+
machineconfig/utils/ssh.py,sha256=Tt4IS2dK7toQpuOrYN97H46YfDoz-_opCC0vdQyIjyw,39008
|
|
414
414
|
machineconfig/utils/terminal.py,sha256=VDgsjTjBmMGgZN0YIc0pJ8YksLDrBtiXON1EThy7_is,4264
|
|
415
415
|
machineconfig/utils/tst.py,sha256=6u1GI49NdcpxH2BYGAusNfY5q9G_ytCGVzFM5b6HYpM,674
|
|
416
416
|
machineconfig/utils/upgrade_packages.py,sha256=75kabcI-chMiaBnafJ_hdhDUz_GyH7AsDt7rW3hyu9M,5851
|
|
@@ -439,8 +439,8 @@ machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoS
|
|
|
439
439
|
machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
|
|
440
440
|
machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
|
|
441
441
|
machineconfig/utils/ssh_utils/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
442
|
-
machineconfig-7.
|
|
443
|
-
machineconfig-7.
|
|
444
|
-
machineconfig-7.
|
|
445
|
-
machineconfig-7.
|
|
446
|
-
machineconfig-7.
|
|
442
|
+
machineconfig-7.33.dist-info/METADATA,sha256=jIsXECnBbSryO78-tfoeKhByuuFypTknuXi-eHNXb3Q,3396
|
|
443
|
+
machineconfig-7.33.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
444
|
+
machineconfig-7.33.dist-info/entry_points.txt,sha256=T5NQvd_TI1WrquhIeQU3TbtMauWDXz3hCB1a_3K3KLY,642
|
|
445
|
+
machineconfig-7.33.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
|
|
446
|
+
machineconfig-7.33.dist-info/RECORD,,
|
|
@@ -6,8 +6,8 @@ define = machineconfig.scripts.python.define:main
|
|
|
6
6
|
devops = machineconfig.scripts.python.devops:main
|
|
7
7
|
fire = machineconfig.scripts.python.fire_jobs:main
|
|
8
8
|
ftpx = machineconfig.scripts.python.ftpx:main
|
|
9
|
-
machineconfig = machineconfig.scripts.python.
|
|
10
|
-
mcfg = machineconfig.scripts.python.
|
|
9
|
+
machineconfig = machineconfig.scripts.python.machineconfig:main
|
|
10
|
+
mcfg = machineconfig.scripts.python.machineconfig:main
|
|
11
11
|
sessions = machineconfig.scripts.python.sessions:main
|
|
12
12
|
terminal = machineconfig.scripts.python.terminal:main
|
|
13
13
|
utils = machineconfig.scripts.python.utils:main
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|