#!/bin/bash

set -e

VERSION=$(jq -r ".version" < package.json)
DESCRIPTION=$(jq -r ".description" < package.json)

mkdir -p ppa

for arch in amd64 arm64; do
  if [ "$arch" = "amd64" ]; then
    binary="bin/linux-amd64/gitlab-ci-local"
  else
    binary="bin/linux-arm64/gitlab-ci-local"
  fi

  rm -rf "bin/gitlab-ci-local_${VERSION}_${arch}"
  mkdir -p "bin/gitlab-ci-local_${VERSION}_${arch}/DEBIAN/"
  cat << EOF > "bin/gitlab-ci-local_${VERSION}_${arch}/DEBIAN/control"
Name: gitlab-ci-local
Package: gitlab-ci-local
Version: ${VERSION}
Architecture: ${arch}
Author: Mads Jon Nielsen <madsjon@gmail.com>
Maintainer: Mads Jon Nielsen <madsjon@gmail.com>
Description: ${DESCRIPTION}
Homepage: https://github.com/firecow/gitlab-ci-local
Website: https://github.com/firecow/gitlab-ci-local
Depends: rsync
EOF

  mkdir -p "bin/gitlab-ci-local_${VERSION}_${arch}/usr/local/bin/"
  cp "$binary" "bin/gitlab-ci-local_${VERSION}_${arch}/usr/local/bin/"

  (cd bin/ && (dpkg-deb --root-owner-group --build "gitlab-ci-local_${VERSION}_${arch}" || rm "gitlab-ci-local_${VERSION}_${arch}.deb"))
  mv "bin/gitlab-ci-local_${VERSION}_${arch}.deb" "ppa/"
done

# Packages & Packages.gz
(cd ppa && dpkg-scanpackages --multiversion . > Packages)
(cd ppa && gzip -k -f Packages)

# Release, Release.gpg & InRelease
(cd ppa && apt-ftparchive release . > Release)
(cd ppa && gpg --default-key "madsjon@gmail.com" -abs -o - Release > Release.gpg)
(cd ppa && gpg --default-key "madsjon@gmail.com" --clearsign -o - Release > InRelease)
