You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PurpleDome/tools/shipit.py

82 lines
2.5 KiB
Python

#!/usr/bin/env python3
# A python tool to compress the relevant project files.
import glob
import zipfile
import os
filename = "shipit.zip"
globs = ["TODO.md",
".gitignore",
"*.py",
"CONTRIBUTING.txt",
"*.yaml",
"Makefile",
"*.sh",
"README.md",
"requirements.txt",
"tox.ini",
"app/*.py",
"tools/*.py",
"tests/*.py",
"systems/Vagrantfile",
"systems/*/*.sh",
"systems/*/*.bat",
"systems/azure_attacker"
"doc/source",
"doc/source/conf.py",
"doc/source/asciinema/*",
"doc/source/index.rst",
"doc/Makefile",
"doc/purpledome.pdf",
"doc/documentation.zip",
"doc/source/*/*.rst",
"doc/source/_static/*.png",
"doc/source/_templates/*",
"tests/data/*.yaml",
"plugins/base/*.py",
"plugins/default/*/**/*.py",
"plugins/default/*/**/*.txt",
"plugins/default/*/**/*.md",
"plugins/default/*/**/*.exe",
"plugins/default/*/**/*.ps1",
"plugins/default/*/**/*.yaml",
"plugins/default/*/**/*.dll",
"plugins/default/*/**/*.dll_*",
"plugins/default/*/**/*.reg",
"plugins/avast_internal_plugins/*/**/*.py",
"plugins/avast_internal_plugins/*/**/*.bat",
"plugins/avast_internal_plugins/*/**/*.ps1",
"plugins/avast_internal_plugins/*/**/*.txt",
"plugins/avast_internal_plugins/*/**/*.md",
"plugins/avast_internal_plugins/*/**/*.yaml",
"plugins/avast_internal_plugins/*/**/*.exe",
"plugins/avast_internal_plugins/*/**/*.com",
"plugins/avast_internal_plugins/*/**/*.dll",
"plugins/avast_internal_plugins/*/**/*.dll_*",
"plugins/avast_internal_plugins/*/**/*.reg",
"plugins/avast_internal_plugins/*/**/idpx",
"plugins/avast_internal_plugins/*/**/hosts",
"plugins/README.md",
"pylint.rc",
"shipit_log.txt",
"all_caldera_attacks_unique.txt",
"caldera_subset.txt",
"templates/*.rst",
"tools/human_readable_documentation/source/conf.py",
"tools/human_readable_documentation/Makefile",
]
try:
os.remove(filename)
except FileNotFoundError:
pass
with zipfile.ZipFile(filename, "w") as zfh:
for gs in globs:
for g in glob.iglob(gs, recursive=True):
print(g)
zfh.write(g)