NetExec/build_collector.py

95 lines
2.1 KiB
Python
Raw Normal View History

import os
import shutil
import subprocess
import sys
import time
from datetime import datetime
from pathlib import Path
from shiv.bootstrap import Environment
2023-05-02 15:17:59 +00:00
from shiv.builder import create_archive
from shiv.cli import __version__ as VERSION
2023-04-07 17:12:56 +00:00
def build_nxc():
print("Building nxc")
2021-03-08 20:03:04 +00:00
try:
shutil.rmtree("bin")
shutil.rmtree("build")
except FileNotFoundError:
2021-03-08 20:03:04 +00:00
pass
except Exception as e:
print(f"Exception while removing bin & build: {e}")
2021-03-08 20:03:04 +00:00
try:
os.mkdir("build")
2020-09-11 20:56:27 +00:00
os.mkdir("bin")
shutil.copytree("nxc", "build/nxc")
2021-03-08 20:03:04 +00:00
except Exception as e:
print(f"Exception while creating bin and build directories: {e}")
2021-03-08 20:03:04 +00:00
return
2020-09-20 14:51:23 +00:00
subprocess.run(
2023-05-02 15:17:59 +00:00
[
sys.executable,
"-m",
"pip",
"install",
2023-09-03 17:08:36 +00:00
"-e",
".",
2023-05-02 15:17:59 +00:00
"-t",
"build",
],
check=True,
)
[shutil.rmtree(p) for p in Path("build").glob("**/*.dist-info")]
env = Environment(
2023-05-08 18:39:36 +00:00
built_at=datetime.utcfromtimestamp(int(time.time())).strftime("%Y-%m-%d %H:%M:%S"),
entry_point="nxc.netexec:main",
script=None,
compile_pyc=False,
extend_pythonpath=True,
shiv_version=VERSION,
)
create_archive(
[Path("build").absolute()],
Path("bin/nxc"),
"/usr/bin/env -S python -sE",
"_bootstrap:bootstrap",
env,
True,
)
2023-05-02 15:17:59 +00:00
def build_nxcdb():
2023-09-14 21:41:51 +00:00
print("building nxcdb")
env = Environment(
2023-05-08 18:39:36 +00:00
built_at=datetime.utcfromtimestamp(int(time.time())).strftime("%Y-%m-%d %H:%M:%S"),
entry_point="nxc.nxcdb:main",
script=None,
compile_pyc=False,
extend_pythonpath=True,
shiv_version=VERSION,
)
create_archive(
[Path("build").absolute()],
Path("bin/nxcdb"),
"/usr/bin/env -S python -sE",
"_bootstrap:bootstrap",
env,
True,
)
2023-05-02 15:17:59 +00:00
if __name__ == "__main__":
try:
build_nxc()
build_nxcdb()
except FileNotFoundError:
pass
finally:
2020-09-11 20:56:27 +00:00
shutil.rmtree("build")