Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2023
104
0
205 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.87 KB | None | 0 0
  1. #!/bin/bash
  2. set -e
  3.  
  4. DEFAULTPROVIDERS="xumo distrotv"
  5. BRANCHES="main master"
  6.  
  7. PROVIDERS="$*"
  8. [ -z "$PROVIDERS" ] && PROVIDERS="$DEFAULTPROVIDERS"
  9. DOCKERTAGS=vlc-bridge/${PROVIDERS// /-}
  10.  
  11. countdown () {
  12.     let count=$1
  13.     while [ $count -gt 0 ]; do
  14.         echo -n $count ...
  15.         let count--
  16.         sleep 1
  17.     done
  18.     echo
  19. }
  20.  
  21.  
  22. echo -n Building for $PROVIDERS tagged as $DOCKERTAGS in ....
  23. countdown 3
  24. WORKDIR=vlc-bridge-tmp-$EPOCHSECONDS
  25. mkdir -p $WORKDIR
  26. cd $WORKDIR
  27.  
  28. REQUIREMENTS=""
  29. for provider in $PROVIDERS; do
  30.     for branch in $BRANCHES; do
  31.         wget --quiet https://gitlab.com/miibeez/vlc-bridge-${provider}/-/raw/${branch}/${provider}.py || continue
  32.         REQUIREMENTS="$REQUIREMENTS https://gitlab.com/miibeez/vlc-bridge-${provider}/-/raw/${branch}/requirements.txt"
  33.         break
  34.     done
  35. done
  36.  
  37. wget --quiet -O - $REQUIREMENTS | sort -u > requirements.txt
  38. #best server.py
  39. wget --quiet https://gitlab.com/miibeez/vlc-bridge-xumo/-/raw/04d2b13891d2277e0028f5cd9840f2d43cddba97/server.py
  40. patch server.py <<EOF
  41. 8,11c8,11
  42. < name = os.environ['PROVIDER']
  43. < providers = {
  44. <     name: importlib.import_module(name).Client(),
  45. < }
  46. ---
  47. > names = os.environ['PROVIDERS'].split()
  48. > providers = dict()
  49. > for name in names:
  50. >     providers[name] = importlib.import_module(name).Client()
  51. EOF
  52.  
  53. cat >Dockerfile <<EOF
  54. FROM python:alpine
  55. WORKDIR /app
  56. RUN apk add ca-certificates curl
  57. HEALTHCHECK CMD curl -s -m1 -I localhost:7777
  58. COPY requirements.txt ./
  59. RUN pip install -r requirements.txt
  60. COPY *.py ./
  61. ENV PYTHONUNBUFFERED=1
  62. ENV PROVIDERS="$PROVIDERS"
  63. EXPOSE 7777/tcp
  64. ENTRYPOINT ["python", "server.py"]
  65. EOF
  66.  
  67. docker build  --no-cache -t $DOCKERTAGS .
  68. echo Build process for $DOCKERTAGS finished in $SECONDS seconds
  69.  
  70.  
  71. cd - >/dev/null
  72. echo
  73. echo To start, run
  74. echo $ docker run -p 7777:7777 -d $DOCKERTAGS
  75. echo -n Deleting the build directory - $WORKDIR - in ...
  76. countdown 5
  77. rm -rf $WORKDIR
  78.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement