diff --git a/.woodpecker.yml b/.woodpecker.yml
index 400b2f2..cfba4de 100644
--- a/.woodpecker.yml
+++ b/.woodpecker.yml
@@ -10,6 +10,14 @@ pipeline:
commands:
- mvn clean compile assembly:single
+ package:
+ image: maven:3-jdk-11
+ commands:
+ - apt update && apt install -y rpm
+ - mvn clean compile package
+ when:
+ event: tag
+
gitea_release:
image: plugins/gitea-release
settings:
@@ -18,6 +26,8 @@ pipeline:
base_url: https://git.metaunix.net
title: "${CI_COMMIT_TAG}"
files:
- - target/Dragoon-*.jar
+ - target/dragoon-*.jar
+ - target/dragoon-*.deb
+ - target/rpm/dragoon/RPMS/noarch/dragoon-*.rpm
when:
event: tag
diff --git a/pom.xml b/pom.xml
index ab0aab8..bb6877b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,11 +5,35 @@
4.0.0
tech.bitgoblin
- Dragoon
+ dragoon
0.3.1
Dragoon
https://www.bitgoblin.tech
+ Automated video transcoder service.
+ 2022
+
+
+ Bit Goblin
+ https://www.bitgoblin.tech
+
+
+
+
+ gballantine
+ Gregory Ballantine
+ gballantine@bitgoblin.tech
+
+
+
+
+
+ BSD
+ https://opensource.org/licenses/BSD-2-Clause
+ repo
+ Simplified BSD license.
+
+
UTF-8
@@ -42,81 +66,192 @@
-
-
-
-
- maven-clean-plugin
- 3.1.0
-
-
-
- maven-resources-plugin
- 3.0.2
-
-
- maven-compiler-plugin
- 3.8.0
-
-
- maven-surefire-plugin
- 2.22.1
-
-
- maven-jar-plugin
- 3.0.2
-
-
-
- **/log4j.properties
-
-
-
-
- tech.bitgoblin.App
-
-
-
-
-
- maven-assembly-plugin
-
-
- package
-
- single
-
-
-
-
-
-
- tech.bitgoblin.App
-
-
-
- jar-with-dependencies
-
-
-
-
- maven-install-plugin
- 2.5.2
-
-
- maven-deploy-plugin
- 2.8.2
-
-
-
- maven-site-plugin
- 3.7.1
-
-
- maven-project-info-reports-plugin
- 3.0.0
-
-
-
+
+
+
+ maven-clean-plugin
+ 3.1.0
+
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ maven-compiler-plugin
+ 3.8.0
+
+
+ maven-surefire-plugin
+ 2.22.1
+
+
+ maven-jar-plugin
+ 3.0.2
+
+
+
+ **/log4j.properties
+
+
+
+
+ tech.bitgoblin.App
+
+
+
+
+
+ maven-assembly-plugin
+
+
+ package
+
+ single
+
+
+
+
+
+
+ tech.bitgoblin.App
+
+
+
+ jar-with-dependencies
+
+
+
+
+ com.aerse.maven
+ deb-maven-plugin
+ 1.16
+
+
+ package
+ package
+
+ package
+
+
+
+
+ dragoon
+ dragoon
+ ${project.basedir}/src/build/deb
+ /opt
+
+
+
+
+
+ false
+ false
+
+
+
+ /
+
+
+
+ /opt/dragoon/dragoon.jar
+
+
+
+
+
+ org.codehaus.mojo
+ rpm-maven-plugin
+ 2.2.0
+
+
+ generate-rpm
+
+ rpm
+
+
+
+
+ BSD 2-Clause
+ Applications/Multimedia
+ src/main/resources/icon.gif
+ Bit Goblin
+ /opt
+ ${project.basedir}/src/build/changelog.txt
+ linux
+
+
+ /opt/dragoon
+ 755
+ dragoon
+ dragoon
+
+
+ /opt/dragoon/dragoon.jar
+ 755
+ dragoon
+ dragoon
+
+
+
+
+
+ /etc/dragoon
+ true
+ 755
+ dragoon
+ dragoon
+
+
+
+
+
+ /etc/systemd/system/dragoon.service
+ 644
+ root
+ root
+
+
+
+
+
+
+ java-11-openjdk
+ ffmpeg
+
+
+
+
+
+ src/build/scripts/postinstall.sh
+ utf-8
+ true
+
+
+
+
+ maven-install-plugin
+ 2.5.2
+
+
+ maven-deploy-plugin
+ 2.8.2
+
+
+
+ maven-site-plugin
+ 3.7.1
+
+
+ maven-project-info-reports-plugin
+ 3.0.0
+
+
diff --git a/src/build/changelog.txt b/src/build/changelog.txt
new file mode 100644
index 0000000..d735876
--- /dev/null
+++ b/src/build/changelog.txt
@@ -0,0 +1 @@
+# Check https://git.metaunix.net/bitgoblin/dragoon/releases for the current changelog
\ No newline at end of file
diff --git a/src/build/deb/etc/dragoon/config.example.toml b/src/build/deb/etc/dragoon/config.example.toml
new file mode 100644
index 0000000..d7c871c
--- /dev/null
+++ b/src/build/deb/etc/dragoon/config.example.toml
@@ -0,0 +1,8 @@
+# This example transcodes footage to DNxHD 1080p60 for use in video editors like DaVinci Resolve.
+[transcoder]
+repo_path = '~/videos' # location of the videos to transcode
+video_format = 'mov' # video container format
+video_codec = 'dnxhd' # video codec to use
+video_parameters = 'scale=1920x1080,fps=60,format=yuv422p' # video extra format parameters flag - this will be broken later into separate attributes
+video_profile = 'dnxhr_hq' # DNxHD has multiple presets for various video qualities
+audio_codec = 'pcm_s16le' # audio codec to use
diff --git a/src/build/deb/etc/systemd/system/dragoon.service b/src/build/deb/etc/systemd/system/dragoon.service
new file mode 100644
index 0000000..2b7bbea
--- /dev/null
+++ b/src/build/deb/etc/systemd/system/dragoon.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Dragoon video transcoder service
+
+[Service]
+User=dragoon
+Group=dragoon
+ExecStart=/usr/bin/java -jar '/opt/dragoon/dragoon.jar'
+SuccessExitStatus=143
+
+[Install]
+WantedBy=multi-user.target
diff --git a/src/build/scripts/postinstall.sh b/src/build/scripts/postinstall.sh
new file mode 100644
index 0000000..b1d2c4f
--- /dev/null
+++ b/src/build/scripts/postinstall.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+GETENT_USER=$(getent passwd dragoon)
+GETENT_GROUP=$(getent group dragoon)
+
+# Create the dragoon user if it doesn't already exist
+if [ "$GETENT_USER" = "" ]; then
+ useradd -r dragoon
+else
+ echo "The 'dragoon' user already exists, skipping creation."
+fi
+
+# Create the dragoon group if it doesn't already exist
+if [ "$GETENT_GROUP" = "" ]; then
+ groupadd dragoon
+ usermod -aG dragoon dragoon
+else
+ echo "The 'dragoon' group already exists, skipping creation."
+fi
+
+# Change the directory ownership of /opt and /etc
+chown -R dragoon:dragoon /etc/dragoon
+chown -R dragoon:dragoon /opt/dragoon
diff --git a/src/main/resources/icon.gif b/src/main/resources/icon.gif
new file mode 100644
index 0000000..1b8ac52
Binary files /dev/null and b/src/main/resources/icon.gif differ