# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 PortSystem 1.0 PortGroup java 1.0 name metabase version 0.57.7 revision 0 categories databases java maintainers {gmail.com:slashapp @slashapp} openmaintainer homepage https://www.metabase.com description Metabase is an open-source business intelligence platform.\ You can use Metabase to ask questions about your data,\ or embed Metabase in your app to let your customers explore\ their data on their own. long_description ${description} platforms {darwin any} supported_archs noarch license MIT # Metabase JAR files are hosted on their download server with ".x" suffix in version master_sites https://downloads.metabase.com/v${version}.x/ dist_subdir ${name}/${version} set metabase_jar ${name}.jar distfiles ${metabase_jar} checksums rmd160 f764a60a18170fa2733519e4d6d53a4394841c06 \ sha256 d7dfabc89c55d18a3757afce13509273781161e4c07fffe9e8fcd5893656bac0 \ size 521331842 java.version 11+ java.fallback openjdk11 use_configure no extract {} build {} test {} set metabase_wrapper ${prefix}/etc/LaunchDaemons/org.macports.${name}/${name}.wrapper set metabase_exec_dir ${prefix}/libexec/${name} set metabase_home_dir ${prefix}/var/lib/${name} set metabase_log_dir ${prefix}/var/log/${name} set metabase_run_dir ${prefix}/var/run/${name} set metabase_db_dir ${prefix}/var/db/${name} set metabase_exec ${metabase_exec_dir}/${metabase_jar} set metabase_log ${metabase_log_dir}/${name}.log set metabase_pid ${metabase_run_dir}/${name}.pid set metabase_host 127.0.0.1 set metabase_port 3000 set metabase_user metabase set metabase_group metabase set metabase_dir_list [list \ ${metabase_exec_dir} \ ${metabase_home_dir} \ ${metabase_log_dir} \ ${metabase_run_dir} \ ${metabase_db_dir} \ ] set metabase_exec_list [list \ ${distpath}/${metabase_jar} ] foreach d ${metabase_dir_list} { destroot.keepdirs-append ${destroot}${d} } destroot { foreach d ${metabase_dir_list} { xinstall -d -m 0755 -g ${metabase_group} -o ${metabase_user} \ ${destroot}${d} } foreach f ${metabase_exec_list} { xinstall -m 0644 -g ${metabase_group} -o ${metabase_user} \ ${f} \ ${destroot}${metabase_exec_dir} } } post-deactivate { # Cleanup all metabase-created files, which are significant foreach d ${metabase_dir_list} { if {${d} eq ${metabase_db_dir}} { set files [glob -nocomplain -directory ${metabase_db_dir} *] if {[llength $files] > 1} { ui_msg "********************************************************" ui_msg "To revert the system after uninstalling the port," ui_msg "delete metabase database files:" ui_msg "$ sudo rm -fr ${metabase_db_dir}" ui_msg "********************************************************" continue } } if { [file exists ${d}] } { ui_info "post-deactivate: dir exists, deleting: ${d}" delete -force ${d} } else { ui_info "post-deactivate: dir doesn't exist, skipping delete: ${d}" } } } add_users ${metabase_user} \ group=${metabase_group} \ home=${metabase_home_dir} \ shell=/bin/sh \ realname=metabase startupitem.create yes # Enable additional logging, for diagnostic purposes startupitem.logevents yes startupitem.user ${metabase_user} startupitem.group ${metabase_group} # Note: To avoid breakage when a Java port is updated/removed, use 'java_home' to select at runtime # java_home version filter not support wildcards set java_version [regsub {[^0-9.]} ${java.version} ""] startupitem.init " export JAVA_HOME=\$(/usr/libexec/java_home --failfast --version ${java_version} 2>/dev/null || /usr/libexec/java_home) export MB_PLUGINS_DIR=${metabase_exec_dir}/plugins export MB_DB_FILE=${metabase_db_dir}/${name} export MB_JETTY_HOST=${metabase_host} export MB_JETTY_PORT=${metabase_port} " startupitem.start \ "\${JAVA_HOME}/bin/java -jar ${metabase_exec}" startupitem.stop \ "kill \$(cat ${metabase_pid})" startupitem.logfile \ ${metabase_log} startupitem.pidfile \ manual ${metabase_pid} notes-append " To configure the metabase service, edit environment variables as follows: - Read document at https://www.metabase.com/docs/latest/configuring-metabase/environment-variables - \$ sudo vi ${metabase_wrapper} Once the service is enabled, metabase will: - Listen by default on: http://${metabase_host}:${metabase_port} - Write logs to: ${metabase_log} " # Use GitHub releases for livecheck, filter out beta versions # Open source version tags are like v0.57.7, enterprise is v1.x livecheck.type regex livecheck.url https://api.github.com/repos/metabase/metabase/releases?per_page=50 livecheck.regex {"tag_name":\s*"v(0\.\d+\.\d+)"}