forked from gdcc/dataverse-previewers
-
Notifications
You must be signed in to change notification settings - Fork 0
/
localinstall.sh
70 lines (56 loc) · 1.88 KB
/
localinstall.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/bin/bash
dirLocal=$(pwd)
# go to the version folder
if [ -z "$1" ]; then
echo "Provide the relative path to the previewer version you wish to make an all-local instance of, e.g. previewers/v1.4."
exit 1
fi
if [ -z "$2" ]; then
echo "To update the example curl commands, add the base URL for your local previewer installation as the second parameter."
echo "E.g. https://yourinstitution.org/mypreviewerdir to have the Text previewer at https://yourinstitution.org/mypreviewerdir/previewers/v1.4/TextPreview.html"
echo "The version will match the relative path you provide"
echo ""
fi
folder="$1"
cd "${folder}"
echo Downloading local copies of remote JavaScript libraries:
sed -n 's/.*src="\(http[^"]*\)".*/\1/p' *.html | sort -u | sed -n 's/^\(.*\/\)*\(.*\)/sed -i \x27s,\0\,lib\/\2,\x27 *.html/p' > replace_js.sh
sed -n 's/.*src="\(http[^"]*\)".*/\1/p' *.html | sort -u > urls_js.txt
source replace_js.sh
cat urls_js.txt
echo Downloading local copies of remote CSS files:
sed -n 's/.*<link.*href="\(http[^"]*\)".*/\1/p' *.html | sort -u | sed -n 's/^\(.*\/\)*\(.*\)/sed -i \x27s,\0\,lib\/\2,\x27 *.html/p' > replace_css.sh
sed -n 's/.*<link.*href="\(http[^"]*\)".*/\1/p' *.html | sort -u > urls_css.txt
source replace_css.sh
cat urls_css.txt
if [ ! -d ./lib ]; then
mkdir ./lib
fi
cd ./lib
while read url; do
wget --quiet $url
done < "../urls_js.txt"
cd ".."
if [ ! -d ./css ]; then
mkdir ./css
fi
cd ./css
while read url; do
wget --quiet $url
done < "../urls_css.txt"
cd ..
if [ ! -z "$2" ]; then
cd "${dirLocal}"
echo Changing example curl commands to use local URLs
localurl="$2"
sed -i "s,https://gdcc.github.io/dataverse-previewers/previewers/v1.[34],$localurl/$folder,g" *curlcommands.md
echo Done changing example curl commands to use local URLs
cd "${folder}"
fi
echo Cleaning Up...
rm urls_js.txt
rm urls_css.txt
rm replace_js.sh
rm replace_css.sh
echo Done
exit 0