From 34d87ef16da7e99ca516ff66f188f2e3a1744719 Mon Sep 17 00:00:00 2001 From: Ash Moran Date: Mon, 30 Sep 2013 10:45:55 +0100 Subject: fuseski: more idiomatic install Closes #24124. Signed-off-by: Adam Vandenberg --- Library/Formula/fuseki.rb | 86 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 73 insertions(+), 13 deletions(-) (limited to 'Library/Formula') diff --git a/Library/Formula/fuseki.rb b/Library/Formula/fuseki.rb index 576255872..0eec18d3d 100644 --- a/Library/Formula/fuseki.rb +++ b/Library/Formula/fuseki.rb @@ -8,33 +8,93 @@ class Fuseki < Formula def install # Remove windows files - rm_f Dir["*.bat"] + rm_f 'fuseki-server.bat' # Remove init.d script to avoid confusion rm 'fuseki' # Write the installation path into the wrapper shell script - inreplace 'fuseki-server', /export FUSEKI_HOME=.+/, "export FUSEKI_HOME=\"#{prefix}\"" + inreplace 'fuseki-server' do |s| + s.gsub! /export FUSEKI_HOME=.+/, + %'export FUSEKI_HOME="#{libexec}"' + s.gsub! /^exec java\s+(.+)/, + "exec java -Dlog4j.configuration=file:#{etc/'fuseki.log4j.properties'} \\1" + end - # Move binaries into place - bin.install 'fuseki-server' - bin.install Dir["s-*"] + # Use file logging instead of STDOUT logging + inreplace 'log4j.properties' do |s| + s.gsub! /^log4j\.rootLogger=.+/, '### \0' + s.gsub! /^log4j\.appender\.stdlog.+/, '### \0' + s.gsub! /^## (log4j\.rootLogger=.+)/, '\1' + s.gsub! /^## (log4j\.appender\.FusekiFileLog.+)/, '\1' + s.gsub! /^log4j.appender.FusekiFileLog.File=.+/, + "log4j.appender.FusekiFileLog.File=#{(var/'log/fuseki/fuseki.log')}" + end + etc.install 'log4j.properties' => 'fuseki.log4j.properties' - # Copy across everything else - prefix.install Dir["*"] + # Install and symlink wrapper binaries into place + libexec.install 'fuseki-server' + bins = ['s-delete', 's-get', 's-head', 's-post', 's-put', 's-query', 's-update', 's-update-form'] + chmod 0755, bins + libexec.install bins + bin.install_symlink Dir["#{libexec}/*"] + # Non-symlinked binaries and application files + libexec.install 'fuseki-server.jar', 'pages' + + etc.install 'config.ttl' => 'fuseki.ttl' + + # Create a location for dataset and log files, + # in case we're being used in LaunchAgent mode + (var/'fuseki').mkpath + (var/'log/fuseki').mkpath + + # Install example configs + prefix.install 'config-examples.ttl', 'config-inf-tdb.ttl', 'config-tdb-text.ttl', 'config-tdb.ttl' + + # Install example data + prefix.install 'Data' + + # Install documentation + prefix.install 'DEPENDENCIES', 'LICENSE', 'NOTICE', 'ReleaseNotes.txt' end def caveats; <<-EOS.undent Quick-start guide: - 1. Start the server: - fuseki-server --update --mem /ds + * See the Fuseki documentation for instructions on using an in-memory database: + http://jena.apache.org/documentation/serving_data/#fuseki-server-starting-with-an-empty-dataset + + * Running from the LaunchAgent is different the standard configuration and + uses traditional Unix paths: please inspect the settings here first: + #{etc}/fuseki.ttl - 2. Open webadmin: - open http://localhost:3030/ + NOTE: Currently the logging configuration file will be overwritten + if you re-install or upgrade Fuseki. This file is located here: + #{etc}/'fuseki.log4j.properties' + EOS + end - 3. Import some sample data into the store: - s-put http://localhost:3030/ds/data default #{prefix}/Data/books.ttl + def plist; <<-EOS.undent + + + + + Label + #{plist_name} + RunAtLoad + + KeepAlive + + ProgramArguments + + #{opt_prefix}/bin/fuseki-server + --config + /usr/local/etc/fuseki.ttl + + WorkingDirectory + #{HOMEBREW_PREFIX} + + EOS end -- cgit v1.2.3