Skip to content

Commit 2cae572

Browse files
committed
Fix files r/w permissions under Linux Docker (cotes2020#145)
also improve the scripts
1 parent 031698e commit 2cae572

2 files changed

Lines changed: 35 additions & 32 deletions

File tree

tools/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ _help() {
3131
}
3232

3333
_install_tools() {
34-
# docker image `jekyll/jekyll` based on Apline Linux
34+
# docker image `jekyll/jekyll` based on Alpine Linux
3535
echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
3636
apk update
3737
apk add yq

tools/run.sh

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@ set -eu
1414

1515
WORK_DIR="$(dirname "$(dirname "$(realpath "$0")")")"
1616

17-
CONTAINER=.container
17+
CONTAINER="${WORK_DIR}/.container"
1818
SYNC_TOOL=_scripts/sh/sync_monitor.sh
1919

20-
cmd="bundle exec jekyll s -l"
20+
cmd="bundle exec jekyll s"
21+
2122
realtime=false
2223
docker=false
2324

@@ -37,27 +38,32 @@ _help() {
3738
}
3839

3940
_cleanup() {
40-
if [[ -d _site || -d .jekyll-cache ]]; then
41-
jekyll clean
42-
fi
43-
44-
rm -rf "${WORK_DIR}/${CONTAINER}"
41+
rm -rf "$CONTAINER"
4542
ps aux | grep fswatch | awk '{print $2}' | xargs kill -9 > /dev/null 2>&1
4643
}
4744

45+
_setup_docker() {
46+
# docker image `jekyll/jekyll` based on Alpine Linux
47+
echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
48+
apk update
49+
apk add yq
50+
51+
chown -R jekyll:jekyll "$CONTAINER"
52+
}
53+
4854
_init() {
4955
if [[ -f Gemfile.lock ]]; then
5056
rm -f Gemfile.lock
5157
fi
5258

53-
if [[ -d "${WORK_DIR}/${CONTAINER}" ]]; then
54-
rm -rf "${WORK_DIR}/${CONTAINER}"
59+
if [[ -d $CONTAINER ]]; then
60+
rm -rf "$CONTAINER"
5561
fi
5662

57-
temp="$(mktemp -d)"
58-
cp -r "$WORK_DIR"/* "$temp"
59-
cp -r "${WORK_DIR}/.git" "$temp"
60-
mv "$temp" "${WORK_DIR}/${CONTAINER}"
63+
local temp="$(mktemp -d)"
64+
cp -r ./* "$temp"
65+
cp -r ./.git "$temp"
66+
mv "$temp" "$CONTAINER"
6167

6268
trap _cleanup INT
6369
}
@@ -77,21 +83,8 @@ _check_command() {
7783
fi
7884
}
7985

80-
_install_tools() {
81-
# docker image `jekyll/jekyll` based on Apline Linux
82-
echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
83-
apk update
84-
apk add yq
85-
}
86-
87-
main() {
88-
_init
89-
90-
if $docker; then
91-
_install_tools
92-
fi
93-
94-
cd "${WORK_DIR}/${CONTAINER}"
86+
_run() {
87+
cd "$CONTAINER"
9588
bash _scripts/sh/create_pages.sh
9689
bash _scripts/sh/dump_lastmod.sh
9790

@@ -110,16 +103,26 @@ main() {
110103
"$WORK_DIR" | xargs -0 -I {} bash "./${SYNC_TOOL}" {} "$WORK_DIR" . &
111104
fi
112105

113-
if ! $docker; then
114-
cmd+=" -o"
115-
else
106+
if $docker; then
116107
cmd+=" -H 0.0.0.0"
108+
else
109+
cmd+=" -l -o"
117110
fi
118111

119112
echo "\$ $cmd"
120113
eval "$cmd"
121114
}
122115

116+
main() {
117+
_init
118+
119+
if $docker; then
120+
_setup_docker
121+
fi
122+
123+
_run
124+
}
125+
123126
while (($#)); do
124127
opt="$1"
125128
case $opt in

0 commit comments

Comments
 (0)