diff options
author | James An | 2015-06-11 14:25:55 -0400 |
---|---|---|
committer | James An | 2015-06-11 14:25:55 -0400 |
commit | d804950fe5cf42fcf2e7aa8e01b47f13647b4947 (patch) | |
tree | 7abdd8e11829689df6545d8db5906d983803097f | |
parent | bcc9166c46492f57638d2d23b7d4a03bcec3d4d4 (diff) | |
download | aur-d804950fe5cf42fcf2e7aa8e01b47f13647b4947.tar.gz |
Updated ruby-mailcatcher and added to it systemd unit files to run as a socket-activated systemd service.
-rw-r--r-- | .SRCINFO | 14 | ||||
-rw-r--r-- | PKGBUILD | 32 | ||||
-rw-r--r-- | mailcatcher-http.socket | 9 | ||||
-rw-r--r-- | mailcatcher-http@.service | 9 | ||||
-rw-r--r-- | mailcatcher-smtp.socket | 9 | ||||
-rw-r--r-- | mailcatcher-smtp@.service | 9 | ||||
-rw-r--r-- | mailcatcher.service | 10 | ||||
-rw-r--r-- | ruby-mailcatcher.install | 11 |
8 files changed, 96 insertions, 7 deletions
@@ -1,8 +1,9 @@ pkgbase = ruby-mailcatcher pkgdesc = Catches mail and serves it through a dream. pkgver = 0.6.1 - pkgrel = 2 + pkgrel = 3 url = http://mailcatcher.me + install = ruby-mailcatcher.install arch = any license = MIT makedepends = rubygems @@ -17,8 +18,19 @@ pkgbase = ruby-mailcatcher provides = mailcatcher conflicts = mailcatcher noextract = mailcatcher-0.6.1.gem + options = !emptydirs source = http://gems.rubyforge.org/gems/mailcatcher-0.6.1.gem + source = mailcatcher.service + source = mailcatcher-http.socket + source = mailcatcher-http@.service + source = mailcatcher-smtp.socket + source = mailcatcher-smtp@.service md5sums = bdeb5656e0931d1b211b52aa0f9e31f5 + md5sums = 877e07e9d8a2ddea3dd1d27644e77565 + md5sums = 26f37032d32b33b02388778d1d41601f + md5sums = 2b9e475d3ba8d144b5fbf6f32162e3ac + md5sums = 5d19076f812ba58be414955a7880d9d2 + md5sums = 0f7f88dd6c36fa69ea6635f27aa7d29b pkgname = ruby-mailcatcher @@ -4,7 +4,7 @@ _pkgname=mailcatcher pkgname=ruby-$_pkgname pkgver=0.6.1 -pkgrel=2 +pkgrel=3 pkgdesc='Catches mail and serves it through a dream.' arch=('any') url="http://$_pkgname.me" @@ -13,9 +13,23 @@ depends=('ruby-activesupport' 'ruby-eventmachine' 'ruby-haml' 'ruby-mail' 'ruby- makedepends=('rubygems') provides=("$_pkgname") conflicts=("$_pkgname") -source=(http://gems.rubyforge.org/gems/$_pkgname-$pkgver.gem) -md5sums=('bdeb5656e0931d1b211b52aa0f9e31f5') -noextract=($_pkgname-$pkgver.gem) +options=(!emptydirs) +install="$pkgname.install" +source=( + "http://gems.rubyforge.org/gems/$_pkgname-$pkgver.gem" + "$_pkgname.service" + "$_pkgname-http.socket" + "$_pkgname-http@.service" + "$_pkgname-smtp.socket" + "$_pkgname-smtp@.service" +) +md5sums=('bdeb5656e0931d1b211b52aa0f9e31f5' + '877e07e9d8a2ddea3dd1d27644e77565' + '26f37032d32b33b02388778d1d41601f' + '2b9e475d3ba8d144b5fbf6f32162e3ac' + '5d19076f812ba58be414955a7880d9d2' + '0f7f88dd6c36fa69ea6635f27aa7d29b') +noextract=("$_pkgname-$pkgver.gem") package() { # _gemdir is defined inside package() because if ruby[gems] is not installed on @@ -24,6 +38,12 @@ package() { gem install --no-document --no-user-install --ignore-dependencies --install-dir "$pkgdir$_gemdir" --bindir "$pkgdir/usr/bin" "$_pkgname-$pkgver.gem" - sed '/dependency(%q<eventmachine>/{s/"<= 1.0.5", //}' "$pkgdir/usr/lib/ruby/gems/2.2.0/specifications/$_pkgname-$pkgver.gemspec" - sed '/dependency(%q<thin>/{s/"~> 1.5.0", /"~> 1.5"/}' "$pkgdir/usr/lib/ruby/gems/2.2.0/specifications/$_pkgname-$pkgver.gemspec" + # Loosen version-specific dependencies + sed -i '/dependency(%q<eventmachine>/{s/"<= 1.0.5", //}' "$pkgdir/usr/lib/ruby/gems/2.2.0/specifications/$_pkgname-$pkgver.gemspec" + sed -i '/dependency(%q<thin>/{s/"~> 1.5.0"/"~> 1"/}' "$pkgdir/usr/lib/ruby/gems/2.2.0/specifications/$_pkgname-$pkgver.gemspec" + + # Install systemd units + for file in "$_pkgname"{.service,{-http,-smtp}{@.service,.socket}}; do + install -Dm644 "$file" "$pkgdir/usr/lib/systemd/system/$file" + done } diff --git a/mailcatcher-http.socket b/mailcatcher-http.socket new file mode 100644 index 000000000000..b0cd81fc87f2 --- /dev/null +++ b/mailcatcher-http.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Mailcatcher HTTP Activation Socket + +[Socket] +ListenStream=80 +Accept=true + +[Install] +WantedBy=sockets.target diff --git a/mailcatcher-http@.service b/mailcatcher-http@.service new file mode 100644 index 000000000000..21d4a7373021 --- /dev/null +++ b/mailcatcher-http@.service @@ -0,0 +1,9 @@ +[Unit] +Description=Mailcatcher HTTP Mapping Service +Wants=mailcatcher.service +After=network.target mailcatcher.service + +[Service] +ExecStart=/usr/bin/nc localhost 1080 +StandardInput=socket +StandardOutput=socket diff --git a/mailcatcher-smtp.socket b/mailcatcher-smtp.socket new file mode 100644 index 000000000000..c96ca43056d7 --- /dev/null +++ b/mailcatcher-smtp.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Mailcatcher SMTP Activation Socket + +[Socket] +ListenStream=25 +Accept=true + +[Install] +WantedBy=sockets.target diff --git a/mailcatcher-smtp@.service b/mailcatcher-smtp@.service new file mode 100644 index 000000000000..2dd83126344f --- /dev/null +++ b/mailcatcher-smtp@.service @@ -0,0 +1,9 @@ +[Unit] +Description=Mailcatcher SMTP Mapping Service +Wants=mailcatcher.service +After=network.target mailcatcher.service + +[Service] +ExecStart=/usr/bin/nc localhost 1025 +StandardInput=socket +StandardOutput=socket diff --git a/mailcatcher.service b/mailcatcher.service new file mode 100644 index 000000000000..1938f11dcbdd --- /dev/null +++ b/mailcatcher.service @@ -0,0 +1,10 @@ +[Unit] +Description=Mailcatcher Service +After=network.target + +[Service] +ExecStart=/usr/bin/mailcatcher --ip localhost --foreground --verbose +KillSignal=SIGKILL + +[Install] +WantedBy=multi-user.target diff --git a/ruby-mailcatcher.install b/ruby-mailcatcher.install new file mode 100644 index 000000000000..b1cd3360d6cd --- /dev/null +++ b/ruby-mailcatcher.install @@ -0,0 +1,11 @@ +post_install() { + echo ">>> Start mail catcher at boot by enabling the systemd service unit, mailcatcher.service. (The default SMTP and HTTP ports are 1025 and 1080, respectively.)" + echo ">>> Map port 25 (HTTP) and/or port 80 (SMTP) to mail catcher via socket actviation by using mailcatcher-smtp.socket and mailcatcher-http.socket." +} + +pre_remote() { + for unit in mailcatcher{,.service,-{http,smtp}.socket}; do + systemctl --quiet is-active $unit && systemctl stop $unit + systemctl --quiet is-enabled $unit && systemctl disable $unit + done +} |