summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames An2015-06-11 14:25:55 -0400
committerJames An2015-06-11 14:25:55 -0400
commitd804950fe5cf42fcf2e7aa8e01b47f13647b4947 (patch)
tree7abdd8e11829689df6545d8db5906d983803097f
parentbcc9166c46492f57638d2d23b7d4a03bcec3d4d4 (diff)
downloadaur-d804950fe5cf42fcf2e7aa8e01b47f13647b4947.tar.gz
Updated ruby-mailcatcher and added to it systemd unit files to run as a socket-activated systemd service.
-rw-r--r--.SRCINFO14
-rw-r--r--PKGBUILD32
-rw-r--r--mailcatcher-http.socket9
-rw-r--r--mailcatcher-http@.service9
-rw-r--r--mailcatcher-smtp.socket9
-rw-r--r--mailcatcher-smtp@.service9
-rw-r--r--mailcatcher.service10
-rw-r--r--ruby-mailcatcher.install11
8 files changed, 96 insertions, 7 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ff0b00181b77..4d349cf7800a 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index e44405c532b9..7865ae1135b0 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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
+}