Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- set -e
- DEFAULTPROVIDERS="xumo distrotv"
- BRANCHES="main master"
- PROVIDERS="$*"
- [ -z "$PROVIDERS" ] && PROVIDERS="$DEFAULTPROVIDERS"
- DOCKERTAGS=vlc-bridge/${PROVIDERS// /-}
- countdown () {
- let count=$1
- while [ $count -gt 0 ]; do
- echo -n $count ...
- let count--
- sleep 1
- done
- echo
- }
- echo -n Building for $PROVIDERS tagged as $DOCKERTAGS in ....
- countdown 3
- WORKDIR=vlc-bridge-tmp-$EPOCHSECONDS
- mkdir -p $WORKDIR
- cd $WORKDIR
- REQUIREMENTS=""
- for provider in $PROVIDERS; do
- for branch in $BRANCHES; do
- wget --quiet https://gitlab.com/miibeez/vlc-bridge-${provider}/-/raw/${branch}/${provider}.py || continue
- REQUIREMENTS="$REQUIREMENTS https://gitlab.com/miibeez/vlc-bridge-${provider}/-/raw/${branch}/requirements.txt"
- break
- done
- done
- wget --quiet -O - $REQUIREMENTS | sort -u > requirements.txt
- #best server.py
- wget --quiet https://gitlab.com/miibeez/vlc-bridge-xumo/-/raw/04d2b13891d2277e0028f5cd9840f2d43cddba97/server.py
- patch server.py <<EOF
- 8,11c8,11
- < name = os.environ['PROVIDER']
- < providers = {
- < name: importlib.import_module(name).Client(),
- < }
- ---
- > names = os.environ['PROVIDERS'].split()
- > providers = dict()
- > for name in names:
- > providers[name] = importlib.import_module(name).Client()
- EOF
- cat >Dockerfile <<EOF
- FROM python:alpine
- WORKDIR /app
- RUN apk add ca-certificates curl
- HEALTHCHECK CMD curl -s -m1 -I localhost:7777
- COPY requirements.txt ./
- RUN pip install -r requirements.txt
- COPY *.py ./
- ENV PYTHONUNBUFFERED=1
- ENV PROVIDERS="$PROVIDERS"
- EXPOSE 7777/tcp
- ENTRYPOINT ["python", "server.py"]
- EOF
- docker build --no-cache -t $DOCKERTAGS .
- echo Build process for $DOCKERTAGS finished in $SECONDS seconds
- cd - >/dev/null
- echo
- echo To start, run
- echo $ docker run -p 7777:7777 -d $DOCKERTAGS
- echo -n Deleting the build directory - $WORKDIR - in ...
- countdown 5
- rm -rf $WORKDIR
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement