diff options
author | Janne Heß | 2016-10-06 19:16:33 +0200 |
---|---|---|
committer | Janne Heß | 2016-10-06 19:35:15 +0200 |
commit | 94d7a50433d26d0127ee262a28ede3287e050afe (patch) | |
tree | e282057fd29d21320f6abde2ae5d040e3f457b00 /PKGBUILD | |
download | aur-94d7a50433d26d0127ee262a28ede3287e050afe.tar.gz |
Initial commit of the asciinema server
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..cff4bc0d1656 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,109 @@ +# Maintainer: Janne Heß <jannehess@gmail.com> + +pkgname=asciinema-server-git +pkgver=0.0.0 +pkgrel=1 +pkgdesc='asciinema.org web app' +arch=('i386' 'x86_64') +url='https://asciinema.org/' +license=('AGPL3') +depends=('ruby' 'ruby-bundler' 'phantomjs' 'postgresql-libs' 'libtsm-asciinema' 'redis' 'smtp-server') +makepdepends=('libxslt' 'nodejs') +optdepends=('postgresql: database backend') +provides=('asciinema-server') +conflicts=('asciinema-server') +backup=('etc/webapps/asciinema/database.yml' + 'etc/webapps/asciinema/asciinema.yml' + 'etc/logrotate.d/asciinema' + 'etc/conf.d/asciinema') +install="${pkgname}.install" +source=('git://github.com/asciinema/asciinema.org' + 'asciinema.logrotate' + 'asciinema-unicorn.service' + 'asciinema-sidekiq.service' + 'asciinema.conf' + 'database.yml' + 'asciinema.yml') +sha512sums=('SKIP' + 'feac61a6458072fdef9e19b5e636484e31e6cc77daefd650403852f48bf0773d7ca7eb0af343066c2d733af1c32e164043bc78cf1a2dfb4ec271d4488a53b3da' + '0b3be0a6326741f82924160d39002a8780f8f90521e8203fe595cc6b8243867eec6a00319d00fa62a46c99de12beb38c14ceae1e4ffa4f86a55d063e63250847' + '801313fda2eab446fa569e11e33f0ab9b84f2fe0678bbf0b74e19eea1250eb7457ed7cf3163fc10b713767962283896b8360df9964013f644012d1c8705a4b81' + '804add7ea903c746309577450ea6fe3eaecab57a9beb79be1953dee34ce0957daac43fa7a053be7daf1ab32178944dcb9a861b4d6da494f0d559d9f265b88446' + '70c547f62829707f8f7340c10b6e83fb91874cd8fa535b8a318b4fc3019f3deddb820a6522278a41bc09f28295a0427b4361bbb726260afe4626bf1a8582da69' + 'b3f6225faabb2632e961489e399204392d532d197517de41b16e633257040ec0f0aa49434ffba672943cf65670041a94c8aec876ca93ba95b0dbfbc55225b314') + +_srcdir='asciinema.org' +_datadir='/usr/share/webapps/asciinema' +_etcdir='/etc/webapps/asciinema' + +prepare() { + cd "${srcdir}/${_srcdir}" + + # Patch gem versions as arch has a pretty new ruby + sed -i \ + -e 's/eventmachine (1.0.3)/eventmachine (1.2.0)/g' \ + -e 's/kgio .*$/kgio (2.10.0)/g' \ + -e 's/raindrops .*$/raindrops (0.17.0)/g' \ + Gemfile.lock + + # Configure sidekiq + echo ':pidfile: /run/asciinema/sidekiq.pid' >> config/sidekiq.yml + echo ':logfile: /var/log/asciinema/sidekiq_production.log' >> config/sidekiq.yml +} + +build() { + cd "${srcdir}/${_srcdir}" + + msg "Fetching bundled gems..." + bundle install -j$(nproc) --no-cache --deployment --without development test + + msg "Precompiling assets..." + # We'll temporarily stick this in here so we can build the assets + cp config/database.yml.example config/database.yml + bundle exec rake assets:precompile RAILS_ENV=production + # After building assets, clean this up again + rm config/database.yml + + # Build terminal executable + cd src + make all + cd .. +} + +package() { + cd "${srcdir}/${_srcdir}" + + install -d "${pkgdir}/usr/share/webapps" + + # Main installation + cp -r "${srcdir}/${_srcdir}" "${pkgdir}/${_datadir}" + chmod 755 "${pkgdir}/${_datadir}" + rm -r "${pkgdir}/${_datadir}/tmp" + ln -s "/run/asciinema/tmp" "${pkgdir}/${_datadir}/tmp" + + # Uploads directory + install -dm600 "${pkgdir}/var/lib/asciinema/uploads" + rm -r "${pkgdir}/${_datadir}/uploads" + ln -s /var/lib/asciinema/uploads "${pkgdir}/${_datadir}/uploads" + + # Config + install -dm755 "${pkgdir}${_etcdir}" + install -Dm644 "${srcdir}/database.yml" "${pkgdir}/${_etcdir}/database.yml" + install -Dm644 "${srcdir}/asciinema.yml" "${pkgdir}/${_etcdir}/asciinema.yml" + ln -s "${_etcdir}/database.yml" "${pkgdir}/${_datadir}/config/database.yml" + ln -s "${_etcdir}/asciinema.yml" "${pkgdir}/${_datadir}/config/asciinema.yml" + + # Log + mkdir -p "${pkgdir}/var/log/asciinema" + rm -r "${pkgdir}/${_datadir}/log" + ln -s '/var/log/asciinema' "${pkgdir}/${_datadir}/log" + install -Dm644 "${srcdir}/asciinema.logrotate" "${pkgdir}/etc/logrotate.d/asciinema" + + # systemd services + for unit in unicorn sidekiq; do + install -Dm644 "${srcdir}/asciinema-${unit}.service" "${pkgdir}/usr/lib/systemd/system/asciinema-${unit}.service" + done + + # conf.d + install -Dm644 "${srcdir}/asciinema.conf" "${pkgdir}/etc/conf.d/asciinema" +} |