addftool 0.2.0__py3-none-any.whl → 0.2.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.
addftool/addf_portal.py CHANGED
@@ -1,5 +1,8 @@
1
1
  import argparse
2
2
  from addftool.process import add_killer_args, killer_main
3
+ from addftool.sync import add_sync_args, sync_main
4
+ from addftool.deploy import add_deploy_args, deploy_main
5
+ from addftool.broadcast_folder import add_broadcast_folder_args, broadcast_folder_main
3
6
 
4
7
 
5
8
  def get_args():
@@ -7,6 +10,9 @@ def get_args():
7
10
 
8
11
  subparsers = parser.add_subparsers(dest='command', help='Sub-command help')
9
12
  add_killer_args(subparsers)
13
+ add_sync_args(subparsers)
14
+ add_deploy_args(subparsers)
15
+ add_broadcast_folder_args(subparsers)
10
16
 
11
17
  return parser.parse_args()
12
18
 
@@ -15,6 +21,12 @@ def main():
15
21
  args = get_args()
16
22
  if args.command == "kill":
17
23
  killer_main(args)
24
+ elif args.command == "sync":
25
+ sync_main(args)
26
+ elif args.command == "deploy":
27
+ deploy_main(args)
28
+ elif args.command == "broadcast-folder":
29
+ broadcast_folder_main(args)
18
30
  else:
19
31
  print("Unknown command: ", args.command)
20
32
 
addftool/util.py CHANGED
@@ -1,12 +1,75 @@
1
+ import os
1
2
  import subprocess
2
3
 
3
4
 
4
- def execute_command(command, to_file=None):
5
+ def execute_command(command, to_file=None, only_stdout=True, hide=False):
5
6
  if to_file is not None:
6
7
  to_file.write(command + "\n")
7
8
  return None
8
9
  else:
9
- print("Execute command: ", command)
10
- result = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE).stdout.read().decode()
11
- print("Result: ", result)
12
- return result
10
+ if not hide:
11
+ print("Execute command: ", command)
12
+ result = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
13
+ result.wait()
14
+ print(f"Return code: {result.returncode}")
15
+ if result.stdout is not None:
16
+ stdout = result.stdout.read().decode()
17
+ print(f"Stdout: {stdout}")
18
+ else:
19
+ stdout = None
20
+ if only_stdout:
21
+ if not hide and stdout is not None:
22
+ print(stdout)
23
+ return stdout
24
+ if result.stderr is not None:
25
+ stderr = result.stderr.read().decode()
26
+ print(f"Stderr: {stderr}")
27
+ else:
28
+ stderr = None
29
+
30
+ return {'stdout': stdout, 'stderr': stderr, 'returncode': result.returncode}
31
+
32
+
33
+ def need_sudo():
34
+ return os.name == 'posix' and os.getuid() != 0
35
+
36
+
37
+ def is_running_in_docker():
38
+ return os.path.exists('/.dockerenv') or \
39
+ any('docker' in line for line in open('/proc/self/cgroup', 'r')) if os.path.exists('/proc/self/cgroup') else False or \
40
+ os.environ.get('container') == 'docker' or \
41
+ os.environ.get('DOCKER') == 'true' or \
42
+ os.environ.get('DOCKER_CONTAINER') == 'yes'
43
+
44
+
45
+ def get_ubuntu_version():
46
+ with open("/etc/os-release") as f:
47
+ for line in f:
48
+ if line.startswith("VERSION_ID="):
49
+ version = line.split("=")[1].strip().strip('"')
50
+ return version
51
+ return "22.04"
52
+
53
+
54
+ def check_package_installed(package):
55
+ command = f"dpkg -l | grep {package}"
56
+ result = execute_command(command)
57
+ if result is not None and package in result:
58
+ return True
59
+ return False
60
+
61
+
62
+ def install_packages(package_list):
63
+ to_install = []
64
+ for package in package_list:
65
+ if check_package_installed(package):
66
+ print(f"{package} is already installed")
67
+ continue
68
+ to_install.append(package)
69
+
70
+ if len(to_install) > 0:
71
+ packages = " ".join(to_install)
72
+ command = f"apt-get install -y {packages}"
73
+ if need_sudo():
74
+ command = "sudo " + command
75
+ execute_command(command)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: addftool
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Requires-Dist: cryptography
5
5
  Requires-Dist: requests
6
6
  Requires-Dist: PyYAML
@@ -1,10 +1,10 @@
1
1
  addftool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- addftool/addf_portal.py,sha256=U52TdNcwWOEvv_C5r-guWYxn3ntzwYI2eBzJIE7IdcY,493
2
+ addftool/addf_portal.py,sha256=pw6ivnwMfmK4WC-1Gs5cMndXKQRbMm6VvDyxXJDNrm4,991
3
3
  addftool/blob.py,sha256=NZOItDyFUIdV1tfhJZJJBEzGy296CE5NCictTzP4OPc,8282
4
4
  addftool/broadcast_folder.py,sha256=bEOr-8Q14DhZFS658hab4U-9HvAW3EGluEriilIdEXQ,11976
5
5
  addftool/sync.py,sha256=ZpYxbM8uiPFrV7ODmOaM7asVPCWaxBixA-arVc-1kfs,14045
6
6
  addftool/tool.py,sha256=EuKQ2t2InN7yB-_oYLcdsA7vRqzRGTunwIxplUSqEG0,2054
7
- addftool/util.py,sha256=Q3A68vJDxgfeNiEFmk54HuMuworVndocXpSbVpvGMfc,362
7
+ addftool/util.py,sha256=zlNLu8Be8cGIpNRqBw8_0q7nFxWlsJ9cToN62ohjdXE,2335
8
8
  addftool/deploy/__init__.py,sha256=UL8b-Idt7lStlMiOm8oTZ65fdzYz99Fgzq2Gaw8WsZc,1544
9
9
  addftool/deploy/azure.py,sha256=_o_9Eh8cVwLDAqvfyRYBtQRHs_Gul-nCs2ZXttwO1bk,1301
10
10
  addftool/deploy/ssh_server.py,sha256=f2T8fgwACVljPfdcimMywUjsFnLCWRde7iWPAILpRz8,5463
@@ -12,8 +12,8 @@ addftool/deploy/vscode_server.py,sha256=9KoWQdK3ESgKtdACEHTng2OuQKlIZjh_R_qJNT-X
12
12
  addftool/process/__init__.py,sha256=Dze8OrcyjQlAbPrjE_h8bMi8W4b3OJyZOjTucPrkJvM,3721
13
13
  addftool/process/utils.py,sha256=JldxnwanLJOgxaPgmCJh7SeBRaaj5rFxWWxh1hpsvbA,2609
14
14
  addftool/ssh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- addftool-0.2.0.dist-info/METADATA,sha256=Ja75t6IT9XdIMjCUsZKLsx-QJJ9Yo2UfYtpVUC1AYPw,170
16
- addftool-0.2.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
17
- addftool-0.2.0.dist-info/entry_points.txt,sha256=9lkmuWMInwUAtev8w8poNkNd7iML9Bjd5CBCFVxg2b8,111
18
- addftool-0.2.0.dist-info/top_level.txt,sha256=jqj56-plrBbyzY0tIxB6wPzjAA8kte4hUlajyyQygN4,9
19
- addftool-0.2.0.dist-info/RECORD,,
15
+ addftool-0.2.2.dist-info/METADATA,sha256=UAlfwCvT_leVPhIku998LlT2f23Gd4ugq9Yh4Dzlt3E,170
16
+ addftool-0.2.2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
17
+ addftool-0.2.2.dist-info/entry_points.txt,sha256=9lkmuWMInwUAtev8w8poNkNd7iML9Bjd5CBCFVxg2b8,111
18
+ addftool-0.2.2.dist-info/top_level.txt,sha256=jqj56-plrBbyzY0tIxB6wPzjAA8kte4hUlajyyQygN4,9
19
+ addftool-0.2.2.dist-info/RECORD,,