Skip to content

Commit 5a4755c

Browse files
committed
feat: add ability to specify where to create version archives
1 parent 5cc5a73 commit 5a4755c

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

archive-website.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import argparse
12
import json
23
import multiprocessing
34
import os
@@ -6,26 +7,40 @@
67

78
from modules.versions.versions import create_version_archive
89

9-
ARCHIVE_DIR = "attack-version-archives"
10-
1110

1211
def main():
1312
"""Process previous versions of ATT&CK website."""
13+
parser = argparse.ArgumentParser(
14+
description="Process previous versions of ATT&CK website and create version archives"
15+
)
16+
parser.add_argument(
17+
"--archive-dir",
18+
"-a",
19+
default="attack-version-archives",
20+
help="Directory where version archives will be created (default: attack-version-archives)",
21+
)
22+
23+
args = parser.parse_args()
24+
archive_dir = args.archive_dir
25+
26+
# Create archive directory if it doesn't exist
27+
os.makedirs(archive_dir, exist_ok=True)
28+
1429
with open("data/versions.json", "r") as f:
1530
version_json = json.load(f)
1631

17-
logger.info("Processing previous versions of ATT&CK website")
32+
logger.info(f"Processing previous versions of ATT&CK website to {archive_dir}")
1833

1934
processes = []
2035
for version_data in version_json["previous"]:
21-
archive_path = os.path.join(ARCHIVE_DIR, f"website-{version_data['name']}.tar.gz")
36+
archive_path = os.path.join(archive_dir, f"website-{version_data['name']}.tar.gz")
2237
if os.path.exists(archive_path):
2338
logger.info(f"Archive already exists for {version_data['name']}: {archive_path} -- skipping.")
2439
continue
2540

2641
p = multiprocessing.Process(
2742
target=create_version_archive,
28-
args=(version_data, ARCHIVE_DIR),
43+
args=(version_data, archive_dir),
2944
name=f"Process-{version_data['name']}",
3045
)
3146
processes.append(p)

0 commit comments

Comments
 (0)