From ec2d80509a74afc4355a8c863ff758ab254591ee Mon Sep 17 00:00:00 2001 From: David Days Date: Fri, 27 Dec 2024 10:59:07 -0500 Subject: [PATCH 1/4] Modify setup for easier reuse --- .gitignore | 4 ++++ index.py => generate_index.py | 16 ++++++++-------- index_template.html | 3 ++- requirements.txt | 2 ++ 4 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 .gitignore rename index.py => generate_index.py (88%) create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b640798 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.venv +index +index.html +**/.idea \ No newline at end of file diff --git a/index.py b/generate_index.py similarity index 88% rename from index.py rename to generate_index.py index b92d33a..53de223 100644 --- a/index.py +++ b/generate_index.py @@ -20,12 +20,12 @@ def uploadIndexFile(strBucket,strPrefix,strIndexFile): s3 = boto3.resource('s3') bucket = s3.Bucket(strBucket) bucket.upload_file(strIndexFile, strPrefix + strIndexFile, - ExtraArgs={'ACL': 'public-read', 'ContentType': 'text/html'}) + ExtraArgs={'ContentType': 'text/html'}) def generateIndexFile(strBucket,strPrefix,strIndexFile,vecFiles,vecFolders,strTemplate): with open(strTemplate) as inf: txt = inf.read() - soup = bs4.BeautifulSoup(txt) + soup = bs4.BeautifulSoup(txt, "html.parser") tagKeysList = soup.find("ul", {"id": "listkeys"}) @@ -71,9 +71,9 @@ def generateHeader(soup,strBucket,strPrefix): tagHeader.append(tagH) return tagHeader -strBucket = '' -strPrefix = '' -strIndexFile = 'index.html' -strTemplate = 'index_template.html' - -recPopulateIndexFiles(strBucket,strPrefix,strTemplate) +if __name__ == '__main__': + strBucket = 'maplarge-binaries' + strPrefix = '' + strIndexFile = 'index.html' + strTemplate = 'index_template.html' + recPopulateIndexFiles(strBucket,strPrefix,strTemplate) diff --git a/index_template.html b/index_template.html index def856f..da38472 100644 --- a/index_template.html +++ b/index_template.html @@ -1,6 +1,7 @@ + MapLarge.Server Support Binaries @@ -33,7 +34,7 @@ diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..1f3dd93 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +boto3 +bs4 \ No newline at end of file From f8e70b4adeadd006fa4056010d2b9a3c319512f5 Mon Sep 17 00:00:00 2001 From: David Days Date: Fri, 3 Jan 2025 16:11:04 -0500 Subject: [PATCH 2/4] Create parent links back to root directory --- generate_index.py | 7 +++++++ index_template.html | 41 +++-------------------------------------- 2 files changed, 10 insertions(+), 38 deletions(-) diff --git a/generate_index.py b/generate_index.py index 53de223..3671172 100644 --- a/generate_index.py +++ b/generate_index.py @@ -31,6 +31,13 @@ def generateIndexFile(strBucket,strPrefix,strIndexFile,vecFiles,vecFolders,strTe tagKeysList.append(generateHeader(soup, strBucket, strPrefix)) + if (strPrefix.count('/') > 0): + strAncestors = strPrefix.split('/')[:-2] + if len(strAncestors) > 0: + tagKeysList.append(generateElement(soup, True, '..', '/' + '/'.join(strAncestors) + '/index.html')) + else: + tagKeysList.append(generateElement(soup, True, '..', '/index.html')) + for strFolder in vecFolders: strFolderLast = strFolder.split('/')[-2] tagKeysList.append(generateElement(soup, True, strFolderLast, '/' + strFolder + 'index.html')) diff --git a/index_template.html b/index_template.html index da38472..82eeec0 100644 --- a/index_template.html +++ b/index_template.html @@ -29,7 +29,7 @@ - - - + \ No newline at end of file From 8d0a34667e50ad306fe568213f562728d0355b2f Mon Sep 17 00:00:00 2001 From: David Days Date: Thu, 9 Jan 2025 15:20:44 -0500 Subject: [PATCH 3/4] Add arguments and parsing to generate_index.py main method --- generate_index.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/generate_index.py b/generate_index.py index 3671172..c461e91 100644 --- a/generate_index.py +++ b/generate_index.py @@ -79,8 +79,17 @@ def generateHeader(soup,strBucket,strPrefix): return tagHeader if __name__ == '__main__': - strBucket = 'maplarge-binaries' - strPrefix = '' - strIndexFile = 'index.html' - strTemplate = 'index_template.html' + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument('-b', '--bucket', type=str, default='my-binaries', required=True) + parser.add_argument('-p', '--prefix', type=str, default='', required=False) + parser.add_argument('-i', '--indexFile', type=str, default='index.html', required=False) + parser.add_argument('-t', '--template', type=str, default='index_template.html', required=False) + args = parser.parse_args() + + strBucket = args.bucket + strPrefix = args.prefix + strIndexFile = args.indexFile + strTemplate = args.template recPopulateIndexFiles(strBucket,strPrefix,strTemplate) From ea73fd71b903a0f8aa5393a04ef20c65d846324c Mon Sep 17 00:00:00 2001 From: David Days Date: Wed, 15 Jan 2025 10:39:17 -0500 Subject: [PATCH 4/4] Update .gitignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index b640798..d9cd602 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ .venv index index.html -**/.idea \ No newline at end of file +**/.idea +**/*.tgz +**/*.tar.gz