diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d9cd602 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.venv +index +index.html +**/.idea +**/*.tgz +**/*.tar.gz diff --git a/index.py b/generate_index.py similarity index 70% rename from index.py rename to generate_index.py index b92d33a..c461e91 100644 --- a/index.py +++ b/generate_index.py @@ -20,17 +20,24 @@ 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"}) 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')) @@ -71,9 +78,18 @@ def generateHeader(soup,strBucket,strPrefix): tagHeader.append(tagH) return tagHeader -strBucket = '' -strPrefix = '' -strIndexFile = 'index.html' -strTemplate = 'index_template.html' +if __name__ == '__main__': + 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() -recPopulateIndexFiles(strBucket,strPrefix,strTemplate) + strBucket = args.bucket + strPrefix = args.prefix + strIndexFile = args.indexFile + strTemplate = args.template + recPopulateIndexFiles(strBucket,strPrefix,strTemplate) diff --git a/index_template.html b/index_template.html index def856f..82eeec0 100644 --- a/index_template.html +++ b/index_template.html @@ -1,6 +1,7 @@ + MapLarge.Server Support Binaries @@ -28,54 +29,19 @@ - - - + \ No newline at end of file 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