aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula
diff options
context:
space:
mode:
authorRobert Shaw2010-03-11 17:17:46 -0800
committerAdam Vandenberg2010-03-29 17:26:08 -0700
commit2749c8cffca3da0f4fdb57b482ba116ed8ad67bc (patch)
tree3a99f6b2bab60bab1a9ac284b0cda589cd38aa48 /Library/Formula
parent80700f9954cd1d1a91658feffdc7a629e529ad7c (diff)
downloadhomebrew-2749c8cffca3da0f4fdb57b482ba116ed8ad67bc.tar.bz2
New formula: openvpn
Formula for OpenVPN version 2.1.1 Recommended dependency on LZO, but not required. Signed-off-by: Adam Vandenberg <flangy@gmail.com> Tweaked path concatenation.
Diffstat (limited to 'Library/Formula')
-rw-r--r--Library/Formula/openvpn.rb87
1 files changed, 87 insertions, 0 deletions
diff --git a/Library/Formula/openvpn.rb b/Library/Formula/openvpn.rb
new file mode 100644
index 000000000..9336ff80f
--- /dev/null
+++ b/Library/Formula/openvpn.rb
@@ -0,0 +1,87 @@
+require 'formula'
+
+class Openvpn <Formula
+ url 'http://openvpn.net/release/openvpn-2.1.1.tar.gz'
+ homepage 'http://openvpn.net/'
+ md5 'b273ed2b5ec8616fb9834cde8634bce7'
+
+ depends_on 'lzo' => :recommended
+
+ def skip_clean? path
+ path == etc or path == var
+ end
+
+ def install
+ # Build and install binary
+ system "./configure", "--prefix=#{prefix}", "--disable-debug", "--disable-dependency-tracking"
+ system "make install"
+
+ # Adjust sample file paths
+ inreplace ["sample-config-files/openvpn-startup.sh", "sample-scripts/openvpn.init"] do |s|
+ s.gsub! "/etc/openvpn", (etc + 'openvpn')
+ s.gsub! "/var/run/openvpn", (var + 'run/openvpn')
+ end
+
+ # Install sample files
+ Dir['sample-*'].each do |d|
+ (share + 'doc/openvpn' + d).install Dir[d+'/*']
+ end
+
+ # Create etc & var paths
+ (etc + 'openvpn').mkpath
+ (var + 'run/openvpn').mkpath
+
+ # Write the launchd script
+ (prefix + 'org.openvpn.plist').write startup_plist
+ end
+
+ def caveats; <<-EOS
+For OpenVPN to work as a server, you will need to do the following:
+
+1) Create configuration file in #{etc}/openvpn, samples can be
+ found in #{share}/doc/openvpn
+
+2) Install the launchd item in /Library/LaunchDaemons, like so:
+
+ sudo cp -vf #{prefix}/org.openvpn.plist /Library/LaunchDaemons/.
+ sudo chown -v root:wheel /Library/LaunchDaemons/org.openvpn.plist
+
+3) Start the daemon using:
+
+ sudo launchctl load /Library/LaunchDaemons/org.openvpn.plist
+
+Next boot of system will automatically start OpenVPN.
+EOS
+ end
+
+ def startup_plist
+ return <<-EOS
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
+<plist version="1.0">
+<dict>
+ <key>Label</key>
+ <string>org.openvpn</string>
+ <key>ProgramArguments</key>
+ <array>
+ <string>#{sbin}/openvpn</string>
+ <string>--config</string>
+ <string>#{etc}/openvpn/openvpn.conf</string>
+ </array>
+ <key>OnDemand</key>
+ <false/>
+ <key>RunAtLoad</key>
+ <true/>
+ <key>TimeOut</key>
+ <integer>90</integer>
+ <key>WatchPaths</key>
+ <array>
+ <string>#{etc}/openvpn</string>
+ </array>
+ <key>WorkingDirectory</key>
+ <string>#{etc}/openvpn</string>
+</dict>
+</plist>
+EOS
+ end
+end