diff options
| author | Robert Shaw | 2010-03-11 17:17:46 -0800 |
|---|---|---|
| committer | Adam Vandenberg | 2010-03-29 17:26:08 -0700 |
| commit | 2749c8cffca3da0f4fdb57b482ba116ed8ad67bc (patch) | |
| tree | 3a99f6b2bab60bab1a9ac284b0cda589cd38aa48 /Library/Formula | |
| parent | 80700f9954cd1d1a91658feffdc7a629e529ad7c (diff) | |
| download | homebrew-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.rb | 87 |
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 |
