git: b3cf3d7a4587 - main - sysutils/amazon-ssm-plugin: Add new port

From: Mikael Urankar <mikael_at_FreeBSD.org>
Date: Tue, 17 Jan 2023 17:07:22 UTC
The branch main has been updated by mikael:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b3cf3d7a458712063e30e35c45b2adf886010656

commit b3cf3d7a458712063e30e35c45b2adf886010656
Author:     Norikatsu Shigemura <nork@ninth-nine.com>
AuthorDate: 2023-01-17 17:05:01 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2023-01-17 17:07:19 +0000

    sysutils/amazon-ssm-plugin: Add new port
    
    This package provides Amazon SSM SessionManager and CLI for managing
    shell experience using SSM APIs.
    
    PR:             268142
---
 sysutils/Makefile                                  |  1 +
 sysutils/amazon-ssm-plugin/Makefile                | 57 ++++++++++++++++++++++
 sysutils/amazon-ssm-plugin/distinfo                |  3 ++
 .../amazon-ssm-plugin/files/patch-seelog__unix.xml | 14 ++++++
 .../files/patch-src_log_log__unix.go               | 22 +++++++++
 .../files/patch-src_version_version.go             |  8 +++
 sysutils/amazon-ssm-plugin/pkg-descr               |  7 +++
 7 files changed, 112 insertions(+)

diff --git a/sysutils/Makefile b/sysutils/Makefile
index eaaefae400a7..411ea575708f 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -32,6 +32,7 @@
     SUBDIR += alfio
     SUBDIR += am-utils
     SUBDIR += amazon-ssm-agent
+    SUBDIR += amazon-ssm-plugin
     SUBDIR += amdmsrtweaker
     SUBDIR += amrstat
     SUBDIR += amtc
diff --git a/sysutils/amazon-ssm-plugin/Makefile b/sysutils/amazon-ssm-plugin/Makefile
new file mode 100644
index 000000000000..bd7a8e47ace0
--- /dev/null
+++ b/sysutils/amazon-ssm-plugin/Makefile
@@ -0,0 +1,57 @@
+PORTNAME=	amazon-ssm-plugin
+DISTVERSION=	1.2.398.0
+CATEGORIES=	sysutils
+
+MAINTAINER=	nork@FreeBSD.org
+COMMENT=	Amazon AWS Manages shell experience using SSM APIs
+WWW=		https://github.com/aws/session-manager-plugin/
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+RUN_DEPENDS=	aws:devel/py-awscli@${PY_FLAVOR}
+
+USES=		go python:env
+GO_BUILDFLAGS=	-ldflags "-s -w"
+GO_TARGET=	src/sessionmanagerplugin-main/main.go:${PREFIX}/bin/session-manager-plugin \
+		src/ssmcli-main/main.go:${PREFIX}/bin/ssmcli
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	aws
+GH_PROJECT=	session-manager-plugin
+GH_TAGNAME=	${DISTVERSION}
+GH_SUBDIR=	${GH_PROJECT}
+
+PORTDOCS=	NOTICE README.md RELEASENOTES.md THIRD-PARTY VERSION
+PLIST_FILES=	${ETCDIR}/sessionmanagerplugin/seelog.xml.template \
+		${ETCDIR}/SSMCLI/seelog.xml.template \
+		bin/session-manager-plugin \
+		bin/ssmcli \
+		'@dir /var/log/amazon-ssm-plugin'
+
+LOGDIR=		${DESTDIR}/var/log/${PORTNAME}
+
+OPTIONS_DEFINE=	DOCS
+
+post-extract:
+	${MKDIR} ${WRKDIR}/src
+	${LN} -s ${WRKSRC} ${GO_WRKSRC}
+	${MKDIR} ${WRKSRC}/vendor/src/github.com/aws/session-manager-plugin
+	${LN} -s ${WRKSRC}/vendor/src/* ${GO_WRKSRC}/vendor/
+	${LN} -s ${WRKSRC}/src          ${GO_WRKSRC}/vendor/github.com/aws/session-manager-plugin/
+
+post-patch:
+	${REINPLACE_CMD} -e 's|%%VERSION%%|${DISTVERSION}|' ${WRKSRC}/src/version/version.go
+	${REINPLACE_CMD} -e 's|%%ETCDIR%%|${ETCDIR}|g; s|%%LOGDIR%%|${LOGDIR}|g' ${WRKSRC}/seelog_unix.xml
+	${REINPLACE_CMD} -e 's|%%ETCDIR%%|${ETCDIR}|g; s|%%LOGDIR%%|${LOGDIR}|g' ${WRKSRC}/src/log/log_unix.go
+
+post-install:
+	@${MKDIR} ${STAGEDIR}${LOGDIR} ${STAGEDIR}${ETCDIR}/SSMCLI ${STAGEDIR}${ETCDIR}/sessionmanagerplugin
+	${INSTALL_DATA} ${WRKSRC}/seelog_unix.xml ${STAGEDIR}${ETCDIR}/SSMCLI/seelog.xml.template
+	${INSTALL_DATA} ${WRKSRC}/seelog_unix.xml ${STAGEDIR}${ETCDIR}/sessionmanagerplugin/seelog.xml.template
+
+post-install-DOCS-on:
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}
+	cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/sysutils/amazon-ssm-plugin/distinfo b/sysutils/amazon-ssm-plugin/distinfo
new file mode 100644
index 000000000000..738797c65d70
--- /dev/null
+++ b/sysutils/amazon-ssm-plugin/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1673833159
+SHA256 (aws-session-manager-plugin-1.2.398.0_GH0.tar.gz) = 85a511b849f480613b9119f4c800c6ae427b366da463714ade1ccf470de43a99
+SIZE (aws-session-manager-plugin-1.2.398.0_GH0.tar.gz) = 21657464
diff --git a/sysutils/amazon-ssm-plugin/files/patch-seelog__unix.xml b/sysutils/amazon-ssm-plugin/files/patch-seelog__unix.xml
new file mode 100644
index 000000000000..457193587a5b
--- /dev/null
+++ b/sysutils/amazon-ssm-plugin/files/patch-seelog__unix.xml
@@ -0,0 +1,14 @@
+--- seelog_unix.xml.orig	2021-08-17 20:31:44 UTC
++++ seelog_unix.xml
+@@ -6,9 +6,9 @@
+         <exception filepattern="test*" minlevel="error"/>
+     </exceptions>
+     <outputs formatid="fmtinfo">
+-        <rollingfile type="size" filename="/usr/local/sessionmanagerplugin/logs/session-manager-plugin.log" maxsize="30000000" maxrolls="5"/>
++        <rollingfile type="size" filename="%%LOGDIR%%/session-manager-plugin.log" maxsize="30000000" maxrolls="5"/>
+         <filter levels="error,critical" formatid="fmterror">
+-            <rollingfile type="size" filename="/usr/local/sessionmanagerplugin/logs/errors.log" maxsize="10000000" maxrolls="5"/>
++            <rollingfile type="size" filename="%%LOGDIR%%/session-manager-plugin-errors.log" maxsize="10000000" maxrolls="5"/>
+         </filter>
+     </outputs>
+     <formats>
diff --git a/sysutils/amazon-ssm-plugin/files/patch-src_log_log__unix.go b/sysutils/amazon-ssm-plugin/files/patch-src_log_log__unix.go
new file mode 100644
index 000000000000..b31d3f95cf82
--- /dev/null
+++ b/sysutils/amazon-ssm-plugin/files/patch-src_log_log__unix.go
@@ -0,0 +1,22 @@
+--- src/log/log_unix.go.orig	2022-06-17 20:08:49 UTC
++++ src/log/log_unix.go
+@@ -23,8 +23,8 @@ import (
+ )
+ 
+ const (
+-	LogsDirectory                = "logs"
+-	DefaultInstallLocationPrefix = "/usr/local"
++	DefaultLogsDirectory         = "%%LOGDIR%%"
++	DefaultInstallLocationPrefix = "%%ETCDIR%%"
+ )
+ 
+ func getApplicationName(clientName string) string {
+@@ -45,7 +45,7 @@ func getLogConfigBytes(clientName string) (logConfigBy
+ 
+ 	applicationName := getApplicationName(clientName)
+ 	DefaultSeelogConfigFilePath = filepath.Join(DefaultInstallLocationPrefix, applicationName, SeelogConfigFileName)
+-	DefaultLogDir = filepath.Join(DefaultInstallLocationPrefix, applicationName, LogsDirectory)
++	DefaultLogDir = filepath.Join(DefaultLogsDirectory, applicationName)
+ 	ApplicationLogFile = fmt.Sprintf("%s%s", clientName, LogFileExtension)
+ 	ErrorLogFile = fmt.Sprintf("%s%s", ErrorLogFileSuffix, LogFileExtension)
+ 	if logConfigBytes, err = ioutil.ReadFile(DefaultSeelogConfigFilePath); err != nil {
diff --git a/sysutils/amazon-ssm-plugin/files/patch-src_version_version.go b/sysutils/amazon-ssm-plugin/files/patch-src_version_version.go
new file mode 100644
index 000000000000..cf5b8d5233cb
--- /dev/null
+++ b/sysutils/amazon-ssm-plugin/files/patch-src_version_version.go
@@ -0,0 +1,8 @@
+--- src/version/version.go.orig	2022-06-17 20:08:49 UTC
++++ src/version/version.go
+@@ -9,4 +9,4 @@
+ package version
+ 
+ // Version is the version of the CLI
+-const Version = "1.2.0.0"
++const Version = "%%VERSION%%"
diff --git a/sysutils/amazon-ssm-plugin/pkg-descr b/sysutils/amazon-ssm-plugin/pkg-descr
new file mode 100644
index 000000000000..3c7d2b64bfdf
--- /dev/null
+++ b/sysutils/amazon-ssm-plugin/pkg-descr
@@ -0,0 +1,7 @@
+This package provides Amazon SSM SessionManager and CLI for managing
+shell experience using SSM APIs.
+
+HOW TO USE:
+  aws ssm start-session --target "your instance-id"
+
+SEE ALSO: https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html