M type/__evilham_forgejo/explorer/lfs-jwt-secret => type/__evilham_forgejo/explorer/lfs-jwt-secret +14 -2
@@ 1,8 1,20 @@
#!/bin/sh -e
+
+os="$(uname | tr '[:upper:]' '[:lower:]')"
+
+ETC_DIR="/etc"
+case "${os}" in
+ *bsd)
+ ETC_DIR="/usr/local/etc"
+ ;;
+ *)
+ ;;
+esac
+
FORGEJO_DIR="/var/lib/forgejo"
FORGEJO_SECRET_DIR="${FORGEJO_DIR}/secret"
-FORGEJO_CONF="/etc/forgejo.conf"
-if [ -f "${FORGEJO_SECRET_DIR}/lfs-jwt-secret" ]; then
+FORGEJO_CONF="${ETC_DIR}/forgejo.conf"
+if [ -f "${FORGEJO_SECRET_DIR}/lfs_jwt_secret" ]; then
cat "${FORGEJO_SECRET_DIR}/lfs_jwt_secret"
else
grep -sE "^LFS_JWT_SECRET" "${FORGEJO_CONF}" | sed -E 's!^.*=[[:space:]]*([^[:space:]]+)[[:space:]]*$!\1!'
M type/__evilham_forgejo/explorer/secret-key => type/__evilham_forgejo/explorer/secret-key +14 -2
@@ 1,8 1,20 @@
#!/bin/sh -e
+
+os="$(uname | tr '[:upper:]' '[:lower:]')"
+
+ETC_DIR="/etc"
+case "${os}" in
+ *bsd)
+ ETC_DIR="/usr/local/etc"
+ ;;
+ *)
+ ;;
+esac
+
FORGEJO_DIR="/var/lib/forgejo"
FORGEJO_SECRET_DIR="${FORGEJO_DIR}/secret"
-FORGEJO_CONF="/etc/forgejo.conf"
-if [ -f "${FORGEJO_SECRET_DIR}/secret-key" ]; then
+FORGEJO_CONF="${ETC_DIR}/forgejo.conf"
+if [ -f "${FORGEJO_SECRET_DIR}/secret_key" ]; then
cat "${FORGEJO_SECRET_DIR}/secret_key"
else
grep -sE "^SECRET_KEY" "${FORGEJO_CONF}" | sed -E 's!^.*=[[:space:]]*([^[:space:]]*)[[:space:]]*$!\1!'
M type/__evilham_forgejo/manifest => type/__evilham_forgejo/manifest +21 -9
@@ 1,20 1,29 @@
#!/bin/sh -eu
os="$(cat "${__global}/explorer/os")"
+
+FORGEJO_TYPE_VERSION="1.19.3-0"
+FORGEJO_CHECKSUM='sha256:84ad6db129c491c9e4b935cdb6ad7003a804d27fb70e9bc3c653d931cf62d92d'
+# URL to forgejo-${FORGEJO_TYPE_VERSION}-linux-amd64.xz
+FORGEJO_DOWNLOAD_URL="https://codeberg.org/attachments/8dc303a9-8a4e-416c-8d6c-62e0d3e289e8"
+ETC_DIR="/etc"
+
case "${os}" in
devuan|debian)
;;
+ freebsd)
+FORGEJO_TYPE_VERSION="1.19.3-0"
+FORGEJO_CHECKSUM='sha256:51e4cf9e002d1df96b3d0688e63f6e6e2338e478621570226d2f1d76c61763bc'
+# URL to forgejo-${FORGEJO_TYPE_VERSION}-linux-amd64.xz
+FORGEJO_DOWNLOAD_URL="https://farga.exo.cat/attachments/ac981280-eb24-493e-9fbd-7042932c15be"
+ETC_DIR="/usr/local/etc"
+ ;;
*)
echo "Your OS '${os}' is currently not supported." > /dev/stderr
exit 1
;;
esac
-FORGEJO_TYPE_VERSION="1.19.3-0"
-FORGEJO_CHECKSUM='sha256:84ad6db129c491c9e4b935cdb6ad7003a804d27fb70e9bc3c653d931cf62d92d'
-# URL to forgejo-${FORGEJO_TYPE_VERSION}-linux-amd64.xz
-FORGEJO_DOWNLOAD_URL="https://codeberg.org/attachments/8dc303a9-8a4e-416c-8d6c-62e0d3e289e8"
-
USER="$(cat "${__object}/parameter/user")"
DB_TYPE="$(cat "${__object}/parameter/database-type")"
@@ 102,7 111,7 @@ done
. "${__type}/files/forgejo.conf.sh" # This defines FORGEJO_COFIG
echo "${FORGEJO_CONFIG}" | __single_binary_service forgejo \
--user "${USER}" \
- --service-args "web --config /etc/forgejo.conf --work-path '${FORGEJO_DIR}' --custom-path '${FORGEJO_DIR}/custom'" \
+ --service-args "web --config '${ETC_DIR}/forgejo.conf' --work-path '${FORGEJO_DIR}' --custom-path '${FORGEJO_DIR}/custom'" \
--version "${FORGEJO_TYPE_VERSION}" \
--checksum "${FORGEJO_CHECKSUM}" \
--url "${FORGEJO_DOWNLOAD_URL}" \
@@ 118,15 127,18 @@ echo "${FORGEJO_CONFIG}" | __single_binary_service forgejo \
export require="__single_binary_service/forgejo"
__directory "${FORGEJO_SECRET_DIR}" --owner "${USER}" --mode 0700
export require="${require} __directory${FORGEJO_SECRET_DIR}"
-__file "${FORGEJO_SECRET_DIR}/secret_key" --owner "${USER}" --mode 0440 --source '-' <<EOF
+__file "${FORGEJO_SECRET_DIR}/secret_key" \
+ --owner "${USER}" --mode 0440 --source '-' <<EOF
${SECRET_KEY}
EOF
-__file "${FORGEJO_SECRET_DIR}/lfs_jwt_secret" --source '-' <<EOF
+__file "${FORGEJO_SECRET_DIR}/lfs_jwt_secret" \
+ --owner "${USER}" --mode 0400 --source '-' <<EOF
${LFS_JWT_SECRET}
EOF
FORGEJO_INTERNAL_TOKEN="${FORGEJO_SECRET_DIR}/internal_token"
-__file "${FORGEJO_INTERNAL_TOKEN}" --owner "${USER}" --mode 0440 --state exists \
+__file "${FORGEJO_INTERNAL_TOKEN}" \
+ --owner "${USER}" --mode 0440 --state exists \
--onchange "! test -s '${FORGEJO_INTERNAL_TOKEN}' && forgejo generate secret INTERNAL_TOKEN > '${FORGEJO_INTERNAL_TOKEN}'"
# oauth2_jwt_signing.key on the other hand will be an error if it is invalid