aboutsummaryrefslogtreecommitdiff
path: root/auto-dvd-ripper
diff options
context:
space:
mode:
authorMike Crute <mike@crute.us>2018-02-27 04:27:37 +0000
committerMike Crute <mike@crute.us>2018-02-27 04:27:37 +0000
commit113ac47ce88dae726551e3fab9d640d4e977c835 (patch)
tree0a1ba50ea9cd7330b0f339e727d03ada2b227c79 /auto-dvd-ripper
parent7e3908d14bfab45e6b3c3962efa50bdc60398b24 (diff)
downloaddockerfiles-113ac47ce88dae726551e3fab9d640d4e977c835.tar.bz2
dockerfiles-113ac47ce88dae726551e3fab9d640d4e977c835.tar.xz
dockerfiles-113ac47ce88dae726551e3fab9d640d4e977c835.zip
Add dvd ripper
Diffstat (limited to 'auto-dvd-ripper')
-rw-r--r--auto-dvd-ripper/Dockerfile19
-rw-r--r--auto-dvd-ripper/Makefile23
-rwxr-xr-xauto-dvd-ripper/entrypoint.sh5
-rw-r--r--auto-dvd-ripper/handbrake-1.0.7-r5.apkbin0 -> 326824 bytes
-rwxr-xr-xauto-dvd-ripper/rip_dvd.sh64
5 files changed, 111 insertions, 0 deletions
diff --git a/auto-dvd-ripper/Dockerfile b/auto-dvd-ripper/Dockerfile
new file mode 100644
index 0000000..5994cb7
--- /dev/null
+++ b/auto-dvd-ripper/Dockerfile
@@ -0,0 +1,19 @@
1FROM alpine:edge
2LABEL maintainer="Mike Crute <mike@crute.us>"
3
4COPY handbrake-1.0.7-r5.apk /tmp/
5
6RUN \
7 echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories; \
8 apk --no-cache add su-exec dumb-init sg3_utils; \
9 apk --no-cache --allow-untrusted add /tmp/handbrake-1.0.7-r5.apk; \
10 addgroup -g 1000 -S alpine; \
11 adduser -u 1000 -S -H -D -G alpine alpine; \
12 addgroup alpine cdrom; \
13 rm -rf /root/.cache /tmp/*;
14
15ADD rip_dvd.sh /usr/bin/
16ADD entrypoint.sh /
17
18ENTRYPOINT ["/entrypoint.sh"]
19CMD ["/sbin/su-exec", "alpine", "/usr/bin/rip_dvd.sh"]
diff --git a/auto-dvd-ripper/Makefile b/auto-dvd-ripper/Makefile
new file mode 100644
index 0000000..a8c34a7
--- /dev/null
+++ b/auto-dvd-ripper/Makefile
@@ -0,0 +1,23 @@
1REPO=575365190010.dkr.ecr.us-west-2.amazonaws.com
2IMAGE=auto-dvd-ripper:latest-alpine
3
4all:
5 docker build -t $(IMAGE) .
6
7all-no-cache:
8 docker build --no-cache -t $(IMAGE) .
9
10run:
11 docker run -d \
12 --device /dev/cdrom \
13 -v /mnt/Media:/mnt/Media \
14 -v /var/log/ripper:/var/log/ripper \
15 $(IMAGE)
16
17send:
18 docker save auto-dvd-ripper:latest-alpine | ssh alpine@snoopy docker load
19
20publish:
21 eval $$(aws ecr get-login --region us-west-2)
22 docker tag $(IMAGE) $(REPO)/$(IMAGE)
23 docker push $(REPO)/$(IMAGE)
diff --git a/auto-dvd-ripper/entrypoint.sh b/auto-dvd-ripper/entrypoint.sh
new file mode 100755
index 0000000..8b1a3e4
--- /dev/null
+++ b/auto-dvd-ripper/entrypoint.sh
@@ -0,0 +1,5 @@
1#!/bin/sh
2
3sg_raw /dev/cdrom ea 00 00 00 00 00 01
4
5exec /usr/bin/dumb-init "$@"
diff --git a/auto-dvd-ripper/handbrake-1.0.7-r5.apk b/auto-dvd-ripper/handbrake-1.0.7-r5.apk
new file mode 100644
index 0000000..c103667
--- /dev/null
+++ b/auto-dvd-ripper/handbrake-1.0.7-r5.apk
Binary files differ
diff --git a/auto-dvd-ripper/rip_dvd.sh b/auto-dvd-ripper/rip_dvd.sh
new file mode 100755
index 0000000..9bb79e0
--- /dev/null
+++ b/auto-dvd-ripper/rip_dvd.sh
@@ -0,0 +1,64 @@
1#!/bin/sh
2
3exec 1> /var/log/ripper/ripper.log 2>&1
4
5function handbrake_rip() {
6 TEMP_FILE="${1}.m4v"
7
8 if [ -e "/mnt/Media/IncomingBackup/$TEMP_FILE" ]; then
9 TEMP_FILE="NewMovie-$(date +%s).m4v"
10 fi
11
12 HandBrakeCLI --main-feature --native-language eng \
13 -i /dev/cdrom -o "$TEMP_FILE" \
14 --subtitle scan --subtitle-burned native
15
16 cp "$TEMP_FILE" "/mnt/Media/Incoming/$TEMP_FILE"
17}
18
19function dvdbackup_rip() {
20 dvdbackup -i /dev/cdrom -M -p
21 cp -r "${1}" "/mnt/Media/IncomingBackup/"
22}
23
24function rip_dvd() {
25 # Make sure we have storage
26 if ! mount | grep /mnt/Media > /dev/null; then
27 email "Error: DVD Rip Failed" "Tried to rip but media wasn't mounted"
28 return 1
29 fi
30
31 # Make a temp directory and go there
32 TEMPDIR=$(mktemp -d)
33 echo $TEMPDIR
34 cd $TEMPDIR
35
36 # Get title and language
37 HandBrakeCLI --scan -i /dev/cdrom > dvdinfo 2>&1
38
39 TITLE=$(egrep -o 'DVD Title:.*' dvdinfo | awk 'BEGIN { FS=": "; } { print $2 }')
40 LANGUAGE=$(grep -A 1 'audio tracks:' dvdinfo | sed -n 2p | awk '{ print $3 }')
41
42 # Makeup something unique if the DVD doesn't have one
43 if [ -z "$TITLE" ]; then
44 TITLE="NewMovie-$(date +%s)"
45 fi
46
47 trap "eject /dev/cdrom" ERR
48
49 #dvdbackup_rip "$TITLE"
50 handbrake_rip "$TITLE"
51
52 eject /dev/cdrom
53 cd /tmp && rm -rf "$TEMPDIR"
54}
55
56while true; do
57 if ! blkid /dev/cdrom | grep 'TYPE=' >/dev/null; then
58 sleep 1
59 else
60 echo "=============================== START DVD RIP =============================="
61 rip_dvd
62 echo "============================== FINISH DVD RIP =============================="
63 fi
64done