diff --git a/sysutils/digdag/Makefile b/sysutils/digdag/Makefile index 498caeb40770..f26ad65d7833 100644 --- a/sysutils/digdag/Makefile +++ b/sysutils/digdag/Makefile @@ -1,56 +1,56 @@ # Created by: Emanuel Haupt PORTNAME= digdag DISTVERSION= 0.10.4 +PORTREVISION= 1 CATEGORIES= sysutils java MASTER_SITES= https://github.com/treasure-data/digdag/releases/download/v${DISTVERSION}/ \ LOCAL/ehaupt EXTRACT_SUFX= .jar MAINTAINER= ehaupt@FreeBSD.org COMMENT= Workload Automation System LICENSE= APACHE20 USE_JAVA= yes -USE_RC_SUBR= ${PORTNAME} - -JAVA_RUN= yes -JAVA_VENDOR= openjdk JAVA_VERSION= 1.8+ +JAVA_VENDOR= openjdk +JAVA_RUN= yes +USE_RC_SUBR= ${PORTNAME} -NO_BUILD= yes NO_ARCH= yes +NO_BUILD= yes +SUB_LIST= JAVA=${JAVA} \ + PORTNAME=${PORTNAME} \ + USERS=${USERS} USERS= digdag +PLIST_SUB= USERS=${USERS} \ + VERSION=${DISTVERSION} -SUB_LIST= PORTNAME=${PORTNAME} USERS=${USERS} JAVA=${JAVA} -PLIST_SUB= VERSION=${DISTVERSION} USERS=${USERS} - -VARLOG= /var/log/${PORTNAME} VARRUN= /var/run/${PORTNAME} do-extract: @${MKDIR} ${WRKSRC} @${PRINTF} "#!/bin/sh\nexec \"${JAVA}\" -jar \ \"${JAVAJARDIR}/${PORTNAME}/${PORTNAME}-${PORTVERSION}.jar\" \"\$$@\"\n" \ > ${WRKSRC}/${PORTNAME} do-install: @${MKDIR} ${STAGEDIR}${JAVAJARDIR}/${PORTNAME} ${INSTALL_DATA} ${DISTDIR}/${DISTFILES} \ ${STAGEDIR}${JAVAJARDIR}/${PORTNAME}/ ${INSTALL_SCRIPT} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin ${INSTALL_DATA} ${FILESDIR}/${PORTNAME}.conf.sample \ ${STAGEDIR}${PREFIX}/etc - @${MKDIR} ${STAGEDIR}${VARLOG} @${MKDIR} ${STAGEDIR}${VARRUN} cklatest: @${ECHO} "Port: ${DISTVERSION}" @${ECHO} -n "Upstream: " @curl -s -I https://dl.digdag.io/digdag-latest | \ ${SED} -n 's|.*digdag-\([0-9.]*\).jar|\1|p' .include diff --git a/sysutils/digdag/files/digdag.conf.sample b/sysutils/digdag/files/digdag.conf.sample index b372d58c6660..49f9496b15d7 100644 --- a/sysutils/digdag/files/digdag.conf.sample +++ b/sysutils/digdag/files/digdag.conf.sample @@ -1,55 +1,56 @@ # In the config file, following parameters are available # See https://docs.digdag.io/command_reference.html#server-mode-commands # #server.bind (ip address) #server.port (integer) #server.admin.bind (ip address) #server.admin.port (integer) #server.access-log.path (string. same with –access-log) #server.access-log.pattern (string, “json”, “combined” or “common”) #server.http.io-threads (number of HTTP IO threads in integer. default: available CPU cores or 2, whichever is greater) #server.http.worker-threads (number of HTTP worker threads in integer. default: server.http.io-threads * 8) #server.http.no-request-timeout (maximum allowed time for clients to keep a connection open without sending requests or receiving responses in seconds. default: 60) #server.http.request-parse-timeout (maximum allowed time of reading a HTTP request in seconds. this doesn’t affect on reading request body. default: 30) #server.http.io-idle-timeout (maximum allowed idle time of reading HTTP request and writing HTTP response in seconds. default: 300) #server.http.enable-http2 (enable HTTP/2. default: false) #server.http.headers.KEY = VALUE (HTTP header to set on API responses) #server.jmx.port (port to listen JMX in integer. default: JMX is disabled) #database.type (enum, “h2” or “postgresql”) #database.user (string) #database.password (string) #database.host (string) #database.port (integer) #database.database (string) #database.loginTimeout (seconds in integer, default: 30) #database.socketTimeout (seconds in integer, default: 1800) #database.ssl (boolean, default: false) #database.connectionTimeout (seconds in integer, default: 30) #database.idleTimeout (seconds in integer, default: 600) #database.validationTimeout (seconds in integer, default: 5) #database.maximumPoolSize (integer, default: available CPU cores * 32) #archive.type (type of project archiving, “db” or “s3”. default: “db”) #archive.s3.endpoint (string. default: “s3.amazonaws.com”) #archive.s3.bucket (string) #archive.s3.path (string) #archive.s3.credentials.access-key-id (string. default: instance profile) #archive.s3.credentials.secret-access-key (string. default: instance profile) #archive.s3.path-style-access (boolean. default: false) #log-server.type (type of log storage, “local” , “null”, or “s3”. default: “null”. This parameter will be overwritten with “local” if -O, --task-log DIR is set.) #log-server.s3.endpoint (string, default: “s3.amazonaws.com”) #log-server.s3.bucket (string) #log-server.s3.path (string) #log-server.s3.direct_download (boolean. default: false) #log-server.s3.credentials.access-key-id (string. default: instance profile) #log-server.s3.credentials.secret-access-key (string. default: instance profile) #log-server.s3.path-style-access (boolean. default: false) #digdag.secret-encryption-key = (base64 encoded 128-bit AES encryption key) #executor.task_ttl (string. default: 1d. A task is killed if it is running longer than this period.) #executor.attempt_ttl (string. default: 7d. An attempt is killed if it is running longer than this period.) #api.max_attempts_page_size (integer. The max number of rows of attempts in api response) #api.max_sessions_page_size (integer. The max number of rows of sessions in api response) server.bind=127.0.0.1 +database.type=h2 # generate with: # openssl rand -base64 16 #digdag.secret-encryption-key= diff --git a/sysutils/digdag/files/digdag.in b/sysutils/digdag/files/digdag.in index b1fc365a22f8..e5e5498ed4a5 100644 --- a/sysutils/digdag/files/digdag.in +++ b/sysutils/digdag/files/digdag.in @@ -1,35 +1,54 @@ #!/bin/sh # PROVIDE: digdag # REQUIRE: LOGIN # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf.local or /etc/rc.conf # to enable this service: # # digdag_enable (bool): Set to NO by default. # Set it to YES to enable it. # digdag_user: The user account the digdag daemon runs as. # It uses 'digdag' user by default. # Do not sets it as empty or it will run as root. # digdag_conf: The configuration file digdag uses. # Default: %%PREFIX%%/etc/digdag.conf # digdag_logfile: The log file digdag uses. # Default: /var/log/digdag/digdag.log . /etc/rc.subr name="digdag" rcvar="${name}_enable" load_rc_config ${name} : ${digdag_enable:="NO"} : ${digdag_user:="digdag"} : ${digdag_conf:="%%PREFIX%%/etc/digdag.conf"} -: ${digdag_logfile="/var/log/digdag/digdag.log"} +: ${digdag_logdir:="/var/log/digdag"} +: ${digdag_logfile:="${digdag_logdir}/digdag.log"} +: ${digdag_taskdir:="${digdag_logdir}/tasks"} +: ${digdag_dbdir:="/var/db/digdag"} command="/usr/sbin/daemon" pidfile=/var/run/digdag/digdag.pid procname="%%JAVA%%" -digdag_flags="-f -p ${pidfile} ${name} server --log ${digdag_logfile} --config ${digdag_conf}" +digdag_flags="-f -p ${pidfile} ${name} server --log ${digdag_logfile} --task-log ${digdag_taskdir} --database ${digdag_dbdir} --config ${digdag_conf}" + +start_precmd="digdag_prestart" + +digdag_prestart() +{ + for dir in ${digdag_logdir} ${digdag_taskdir} + do + if [ ! -d ${dir} ]; then + install -d -m 0755 -o ${digdag_user} ${dir} + fi + done + + if [ ! -d ${digdag_dbdir} ]; then + install -d -m 0750 -o ${digdag_user} ${digdag_dbdir} + fi +} run_rc_command "$1" diff --git a/sysutils/digdag/pkg-plist b/sysutils/digdag/pkg-plist index d7a4da5f3de4..db2a9c8d27d6 100644 --- a/sysutils/digdag/pkg-plist +++ b/sysutils/digdag/pkg-plist @@ -1,6 +1,5 @@ @sample etc/digdag.conf.sample %%JAVAJARDIR%%/digdag/digdag-%%VERSION%%.jar bin/digdag @owner %%USERS%% -@dir /var/log/digdag @dir /var/run/digdag