commit fa3eb288476368738f5b943dc7e42b005bd9c08d
Author: askiiart <dev@askiiart.net>
Date:   Thu Mar 6 13:30:17 2025 -0600

    initial commit

diff --git a/.drone.yml b/.drone.yml
new file mode 100644
index 0000000..e3944ce
--- /dev/null
+++ b/.drone.yml
@@ -0,0 +1,26 @@
+kind: pipeline
+type: docker
+name: default
+
+environment:
+  RPM_PACKAGER_NAME: 'askiiart'
+  RPM_PACKAGER_EMAIL: 'rpm@askiiart.net'
+
+steps:
+  - name: Build cavif fedora package
+    image: fedora
+    commands:
+      - '/drone/src/run.sh'
+    volumes:
+      - name: program-archives
+        path: /compiled
+      - name: fedora-repo
+        path: /repo
+
+volumes:
+  - name: program-archives
+    host:
+      path: /mnt/user/files/repos/archives/
+  - name: fedora-repo
+    host:
+      path: /mnt/user/files/repos/fedora/x86_64/
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b430908
--- /dev/null
+++ b/README.md
@@ -0,0 +1,10 @@
+# Cavif (fedora)
+
+TODO: Add proper changelog updates
+
+## Environment variables
+
+**REQUIRED**
+
+- RPM packager name - `RPM_PACKAGER_NAME`
+- RPM packager email - `RPM_PACKAGER_EMAIL`
diff --git a/cavif.spec b/cavif.spec
new file mode 100644
index 0000000..41e6a9a
--- /dev/null
+++ b/cavif.spec
@@ -0,0 +1,29 @@
+Name:           cavif
+Version:        6.6.6
+Release:        %autorelease
+Summary:        AVIF image creator in pure Rust 
+
+License:        BSD-3-Clause
+URL:            https://github.com/kornelski/cavif-rs
+
+BuildRequires:  tar zstd
+
+%description
+An AVIF image creator in pure Rust
+
+%prep
+mkdir ./cavif/
+cd ./cavif/
+tar --zstd -xf ${COMPILED_DIR:-/compiled}/cavif/cavif.tar.zst
+
+%install
+cd ./cavif/
+mkdir -p %{buildroot}%{_bindir}
+install -Dm755 ./cavif %{buildroot}%{_bindir}/cavif
+
+%files
+%{_bindir}/cavif
+
+%changelog
+* DATE_HERE RPM_PACKAGER_NAME <RPM_PACKAGER_EMAIL>
+- CHANGELOG_MESSAGE_HERE
\ No newline at end of file
diff --git a/run.sh b/run.sh
new file mode 100644
index 0000000..530e820
--- /dev/null
+++ b/run.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+built_dir=${COMPILED_DIR:-/compiled}/cavif
+version=$(cat $built_dir/version)
+repo_dir=${REPO_DIR:-/repo}
+
+# skip if already up-to-date
+# TODO: use the repo instead and check the version with dnf
+# yeah this is bad; see also the cavif-aaaaaa thing below
+touch cavif-tmp
+if $(ls $repo_dir/cavif-* | grep -q "$version"); then
+    rm cavif-tmp
+    echo "package is already up to date, exiting"
+    exit
+fi
+rm cavif-tmp
+
+# prep
+dnf install fedora-packager rpmdevtools createrepo_c -y
+rpmdev-setuptree
+
+# update spec file
+sed -i "s/Version:.*/Version:        $version/g" cavif.spec
+sed -i "s/DATE_HERE/$(date '+%a %b %d %Y')/g" cavif.spec
+sed -i "s/CHANGELOG_MESSAGE_HERE/Update to $version/g" cavif.spec
+sed -i "s/RPM_PACKAGER_NAME/$RPM_PACKAGER_NAME/g" cavif.spec
+sed -i "s/RPM_PACKAGER_EMAIL/$RPM_PACKAGER_EMAIL/g" cavif.spec
+
+# build package and move to the repo
+rpmbuild -bb cavif.spec
+mv ~/rpmbuild/RPMS/x86_64/cavif-$version-* $repo_dir/
+
+# remove old versions
+cd $repo_dir
+# this is the easiest way to make sure it doesn't just fail because no cavif-* exists
+# (which only happens on first run)
+touch cavif-aaaaaa.rpm
+rm $(ls cavif-*.rpm | sort --version-sort | sed '$d')
+rm cavif-aaaaaa.rpm
+
+# update repo
+createrepo_c .
+
+echo "package is at $repo_dir/$(ls $repo_dir/cavif-*.rpm)"