From 91c4846129e25b4e2af1333aa891ad9bc892795a Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Tue, 22 Sep 2020 19:59:36 +0200 Subject: [PATCH] bundles/mjpg-streamer: introduce --- .../mjpg-streamer/files/mjpg-streamer.service | 14 +++++ bundles/mjpg-streamer/items.py | 56 +++++++++++++++++++ bundles/mjpg-streamer/metadata.py | 15 +++++ 3 files changed, 85 insertions(+) create mode 100644 bundles/mjpg-streamer/files/mjpg-streamer.service create mode 100644 bundles/mjpg-streamer/items.py create mode 100644 bundles/mjpg-streamer/metadata.py diff --git a/bundles/mjpg-streamer/files/mjpg-streamer.service b/bundles/mjpg-streamer/files/mjpg-streamer.service new file mode 100644 index 0000000..8a4007f --- /dev/null +++ b/bundles/mjpg-streamer/files/mjpg-streamer.service @@ -0,0 +1,14 @@ +[Unit] +Description=mjpg-streamer-experimental +After=network.target + +[Service] +User=mjpg-streamer +Group=mjpg-streamer +Environment=LD_LIBRARY_PATH=/opt/mjpg-streamer/git/mjpg-streamer-experimental +ExecStart=/opt/mjpg-streamer/git/mjpg-streamer-experimental/mjpg_streamer -i "${node.metadata['mjpg-streamer']['input-plugin']}" -o "output_http.so -p 22040" +WorkingDirectory=/opt/mjpg-streamer +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/bundles/mjpg-streamer/items.py b/bundles/mjpg-streamer/items.py new file mode 100644 index 0000000..4632c34 --- /dev/null +++ b/bundles/mjpg-streamer/items.py @@ -0,0 +1,56 @@ +directories = { + '/opt/mjpg-streamer/git': { + 'owner': 'mjpg-streamer', + 'group': 'mjpg-streamer', + }, +} + +git_deploy = { + '/opt/mjpg-streamer/git': { + 'repo': 'https://github.com/jacksonliam/mjpg-streamer.git', + 'rev': 'master', + 'triggers': { + 'action:mjpg-streamer_chown', + 'action:mjpg-streamer_build', + }, + }, +} + +actions = { + 'mjpg-streamer_chown': { + 'triggered': True, + 'command': 'chown -R mjpg-streamer:mjpg-streamer /opt/mjpg-streamer/git', + 'needs': { + 'user:mjpg-streamer', + }, + }, + 'mjpg-streamer_build': { + 'triggered': True, + 'command': 'sudo -u mjpg-streamer bash -c "cd /opt/mjpg-streamer/git/mjpg-streamer-experimental && make clean && make"', + 'needs': { + 'pkg_apt:', + 'action:mjpg-streamer_chown', + }, + 'triggers': { + 'svc_systemd:mjpg-streamer:restart', + }, + }, +} + +files = { + '/etc/systemd/system/mjpg-streamer.service': { + 'content_type': 'mako', + 'triggers': { + 'svc_systemd:mjpg-streamer:restart', + }, + }, +} + +svc_systemd = { + 'mjpg-streamer': { + 'needs': { + 'action:mjpg-streamer_build', + 'file:/etc/systemd/system/mjpg-streamer.service', + }, + }, +} diff --git a/bundles/mjpg-streamer/metadata.py b/bundles/mjpg-streamer/metadata.py new file mode 100644 index 0000000..39253db --- /dev/null +++ b/bundles/mjpg-streamer/metadata.py @@ -0,0 +1,15 @@ +defaults = { + 'apt': { + 'packages': { + 'cmake': {}, + 'libjpeg-dev': {}, + 'gcc': {}, + 'g++': {}, + }, + }, + 'users': { + 'mjpg-streamer': { + 'home': '/opt/mjpg-streamer', + }, + }, +}