summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 38543bee7f38e91df71c94e46a62e9ec5c63665d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# Maintainer: txtsd <aur.archlinux@ihavea.quest>
# Maintainer: Donald Webster <fryfrog@gmail.com>

pkgname=ombi
_pkgname=Ombi
pkgver=4.44.1
pkgrel=2
pkgdesc='A media request tool that automatically syncs with your media servers'
arch=(x86_64 aarch64 armv7h)
url='https://ombi.io'
license=('GPL-2.0-or-later')
depends=(
  aspnet-runtime-8.0
  gcc-libs
  glibc
)
makedepends=(dotnet-sdk-8.0 yarn)
optdepends=(
  'jellyfin-server: The Free Software Media System'
  'plex-media-server: Plex Media Server'
  'emby-server: The open media solution'
  'sonarr: Smart PVR for newsgroup and torrent users'
  'radarr: Movie organizer/manager for usenet and torrent users'
)
install=ombi.install
source=(
  "${pkgname}-${pkgver}::https://github.com/Ombi-app/Ombi/archive/refs/tags/v${pkgver}.tar.gz"
  ombi.service
  ombi.sysusers
  ombi.tmpfiles
  ombi.install
)
sha256sums=('21e13cb3b183b5c543374b100fd6c6700e2112d412e9a0f666a8cd92f7b76a1a'
            '24f1dbe25589719e831d512624ceeb1289a7037002b74d9473719c8564a8950f'
            'd78dadc24ddb11e3ef07269a0a1c6dcf8ca8d32d39d152eaa9bffab6c32dba36'
            '71fe8ec1810d7ab91b30d8e07b9edc6f97827034935404124cc6e428bbc7c5bf'
            '9b1514478af3e13284214495066e6233318c25e44929947e66dcf299daa7c23c')

case ${CARCH} in
  x86_64) _CARCH='x64' ;;
  aarch64) _CARCH='arm64' ;;
  armv7h) _CARCH='arm' ;;
esac

_framework='net8.0'
_runtime="linux-${_CARCH}"
_output='bin'
_artifacts="${_output}/${_framework}/${_runtime}/publish"

prepare() {
  cd "${_pkgname}-${pkgver}"

  # Install dotnet-setversion
  if [[ ! -f /tmp/dotnet-setversion/setversion ]]; then
    dotnet tool install --tool-path /tmp/dotnet-setversion dotnet-setversion
  fi

  # Prepare frontend
  yarn --cwd src/Ombi/ClientApp install --immutable --immutable-cache --check-cache
}

build() {
  cd "${_pkgname}-${pkgver}"

  # Restore and build backend
  export DOTNET_CLI_TELEMETRY_OPTOUT=1
  export DOTNET_NOLOGO=1
  export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
  /tmp/dotnet-setversion/setversion -r ${pkgver}
  dotnet publish "src/${_pkgname}" \
    --framework "${_framework}" \
    --runtime ${_runtime} \
    --no-self-contained \
    --configuration Release \
    --output build

  # Build frontend
  export NODE_ENV=production
  yarn --cwd src/Ombi/ClientApp run build
}

package() {
  cd "${_pkgname}-${pkgver}/build"

  # appsettings.json
  install -Dm644 appsettings.json "${pkgdir}/var/lib/ombi/appsettings.json"

  # Copy backend
  install -dm755 "${pkgdir}/usr/lib/ombi/ClientApp/dist/"
  cp -dpr --no-preserve=ownership * "${pkgdir}/usr/lib/ombi"
  cd ../../

  # Copy frontend
  cp -dpr --no-preserve=ownership "${_pkgname}-${pkgver}/src/${_pkgname}/ClientApp/dist" "${pkgdir}/usr/lib/ombi/ClientApp"

  # Install systemd service files
  install -Dm644 "ombi.service" "${pkgdir}/usr/lib/systemd/system/ombi.service"
  install -Dm644 "ombi.sysusers" "${pkgdir}/usr/lib/sysusers.d/ombi.conf"
  install -Dm644 "ombi.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/ombi.conf"
}