Add resources mirror creation tool
This commit is contained in:
parent
9b2009ed6c
commit
7b1d7b9eeb
13
share/mirror/Dockerfile
Normal file
13
share/mirror/Dockerfile
Normal file
@ -0,0 +1,13 @@
|
||||
FROM alpine:latest
|
||||
|
||||
ADD entrypoint.sh /entrypoint.sh
|
||||
|
||||
RUN \
|
||||
addgroup -g 1200 -S app && \
|
||||
adduser -g 1200 -u 1200 -S app && \
|
||||
apk add --upgrade --no-cache git zip && \
|
||||
chmod +x /entrypoint.sh
|
||||
|
||||
USER app
|
||||
VOLUME [ "/git", "/packed" ]
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
15
share/mirror/docker-compose.yml
Normal file
15
share/mirror/docker-compose.yml
Normal file
@ -0,0 +1,15 @@
|
||||
version: '3'
|
||||
services:
|
||||
mirror:
|
||||
build: .
|
||||
image: gres/st_mirror
|
||||
restart: always
|
||||
container_name: st_mirror
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "5"
|
||||
volumes:
|
||||
- ./git:/git
|
||||
- ./packed:/packed
|
51
share/mirror/entrypoint.sh
Executable file
51
share/mirror/entrypoint.sh
Executable file
@ -0,0 +1,51 @@
|
||||
#!/bin/sh
|
||||
|
||||
pack() {
|
||||
mkdir -p "$2"
|
||||
for f in $(ls $1); do
|
||||
source="$1/$f"
|
||||
target="$2/$f"
|
||||
if [ -d "$source" ]; then
|
||||
pack "$source" "$target"
|
||||
elif [ -f "$source" ]; then
|
||||
if [ "$target.zip" -nt "$source" ]; then
|
||||
echo "$source is up to date"
|
||||
continue
|
||||
fi
|
||||
tmp=/tmp/archive.zip
|
||||
echo "packing $source -> $tmp"
|
||||
ls -l "$source"
|
||||
zip -9 -j "$tmp" "$source"
|
||||
|
||||
echo "moving $tmp -> $target.zip"
|
||||
mv "$tmp" "$target.zip"
|
||||
chmod 444 "$target.zip"
|
||||
ls -l "$target.zip"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
mirror() {
|
||||
cur="$(pwd)"
|
||||
url="$1"
|
||||
dir="$2"
|
||||
git_dir="/git/$dir"
|
||||
pack_dir="/packed/$dir"
|
||||
echo $url $git_dir $pack_dir
|
||||
if [ -d $git_dir ]; then
|
||||
echo "fetching"
|
||||
cd $git_dir && git fetch --depth=1 origin master
|
||||
else
|
||||
echo "cloning"
|
||||
git clone --depth=1 --single-branch "$url" $git_dir
|
||||
fi
|
||||
echo "packing"
|
||||
pack "$git_dir" "$pack_dir"
|
||||
}
|
||||
|
||||
while true; do
|
||||
mirror 'git://anongit.freedesktop.org/libreoffice/dictionaries' 'dictionaries'
|
||||
mirror 'https://github.com/tesseract-ocr/tessdata_best.git' 'tessdata_best'
|
||||
echo "sleeping"
|
||||
sleep 6h
|
||||
done
|
Loading…
Reference in New Issue
Block a user