cleanup publish script
This commit is contained in:
15
pub.py
15
pub.py
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user