From 8f1db056702d2ae1eb97592d898cb3662be38fda Mon Sep 17 00:00:00 2001 From: Lucas Cimon Date: Sun, 10 Feb 2019 08:49:07 +0100 Subject: [PATCH] New hash for JS bundle --- gen_statics_bundles.py | 15 ++++++++++----- ...SHARE-0-MG_FILTER_TAGS-0-SHORTSHA1-efddc02.js} | 0 ...SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-efddc02.js} | 1 + ...SHARE-1-MG_FILTER_TAGS-0-SHORTSHA1-efddc02.js} | 0 ...SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-efddc02.js} | 1 + 5 files changed, 12 insertions(+), 5 deletions(-) rename static/{bundle-SHARE-0-MG_FILTER_TAGS-0-SHORTSHA1-b4c4e94.js => bundle-SHARE-0-MG_FILTER_TAGS-0-SHORTSHA1-efddc02.js} (100%) rename static/{bundle-SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-b4c4e94.js => bundle-SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-efddc02.js} (99%) rename static/{bundle-SHARE-1-MG_FILTER_TAGS-0-SHORTSHA1-b4c4e94.js => bundle-SHARE-1-MG_FILTER_TAGS-0-SHORTSHA1-efddc02.js} (100%) rename static/{bundle-SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-b4c4e94.js => bundle-SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-efddc02.js} (99%) diff --git a/gen_statics_bundles.py b/gen_statics_bundles.py index 69baf13..40cec88 100755 --- a/gen_statics_bundles.py +++ b/gen_statics_bundles.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -import itertools, re +import itertools, os, re, sys from hashlib import sha1 @@ -18,8 +18,9 @@ def sed(filepath, pattern, value): print('Generating CSS bundle') short_hash = sha1(cat('static/main.css')).hexdigest()[:7] sed('templates/base.html', '-SHORTSHA1-[a-z0-9]+.css', '-SHORTSHA1-{}.css'.format(short_hash)) -bundle_filename = 'bundle-SHORTSHA1-{}.css'.format(short_hash) -with open('static/' + bundle_filename, 'wb') as bundle: +css_bundle_filepath = 'static/bundle-SHORTSHA1-{}.css'.format(short_hash) +files_created = not os.path.exists(css_bundle_filepath) +with open(css_bundle_filepath, 'wb') as bundle: bundle.write(cat('static/csslibs/uikit-2.27.4.min.css')) bundle.write(cat('static/csslibs/solarized-highlight.css')) bundle.write(cat('static/main.css')) @@ -28,9 +29,10 @@ print('Generating JS bundle') short_hash = sha1(cat('static/js/social.js') + cat('static/js/filter-tags.js')).hexdigest()[:7] sed('templates/base.html', '-SHORTSHA1-[a-z0-9]+.js', '-SHORTSHA1-{}.js'.format(short_hash)) for SHARE, MG_FILTER_TAGS in itertools.product(range(2), repeat=2): - bundle_filename = 'bundle-SHARE-{}-MG_FILTER_TAGS-{}-SHORTSHA1-{}.js'.format( + js_bundle_filepath = 'static/bundle-SHARE-{}-MG_FILTER_TAGS-{}-SHORTSHA1-{}.js'.format( SHARE, MG_FILTER_TAGS, short_hash) - with open('static/' + bundle_filename, 'wb') as bundle: + files_created |= not os.path.exists(js_bundle_filepath) + with open(js_bundle_filepath, 'wb') as bundle: bundle.write(cat('static/jslibs/html5shiv-3.7.2.min.js')) bundle.write(cat('static/jslibs/jquery-1.10.2.min.js')) bundle.write(cat('static/jslibs/uikit-2.27.4.min.js')) @@ -42,3 +44,6 @@ for SHARE, MG_FILTER_TAGS in itertools.product(range(2), repeat=2): if MG_FILTER_TAGS: bundle.write(cat('static/js/filter-tags.js')) +if files_created: + print('New bundle files were created', file=sys.stderr) + sys.exit(1) diff --git a/static/bundle-SHARE-0-MG_FILTER_TAGS-0-SHORTSHA1-b4c4e94.js b/static/bundle-SHARE-0-MG_FILTER_TAGS-0-SHORTSHA1-efddc02.js similarity index 100% rename from static/bundle-SHARE-0-MG_FILTER_TAGS-0-SHORTSHA1-b4c4e94.js rename to static/bundle-SHARE-0-MG_FILTER_TAGS-0-SHORTSHA1-efddc02.js diff --git a/static/bundle-SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-b4c4e94.js b/static/bundle-SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-efddc02.js similarity index 99% rename from static/bundle-SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-b4c4e94.js rename to static/bundle-SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-efddc02.js index d176064..4dcb678 100644 --- a/static/bundle-SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-b4c4e94.js +++ b/static/bundle-SHARE-0-MG_FILTER_TAGS-1-SHORTSHA1-efddc02.js @@ -97,6 +97,7 @@ if(e=u.split("-"),h=d[u]?d[u]:d["bottom-left"],this.justified&&this.justified.le updateArticlesVisibility(); }; + // This is a bit redundant with /tag/$tag.html pages, but is slightly more powerful as it allow to combine multiple filters let queryParams = parseQuery(window.location.search); for (let [qpName, qpValue] of Object.entries(queryParams)) { if (!qpValue) { continue; } diff --git a/static/bundle-SHARE-1-MG_FILTER_TAGS-0-SHORTSHA1-b4c4e94.js b/static/bundle-SHARE-1-MG_FILTER_TAGS-0-SHORTSHA1-efddc02.js similarity index 100% rename from static/bundle-SHARE-1-MG_FILTER_TAGS-0-SHORTSHA1-b4c4e94.js rename to static/bundle-SHARE-1-MG_FILTER_TAGS-0-SHORTSHA1-efddc02.js diff --git a/static/bundle-SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-b4c4e94.js b/static/bundle-SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-efddc02.js similarity index 99% rename from static/bundle-SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-b4c4e94.js rename to static/bundle-SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-efddc02.js index 85b4154..b4a4a50 100644 --- a/static/bundle-SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-b4c4e94.js +++ b/static/bundle-SHARE-1-MG_FILTER_TAGS-1-SHORTSHA1-efddc02.js @@ -343,6 +343,7 @@ $(document).ready(() => { updateArticlesVisibility(); }; + // This is a bit redundant with /tag/$tag.html pages, but is slightly more powerful as it allow to combine multiple filters let queryParams = parseQuery(window.location.search); for (let [qpName, qpValue] of Object.entries(queryParams)) { if (!qpValue) { continue; }