Ver código fonte

Make Gogs packageable with https://packager.io

Cyril Rohr 9 anos atrás
pai
commit
7fe61558f6
4 arquivos alterados com 64 adições e 0 exclusões
  1. 1 0
      .godir
  2. 11 0
      .pkgr.yml
  3. 1 0
      Procfile
  4. 51 0
      packaging/debian/postinst

+ 1 - 0
.godir

@@ -0,0 +1 @@
+main

+ 11 - 0
.pkgr.yml

@@ -0,0 +1,11 @@
+buildpack: "https://github.com/kr/heroku-buildpack-go.git"
+targets:
+  ubuntu-14.04:
+build_dependencies:
+  - mercurial
+  - bzr
+dependencies:
+  - git
+after:
+  - mv bin/main gogs
+after_install: ./packaging/debian/postinst

+ 1 - 0
Procfile

@@ -0,0 +1 @@
+web: ./gogs web

+ 51 - 0
packaging/debian/postinst

@@ -0,0 +1,51 @@
+#!/bin/sh
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <postinst> `abort-remove'
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+APP_NAME="gogs"
+CLI="${APP_NAME}"
+APP_USER=$(${CLI} config:get APP_USER)
+APP_GROUP=$(${CLI} config:get APP_GROUP)
+APP_CONFIG="/etc/${APP_NAME}/conf/app.ini"
+
+# source debconf library
+. /usr/share/debconf/confmodule
+
+case "$1" in
+
+  configure)
+    mkdir -p $(dirname ${APP_CONFIG})
+    chown ${APP_USER}.${APP_GROUP} $(dirname ${APP_CONFIG})
+    [ -f ${APP_CONFIG} ] || ${CLI} run cp conf/app.ini ${APP_CONFIG}
+    ${CLI} config:set USER=${APP_USER}
+    ${CLI} config:set GOGS_CUSTOM="/etc/${APP_NAME}"
+    PORT=$(${CLI} config:get PORT || echo "6000")
+    sed -i "s|HTTP_PORT = 3000|HTTP_PORT = ${PORT}|" ${APP_CONFIG}
+    sed -i "s|RUN_USER = git|RUN_USER = ${APP_USER}|" ${APP_CONFIG}
+    sed -i "s|RUN_MODE = dev|RUN_MODE = prod|" ${APP_CONFIG}
+
+    # scale
+    ${CLI} scale web=1 || true
+  ;;
+
+  abort-upgrade|abort-remove|abort-deconfigure)
+    exit 0
+  ;;
+
+  *)
+    echo "postinst called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac