diff options
| author | Gibheer <gibheer+git@zero-knowledge.org> | 2024-10-30 19:27:15 +0100 | 
|---|---|---|
| committer | Gibheer <gibheer+git@zero-knowledge.org> | 2024-10-30 19:27:15 +0100 | 
| commit | ef425e0e4b8933e831914eafd7a49f1c6619366d (patch) | |
| tree | 9e9ff5ad38c63fefdf36b0bcf03d6f8f0db46403 | |
| parent | 05d6841d7b33f6ffe02b0d77afaa7c44687cea9e (diff) | |
add everything for a proper build processv0.2
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | Makefile | 26 | ||||
| -rw-r--r-- | utils/PKGBUILD | 26 | ||||
| -rw-r--r-- | utils/gocgi.conf.example | 6 | ||||
| -rw-r--r-- | utils/gocgi@.service | 18 | 
5 files changed, 77 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..01a544f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/gocgi diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..9a981d7 --- /dev/null +++ b/Makefile @@ -0,0 +1,26 @@ +VERSION ?= 0.2 +SOURCE_DATE_EPOCH ?= $(shell date +%s) + +all: gocgi-${VERSION}.tar.gz clean + +gocgi-${VERSION}.tar.gz: gocgi-${VERSION} +	tar --sort=name \ +	 	--numeric-owner \ +	 	--owner=0 \ +		--group=0 \ +		--gzip \ +		--pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime \ +		-cf gocgi-${VERSION}.tar.gz \ +		gocgi-${VERSION} + +gocgi-${VERSION}: +	mkdir gocgi-${VERSION} +	cp main.go gocgi-${VERSION}/ +	cp README.md gocgi-${VERSION}/ +	cp go.mod gocgi-${VERSION}/ +	cp Makefile gocgi-${VERSION}/ +	find gocgi-${VERSION} -print0 | \ +		xargs -0r touch --no-dereference --date="@${SOURCE_DATE_EPOCH}" + +clean: +	rm -R gocgi-${VERSION} diff --git a/utils/PKGBUILD b/utils/PKGBUILD new file mode 100644 index 0000000..e559c9d --- /dev/null +++ b/utils/PKGBUILD @@ -0,0 +1,26 @@ +pkgname="gocgi" +pkgver=0.2 +pkgrel=1 +pkgdesc='a small go daemon to host cgi scripts' +arch=('x86_64') + +source=( +  "${pkgname}-${pkgver}.tar.gz" +  "gocgi@.service" +  "gocgi.conf.example" +  ) + +b2sums=( +  'aba9f188f146aca50b37251d1930ec061d7ad9fa24446456c13ce5d504ff4f67043fa706a722ca68e95c0552b6a9872215d04ca40fa5f20d55a52530fbaa66d9' +  '3492816ef2c676ac8d1feff3736074c362f57a8dce8d13614ba262b660912db99b9e827959452c44f67c19af6b5366ebdf124564c5dae3a6237336b997e840c3' +  'e61ef545c47d38b79e0f99138d00ea99982b0a90523ce1697df658e9beae230079f274283c44924a0c5f525bc397ed5a7cd3d316a18d4c0258ca3d6a3b4225f3' +  ) + +package() { +  cd "${srcdir}/${pkgname}-${pkgver}" +  go build -trimpath + +  install -Dm 0755 "${pkgname}" "${pkgdir}/usr/bin/${pkgname}" +  install -Dm 644 ${srcdir}/${pkgname}@.service -t "${pkgdir}/usr/lib/systemd/system" +  install -Dm 644 ${srcdir}/${pkgname}.conf.example -t "${pkgdir}/etc/gocgi" +} diff --git a/utils/gocgi.conf.example b/utils/gocgi.conf.example new file mode 100644 index 0000000..699a7e8 --- /dev/null +++ b/utils/gocgi.conf.example @@ -0,0 +1,6 @@ +# Path to the binary to call when a request was accepted. +GOCGI_BIN="" +# Set a number of environment variables to give to the binary. +GOCGI_ENV="" +# Set the working directory for this instance. +GOCGI_WORKDIR="/" diff --git a/utils/gocgi@.service b/utils/gocgi@.service new file mode 100644 index 0000000..9f2cf4a --- /dev/null +++ b/utils/gocgi@.service @@ -0,0 +1,18 @@ +[Unit] +Description=CGI HTTP instance %i +After=network.target + +[Service] +Type=simple +EnvironmentFile=/etc/gocgi/%i.conf +ExecStart=/usr/bin/gocgi --path "${GOCGI_BIN}" --dir "${GOCGI_WORKDIR}" --env="${GOCGI_ENV}" --listen "${STATE_DIRECTORY}/%i.sock" + +RuntimeDirectory=gocgi +DynamicUser=yes +ProtectSystem=yes +PrivateDevices=yes +ProtectKernelTunables=yes +ProtectControlGroups=yes + +[Install] +WantedBy=multi-user.target  | 
