add cache busting hash update and update html file
Signed-off-by: Victor Seiji Hariki <victorseijih@gmail.com>
This commit is contained in:
parent
dd2dc5deb0
commit
2f58f79b7d
5 changed files with 174 additions and 93 deletions
121
.devtools/updatehashes.sh
Normal file
121
.devtools/updatehashes.sh
Normal file
|
@ -0,0 +1,121 @@
|
|||
#!/usr/bin/sh
|
||||
#
|
||||
# Updates html files with cache busting urls including file hashes.
|
||||
|
||||
# Setup colors
|
||||
# Reset
|
||||
Color_Off='\033[0m' # Text Reset
|
||||
|
||||
# Regular Colors
|
||||
Black='\033[0;30m' # Black
|
||||
Red='\033[0;31m' # Red
|
||||
Green='\033[0;32m' # Green
|
||||
Yellow='\033[0;33m' # Yellow
|
||||
Blue='\033[0;34m' # Blue
|
||||
Purple='\033[0;35m' # Purple
|
||||
Cyan='\033[0;36m' # Cyan
|
||||
White='\033[0;37m' # White
|
||||
|
||||
# Bold
|
||||
BBlack='\033[1;30m' # Black
|
||||
BRed='\033[1;31m' # Red
|
||||
BGreen='\033[1;32m' # Green
|
||||
BYellow='\033[1;33m' # Yellow
|
||||
BBlue='\033[1;34m' # Blue
|
||||
BPurple='\033[1;35m' # Purple
|
||||
BCyan='\033[1;36m' # Cyan
|
||||
BWhite='\033[1;37m' # White
|
||||
|
||||
# Underline
|
||||
UBlack='\033[4;30m' # Black
|
||||
URed='\033[4;31m' # Red
|
||||
UGreen='\033[4;32m' # Green
|
||||
UYellow='\033[4;33m' # Yellow
|
||||
UBlue='\033[4;34m' # Blue
|
||||
UPurple='\033[4;35m' # Purple
|
||||
UCyan='\033[4;36m' # Cyan
|
||||
UWhite='\033[4;37m' # White
|
||||
|
||||
# Background
|
||||
On_Black='\033[40m' # Black
|
||||
On_Red='\033[41m' # Red
|
||||
On_Green='\033[42m' # Green
|
||||
On_Yellow='\033[43m' # Yellow
|
||||
On_Blue='\033[44m' # Blue
|
||||
On_Purple='\033[45m' # Purple
|
||||
On_Cyan='\033[46m' # Cyan
|
||||
On_White='\033[47m' # White
|
||||
|
||||
# High Intensity
|
||||
IBlack='\033[0;90m' # Black
|
||||
IRed='\033[0;91m' # Red
|
||||
IGreen='\033[0;92m' # Green
|
||||
IYellow='\033[0;93m' # Yellow
|
||||
IBlue='\033[0;94m' # Blue
|
||||
IPurple='\033[0;95m' # Purple
|
||||
ICyan='\033[0;96m' # Cyan
|
||||
IWhite='\033[0;97m' # White
|
||||
|
||||
# Bold High Intensity
|
||||
BIBlack='\033[1;90m' # Black
|
||||
BIRed='\033[1;91m' # Red
|
||||
BIGreen='\033[1;92m' # Green
|
||||
BIYellow='\033[1;93m' # Yellow
|
||||
BIBlue='\033[1;94m' # Blue
|
||||
BIPurple='\033[1;95m' # Purple
|
||||
BICyan='\033[1;96m' # Cyan
|
||||
BIWhite='\033[1;97m' # White
|
||||
|
||||
# High Intensity backgrounds
|
||||
On_IBlack='\033[0;100m' # Black
|
||||
On_IRed='\033[0;101m' # Red
|
||||
On_IGreen='\033[0;102m' # Green
|
||||
On_IYellow='\033[0;103m' # Yellow
|
||||
On_IBlue='\033[0;104m' # Blue
|
||||
On_IPurple='\033[0;105m' # Purple
|
||||
On_ICyan='\033[0;106m' # Cyan
|
||||
On_IWhite='\033[0;107m' # White
|
||||
|
||||
# Check requirements
|
||||
if ! which echo > /dev/null
|
||||
then
|
||||
exit -1
|
||||
fi
|
||||
|
||||
required_programs=(find grep cut sed sha1sum)
|
||||
|
||||
for program in $required_programs
|
||||
do
|
||||
if ! which $program > /dev/null
|
||||
then
|
||||
echo -e "${Red}[error] Requires '$program' command to be installed${Color_Off}"
|
||||
exit -1
|
||||
fi
|
||||
done
|
||||
|
||||
# Actual file processing
|
||||
for htmlfile in $(find -type f -name \*.html)
|
||||
do
|
||||
echo -e "${BIBlue}[info] Processing '${htmlfile}' for cache busting...${Color_Off}"
|
||||
|
||||
for resourcefile in $(find -type f -regex '.*\.css\|.*\.js' | sed 's/\.\///g')
|
||||
do
|
||||
# Check if resource is used in html file
|
||||
resourceusage=$(grep -i "$resourcefile" "$htmlfile")
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
# This is just for cache busting...
|
||||
# If 7 first characters of SHA1 is okay for git, it should be more than enough for us
|
||||
hash="$(sha1sum $resourcefile | cut -d' ' -f1 | head -c 7)"
|
||||
|
||||
# Check if resource hash is already correct
|
||||
if ! echo "$resourceusage" | grep -i "=$hash\"" > /dev/null
|
||||
then
|
||||
escaped=$(echo $resourcefile | sed 's/\//\\\//g' | sed 's/\./\\./g')
|
||||
sed -Ei "s/${escaped}(\?v=[a-z0-9]+)?/${escaped}?v=${hash}/g" "$htmlfile"
|
||||
|
||||
echo -e "${BIBlue}[info]${Color_Off} Updated resource ${resourcefile} to hash ${hash}"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done
|
|
@ -1,49 +1,9 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# An example hook script to verify what is about to be committed.
|
||||
# Called by "git commit" with no arguments. The hook should
|
||||
# exit with non-zero status after issuing an appropriate message if
|
||||
# it wants to stop the commit.
|
||||
#
|
||||
# To enable this hook, rename this file to "pre-commit".
|
||||
# Script to perform some basic operations to the code before committing.
|
||||
|
||||
if git rev-parse --verify HEAD >/dev/null 2>&1
|
||||
then
|
||||
against=HEAD
|
||||
else
|
||||
# Initial commit: diff against an empty tree object
|
||||
against=$(git hash-object -t tree /dev/null)
|
||||
fi
|
||||
# Adds file hashes to html script imports for cache busting purposes
|
||||
sh .devtools/updatehashes.sh
|
||||
|
||||
# If you want to allow non-ASCII filenames set this variable to true.
|
||||
allownonascii=$(git config --type=bool hooks.allownonascii)
|
||||
|
||||
# Redirect output to stderr.
|
||||
exec 1>&2
|
||||
|
||||
# Cross platform projects tend to avoid non-ASCII filenames; prevent
|
||||
# them from being added to the repository. We exploit the fact that the
|
||||
# printable range starts at the space character and ends with tilde.
|
||||
if [ "$allownonascii" != "true" ] &&
|
||||
# Note that the use of brackets around a tr range is ok here, (it's
|
||||
# even required, for portability to Solaris 10's /usr/bin/tr), since
|
||||
# the square bracket bytes happen to fall in the designated range.
|
||||
test $(git diff --cached --name-only --diff-filter=A -z $against |
|
||||
LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
|
||||
then
|
||||
cat <<\EOF
|
||||
Error: Attempt to add a non-ASCII file name.
|
||||
|
||||
This can cause problems if you want to work with people on other platforms.
|
||||
|
||||
To be portable it is advisable to rename the file.
|
||||
|
||||
If you know what you are doing you can disable this check using:
|
||||
|
||||
git config hooks.allownonascii true
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# If there are whitespace errors, print the offending file names and fail.
|
||||
exec git diff-index --check --cached $against --
|
||||
# Adds file to current commit
|
||||
git add --all
|
74
index.html
74
index.html
|
@ -4,22 +4,22 @@
|
|||
<meta charset="utf-8" />
|
||||
<title>openOutpaint 🐠</title>
|
||||
<!-- CSS Variables -->
|
||||
<link href="css/colors.css" rel="stylesheet" />
|
||||
<link href="css/icons.css" rel="stylesheet" />
|
||||
<link href="css/colors.css?v=3f81e80" rel="stylesheet" />
|
||||
<link href="css/icons.css?v=a25504c" rel="stylesheet" />
|
||||
|
||||
<link href="css/index.css" rel="stylesheet" />
|
||||
<link href="css/layers.css" rel="stylesheet" />
|
||||
<link href="css/index.css?v=ef0c943" rel="stylesheet" />
|
||||
<link href="css/layers.css?v=b4fbf61" rel="stylesheet" />
|
||||
|
||||
<link href="css/ui/generic.css" rel="stylesheet" />
|
||||
<link href="css/ui/generic.css?v=a15ce4b" rel="stylesheet" />
|
||||
|
||||
<link href="css/ui/history.css" rel="stylesheet" />
|
||||
<link href="css/ui/layers.css" rel="stylesheet" />
|
||||
<link href="css/ui/toolbar.css" rel="stylesheet" />
|
||||
<link href="css/ui/history.css?v=0b03861" rel="stylesheet" />
|
||||
<link href="css/ui/layers.css?v=4fd95fe" rel="stylesheet" />
|
||||
<link href="css/ui/toolbar.css?v=109c78f" rel="stylesheet" />
|
||||
|
||||
<!-- Tool Specific CSS -->
|
||||
<link href="css/ui/tool/dream.css" rel="stylesheet" />
|
||||
<link href="css/ui/tool/stamp.css" rel="stylesheet" />
|
||||
<link href="css/ui/tool/colorbrush.css" rel="stylesheet" />
|
||||
<link href="css/ui/tool/dream.css?v=2d8a8ac" rel="stylesheet" />
|
||||
<link href="css/ui/tool/stamp.css?v=6f5ce15" rel="stylesheet" />
|
||||
<link href="css/ui/tool/colorbrush.css?v=57c8be5" rel="stylesheet" />
|
||||
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico" />
|
||||
</head>
|
||||
|
@ -307,55 +307,55 @@
|
|||
</div>
|
||||
|
||||
<!-- Basics -->
|
||||
<script src="js/global.js" type="text/javascript"></script>
|
||||
<script src="js/global.js?v=af78871" type="text/javascript"></script>
|
||||
|
||||
<!-- Base Libs -->
|
||||
<script src="js/lib/util.js" type="text/javascript"></script>
|
||||
<script src="js/lib/events.js" type="text/javascript"></script>
|
||||
<script src="js/lib/input.js" type="text/javascript"></script>
|
||||
<script src="js/lib/layers.js" type="text/javascript"></script>
|
||||
<script src="js/lib/commands.js" type="text/javascript"></script>
|
||||
<script src="js/lib/util.js?v=1ae75ef" type="text/javascript"></script>
|
||||
<script src="js/lib/events.js?v=2ab7933" type="text/javascript"></script>
|
||||
<script src="js/lib/input.js?v=09298ac" type="text/javascript"></script>
|
||||
<script src="js/lib/layers.js?v=a1f8aea" type="text/javascript"></script>
|
||||
<script src="js/lib/commands.js?v=00464cb" type="text/javascript"></script>
|
||||
|
||||
<script src="js/lib/toolbar.js" type="text/javascript"></script>
|
||||
<script src="js/lib/ui.js" type="text/javascript"></script>
|
||||
<script src="js/lib/toolbar.js?v=b4eb003" type="text/javascript"></script>
|
||||
<script src="js/lib/ui.js?v=ab99160" type="text/javascript"></script>
|
||||
|
||||
<script
|
||||
src="js/initalize/layers.populate.js"
|
||||
src="js/initalize/layers.populate.js?v=c81f0a5"
|
||||
type="text/javascript"></script>
|
||||
|
||||
<!-- Configuration -->
|
||||
<script src="js/config.js" type="text/javascript"></script>
|
||||
<script src="js/config.js?v=8da6a43" type="text/javascript"></script>
|
||||
|
||||
<!-- Content -->
|
||||
<script src="js/prompt.js" type="text/javascript"></script>
|
||||
<script src="js/index.js" type="text/javascript"></script>
|
||||
<script src="js/prompt.js?v=7a1c68c" type="text/javascript"></script>
|
||||
<script src="js/index.js?v=36e55fc" type="text/javascript"></script>
|
||||
|
||||
<script src="js/ui/floating/history.js" type="text/javascript"></script>
|
||||
<script src="js/ui/floating/layers.js" type="text/javascript"></script>
|
||||
<script src="js/ui/floating/history.js?v=fc92d14" type="text/javascript"></script>
|
||||
<script src="js/ui/floating/layers.js?v=486b9fc" type="text/javascript"></script>
|
||||
|
||||
<!-- Load Tools -->
|
||||
<script src="js/ui/tool/generic.js" type="text/javascript"></script>
|
||||
<script src="js/ui/tool/generic.js?v=e45f721" type="text/javascript"></script>
|
||||
|
||||
<script src="js/ui/tool/dream.js" type="text/javascript"></script>
|
||||
<script src="js/ui/tool/maskbrush.js" type="text/javascript"></script>
|
||||
<script src="js/ui/tool/colorbrush.js" type="text/javascript"></script>
|
||||
<script src="js/ui/tool/select.js" type="text/javascript"></script>
|
||||
<script src="js/ui/tool/stamp.js" type="text/javascript"></script>
|
||||
<script src="js/ui/tool/interrogate.js" type="text/javascript"></script>
|
||||
<script src="js/ui/tool/dream.js?v=8656e01" type="text/javascript"></script>
|
||||
<script src="js/ui/tool/maskbrush.js?v=1e8a893" type="text/javascript"></script>
|
||||
<script src="js/ui/tool/colorbrush.js?v=1bd7288" type="text/javascript"></script>
|
||||
<script src="js/ui/tool/select.js?v=533feab" type="text/javascript"></script>
|
||||
<script src="js/ui/tool/stamp.js?v=81b8908" type="text/javascript"></script>
|
||||
<script src="js/ui/tool/interrogate.js?v=af51c4d" type="text/javascript"></script>
|
||||
|
||||
<!-- Initialize -->
|
||||
<script
|
||||
src="js/initalize/shortcuts.populate.js"
|
||||
src="js/initalize/shortcuts.populate.js?v=fd01c47"
|
||||
type="text/javascript"></script>
|
||||
<script
|
||||
src="js/initalize/toolbar.populate.js"
|
||||
src="js/initalize/toolbar.populate.js?v=c1ca438"
|
||||
type="text/javascript"></script>
|
||||
<script
|
||||
src="js/initalize/debug.populate.js"
|
||||
src="js/initalize/debug.populate.js?v=64ad17f"
|
||||
type="text/javascript"></script>
|
||||
<script src="js/initalize/ui.populate.js" type="text/javascript"></script>
|
||||
<script src="js/initalize/ui.populate.js?v=b59b288" type="text/javascript"></script>
|
||||
|
||||
<!-- Deals with webui communication -->
|
||||
<script src="js/webui.js" type="text/javascript"></script>
|
||||
<script src="js/webui.js?v=60a0a81" type="text/javascript"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -4,22 +4,22 @@
|
|||
<meta charset="utf-8" />
|
||||
<title>openOutpaint 🐠</title>
|
||||
<!-- CSS Variables -->
|
||||
<link href="../css/colors.css" rel="stylesheet" />
|
||||
<link href="../css/icons.css" rel="stylesheet" />
|
||||
<link href="../css/colors.css?v=3f81e80" rel="stylesheet" />
|
||||
<link href="../css/icons.css?v=a25504c" rel="stylesheet" />
|
||||
|
||||
<link href="../css/index.css" rel="stylesheet" />
|
||||
<link href="../css/layers.css" rel="stylesheet" />
|
||||
<link href="../css/index.css?v=ef0c943" rel="stylesheet" />
|
||||
<link href="../css/layers.css?v=b4fbf61" rel="stylesheet" />
|
||||
|
||||
<link href="../css/ui/generic.css" rel="stylesheet" />
|
||||
<link href="../css/ui/generic.css?v=a15ce4b" rel="stylesheet" />
|
||||
|
||||
<link href="../css/ui/history.css" rel="stylesheet" />
|
||||
<link href="../css/ui/layers.css" rel="stylesheet" />
|
||||
<link href="../css/ui/toolbar.css" rel="stylesheet" />
|
||||
<link href="../css/ui/history.css?v=0b03861" rel="stylesheet" />
|
||||
<link href="../css/ui/layers.css?v=4fd95fe" rel="stylesheet" />
|
||||
<link href="../css/ui/toolbar.css?v=109c78f" rel="stylesheet" />
|
||||
|
||||
<!-- Tool Specific CSS -->
|
||||
<link href="../css/ui/tool/dream.css" rel="stylesheet" />
|
||||
<link href="../css/ui/tool/stamp.css" rel="stylesheet" />
|
||||
<link href="../css/ui/tool/colorbrush.css" rel="stylesheet" />
|
||||
<link href="../css/ui/tool/dream.css?v=2d8a8ac" rel="stylesheet" />
|
||||
<link href="../css/ui/tool/stamp.css?v=6f5ce15" rel="stylesheet" />
|
||||
<link href="../css/ui/tool/colorbrush.css?v=57c8be5" rel="stylesheet" />
|
||||
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico" />
|
||||
|
||||
|
|
Loading…
Reference in a new issue