plugins: videos: photos: add videos plugin
This change adds a new plugin that mirrors photos functionality, but for
videos (mp4 and others).
NOTE: this plugin requires ffmepg installed on the host machine
$ sudo apt-get install -y ffmpeg
diff --git a/Makefile b/Makefile
index ead5917..daa6b60 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,7 @@
OUTPUTDIR=$(BASEDIR)/output
OUTPUTDIR_THEME=$(OUTPUTDIR)/theme
OUTPUTDIR_PHOTOS=$(OUTPUTDIR)/photos
+OUTPUTDIR_VIDEOS=$(OUTPUTDIR)/videos
CONFFILE=$(BASEDIR)/pelicanconf.py
PUBLISHCONF=$(BASEDIR)/publishconf.py
@@ -35,8 +36,11 @@
endif
INSTALLFLAGS := $(INSTALLFLAGS) -rXaA
INSTALLDIR ?=
+# Copy the whole directory theme
INSTALLDIR_THEME ?=
+# Copy contents only
INSTALLDIR_PHOTOS ?=
+INSTALLDIR_VIDEOS ?=
DEBUG ?= 0
ifeq ($(DEBUG), 1)
@@ -56,6 +60,8 @@
@echo ' make clean-html remove all html files and folders '
@echo ' make clean-theme remove output/theme '
@echo ' make clean-photos remove output/photos '
+ @echo ' make clean-videos remove output/videos '
+ @echo ' make distclean remove output and __pycache__ '
@echo ' make clean remove output folder '
@echo ' make regenerate regenerate files upon modification '
@echo ' make publish generate using production settings '
@@ -73,6 +79,7 @@
@echo ' make install-html copy *.html, html folders locally '
@echo ' make install-theme copy output/theme locally '
@echo ' make install-photos copy output/photos locally '
+ @echo ' make install-videos copy output/videos locally '
@echo ' make install copy output/* locally '
@echo ' '
@echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html '
@@ -92,9 +99,15 @@
clean-photos:
[ ! -d "$(OUTPUTDIR_PHOTOS)" ] || rm -rf $(OUTPUTDIR_PHOTOS)
+clean-videos:
+ [ ! -d "$(OUTPUTDIR_VIDEOS)" ] || rm -rf $(OUTPUTDIR_VIDEOS)
+
clean:
[ ! -d "$(OUTPUTDIR)" ] || rm -rf $(OUTPUTDIR)
+distclean: clean
+ find $(BASEDIR) -type d -name "__pycache__" -exec rm -rf '{}' '+'
+
regenerate:
$(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
@@ -151,18 +164,27 @@
install-html:
[ -d "$(OUTPUTDIR)" ] && [ -d "$(INSTALLDIR)" ] && \
- $(SUDO) rsync $(INSTALLFLAGS) --exclude=$(notdir $(OUTPUTDIR_THEME)) \
- --exclude=$(notdir $(OUTPUTDIR_PHOTOS)) $(OUTPUTDIR)/* $(INSTALLDIR)
+ $(SUDO) rsync $(INSTALLFLAGS) \
+ --exclude=$(notdir $(OUTPUTDIR_THEME)) \
+ --exclude=$(notdir $(OUTPUTDIR_PHOTOS)) \
+ --exclude=$(notdir $(OUTPUTDIR_VIDEOS)) \
+ $(OUTPUTDIR)/* $(INSTALLDIR)
install-theme:
[ -d "$(OUTPUTDIR_THEME)" ] && [ -d "$(INSTALLDIR_THEME)" ] && \
$(SUDO) rsync $(INSTALLFLAGS) $(OUTPUTDIR_THEME) $(INSTALLDIR_THEME)/
install-photos:
- [ -d "$(OUTPUTDIR_PHOTOS)" ] && [ -d "$(INSTALLDIR_PHOTOS)" ] && \
- $(SUDO) rsync $(INSTALLFLAGS) $(OUTPUTDIR_PHOTOS) $(INSTALLDIR_PHOTOS)/
+ [ ! -d "$(OUTPUTDIR_PHOTOS)" ] && { echo "Nothing to do for: install-photos"; \
+ exit 0; } || [ -d "$(INSTALLDIR_PHOTOS)" ] && \
+ $(SUDO) rsync $(INSTALLFLAGS) $(OUTPUTDIR_PHOTOS)/ $(INSTALLDIR_PHOTOS)
-install: install-html install-theme install-photos
+install-videos:
+ [ ! -d "$(OUTPUTDIR_VIDEOS)" ] && { echo "Nothing to do for: install-videos"; \
+ exit 0; } || [ -d "$(INSTALLDIR_VIDEOS)" ] && \
+ $(SUDO) rsync $(INSTALLFLAGS) $(OUTPUTDIR_VIDEOS)/ $(INSTALLDIR_VIDEOS)
+
+install: install-html install-theme install-photos install-videos
.PHONY: html help clean clean-html clean-theme clean-photos regenerate serve serve-global devserver stopserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github install install-html install-theme install-photos