cleanup publish script

This commit is contained in:
2022-12-26 10:54:38 -07:00
parent 335ff71584
commit 55706b1b2c

15
pub.py
View File

@@ -9,13 +9,16 @@ from functools import cache
import boto3 import boto3
BUCKET='ski.aarongutierrez.com' BUCKET='ski.aarongutierrez.com'
DISTRIBUTION='ELFNI2LSHJUNK' DISTRIBUTION='ELFNI2LSHJUNK'
session = boto3.Session(profile_name='push') session = boto3.Session(profile_name='push')
s3 = session.client('s3') s3 = session.client('s3')
cloudfront = session.client('cloudfront') cloudfront = session.client('cloudfront')
TYPE_MAP = { TYPE_MAP = {
'css': 'text/css', 'css': 'text/css',
'gif': 'image/gif', 'gif': 'image/gif',
@@ -27,9 +30,11 @@ TYPE_MAP = {
'webp': 'image/webp', 'webp': 'image/webp',
} }
CSS_FILE = 'site.css' CSS_FILE = 'site.css'
BUNDLE_FILE = 'dist/bundle.js' BUNDLE_FILE = 'dist/bundle.js'
def cache_length(ext): def cache_length(ext):
if ext == 'html': if ext == 'html':
return '86400' return '86400'
@@ -38,6 +43,7 @@ def cache_length(ext):
else: else:
return '31536000' return '31536000'
@cache @cache
def current_keys(): def current_keys():
print('Fetching existing keys in {}'.format(BUCKET)) print('Fetching existing keys in {}'.format(BUCKET))
@@ -49,6 +55,7 @@ def current_keys():
return keys return keys
def upload_file(filename, overwrite=True): def upload_file(filename, overwrite=True):
ext = filename.split('.')[-1] ext = filename.split('.')[-1]
@@ -64,6 +71,7 @@ def upload_file(filename, overwrite=True):
}) })
print('\tDone.') print('\tDone.')
def set_default_object(key): def set_default_object(key):
config = cloudfront.get_distribution_config(Id=DISTRIBUTION) config = cloudfront.get_distribution_config(Id=DISTRIBUTION)
@@ -79,17 +87,18 @@ def set_default_object(key):
print('\tDone.') print('\tDone.')
def filter_filenames(filenames, ext): def filter_filenames(filenames, ext):
for f in filenames: for f in filenames:
if (isinstance(ext, (list,)) and (f.split('.')[-1] in ext) \ if (isinstance(ext, (list,)) and (f.split('.')[-1] in ext) \
or f.split('.')[-1] == ext): or f.split('.')[-1] == ext):
yield f yield f
def file_sha(filename): def file_sha(filename):
output = subprocess.check_output(['shasum', '-a', '256', filename]) output = subprocess.check_output(['shasum', '-a', '256', filename])
return output.decode().split(' ')[0] return output.decode().split(' ')[0]
def upload_root(): def upload_root():
subprocess.check_call(['webpack']) subprocess.check_call(['webpack'])
@@ -124,19 +133,19 @@ def upload_root():
set_default_object(index_filename) set_default_object(index_filename)
def upload_bundle():
upload_file('dist/bundle.js')
def upload_original(): def upload_original():
files = filter_filenames(os.listdir('img'), ['jpg', 'webp']) files = filter_filenames(os.listdir('img'), ['jpg', 'webp'])
for f in files: for f in files:
upload_file('img/{}'.format(f), overwrite=False) upload_file('img/{}'.format(f), overwrite=False)
def upload_thumbnail(size): def upload_thumbnail(size):
files = filter_filenames(os.listdir('img/{}'.format(size)), ['jpg', 'webp']) files = filter_filenames(os.listdir('img/{}'.format(size)), ['jpg', 'webp'])
for f in files: for f in files:
upload_file('img/{0}/{1}'.format(size, f), overwrite=False) upload_file('img/{0}/{1}'.format(size, f), overwrite=False)
def upload_images(): def upload_images():
upload_original() upload_original()
upload_thumbnail(200) upload_thumbnail(200)