summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--snap/helpers/app.ini66
-rwxr-xr-xsnap/helpers/configuration.sh126
-rwxr-xr-xsnap/helpers/simple_launcher.sh23
-rwxr-xr-xsnap/hooks/configure3
-rwxr-xr-xsnap/hooks/install45
-rw-r--r--snap/snapcraft.yaml105
6 files changed, 27 insertions, 341 deletions
diff --git a/snap/helpers/app.ini b/snap/helpers/app.ini
deleted file mode 100644
index dd7fa3c88f..0000000000
--- a/snap/helpers/app.ini
+++ /dev/null
@@ -1,66 +0,0 @@
-APP_NAME = Gitea: Go Git Service
-RUN_USER = root
-RUN_MODE = prod
-CUSTOM_PATH = SNAP_DIR_DATA/custom
-
-[server]
-DOMAIN = localhost
-PROTOCOL = http
-HTTP_PORT = 3001
-ROOT_URL = http://localhost:3001/
-DISABLE_SSH = false
-SSH_PORT = 22
-STATIC_ROOT_PATH = SNAP_DIR_DATA/static
-APP_DATA_PATH = SNAP_DIR_COMMON/data
-SSH_ROOT = SNAP_DIR_COMMON/ssh
-SSH_KEY_TEST_PATH = SNAP_DIR_DATA/sshkeytest
-
-[database]
-DB_TYPE = sqlite3
-PATH = SNAP_DIR_COMMON/gitea.db
-
-[repository]
-ROOT = SNAP_DIR_COMMON/repositories/data
-
-[repository.upload]
-ENABLED = true
-ALLOWED_TYPES = "image/jpeg|image/png"
-FILE_MAX_SIZE = 10
-MAX_FILES = 5
-TEMP_PATH = SNAP_DIR_COMMON/repositories/tmp
-
-[release.attachment]
-PATH = SNAP_DIR_COMMON/releases/attachments
-
-[smartypants]
-ENABLED = true
-
-[indexer]
-ISSUE_INDEXER_PATH = SNAP_DIR_COMMON/indexers/issues.bleve
-
-
-[mailer]
-ENABLED = false
-
-[service]
-REGISTER_EMAIL_CONFIRM = false
-ENABLE_NOTIFY_MAIL = false
-DISABLE_REGISTRATION = false
-ENABLE_CAPTCHA = false
-REQUIRE_SIGNIN_VIEW = false
-
-[picture]
-AVATAR_UPLOAD_PATH = SNAP_DIR_COMMON/pictures/avatars
-DISABLE_GRAVATAR = true
-ENABLE_FEDERATED_AVATAR = false
-
-[attachment]
-PATH = SNAP_DIR_COMMON/attachments
-
-[session]
-PROVIDER = memory
-
-[log]
-MODE = file
-LEVEL = Trace
-ROOT_PATH = SNAP_DIR_COMMON/log
diff --git a/snap/helpers/configuration.sh b/snap/helpers/configuration.sh
deleted file mode 100755
index 34b7fc7af4..0000000000
--- a/snap/helpers/configuration.sh
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/bin/bash
-if snapctl get gitea.snap.custom; then
- cdir=$(snapctl get gitea.snap.custom)
-else
- cdir=$SNAP_COMMON
-fi
-
-cfg="$cdir/conf/app.ini"
-bak="$cdir/conf/app.ini.bak-$(date -Ins)"
-basecfg="$SNAP/snap/helpers/app.ini"
-smp="$SNAP/gitea/custom/conf/app.ini.sample"
-
-function toSnap() {
-OIFS=$IFS
-IFS='
-'
- category="none"
- src="$cfg"
- [[ "$1" = "init" ]] && src="$smp"
- [[ "$1" = "snap" ]] && src="$basecfg"
-
- for l in $(sed 's_;\([A-Z]*\)_\1_g' $src | grep -v -e '^;' -e '^$'); do
- if echo $l | grep -q '^[[]'; then
- category=$(CatToSnap "$l")
- elif echo $l | grep -q '^[A-Z]'; then
- option=$(OptToSnap "$l")
- value=$(ValToSnap "$l")
- if [[ $category = "none" ]]; then
- snapctl set "$option=$value"
- else
- snapctl set "$category.$option=$value"
- fi
- fi
- done
-IFS=$OIFS
-}
-
-function toIni() {
-OIFS=$IFS
-IFS='
-'
- category="none"; option="none"; catUnset=true
- src=$smp
- [[ -f $cfg ]] && src="$cfg"
- tmpIni="$cfg.tmp"
- [[ -f $src ]] && cp "$src" "$tmpIni"
- cp $tmpIni $bak
- echo '' > $cfg
- for l in $(grep -v -e '^;' -e '^$' $tmpIni); do
- if echo $l | grep -q '^[[]'; then
- category=$(CatToSnap "$l")
- catUnset=true
- elif echo $l | grep -q '^[A-Z]'; then
- option=$(OptToSnap "$l")
- if [[ $category = "none" ]]; then
- value=$(snapctl get $option)
- echo $(OptToIni "$option") = $value >> $cfg
- else
- value=$(snapctl get $category.$option)
- if $catUnset; then
- echo "" >> $cfg
- echo "[$(CatToIni "$category")]" >> $cfg
- catUnset=false
- fi
- echo $(OptToIni "$option") = $value >> $cfg
- fi
- fi
- done;
- IFS=$OIFS
-}
-
-function CatToSnap {
- ret=$(echo "$1" \
- | grep -oP '[A-Za-z0-9._]+' \
- | sed 's|\.|-|g' \
- | sed 's|_|99|g')
- echo $ret
-}
-function OptToSnap {
- ret=$(echo "$1" \
- | grep -oP '^[A-Z_]+' \
- | tr '[:upper:]' '[:lower:]' \
- | sed 's|_|-|g')
- echo $ret
-}
-function ValToSnap {
- ret=$(echo "$1" \
- | grep -oP '=.*$' \
- | sed 's_^= __g' \
- | sed 's_^=__g' \
- | sed "s|SNAP_DIR_DATA|$SDATA|g" \
- | sed "s|SNAP_DIR_COMMON|$SCOMMON|g" \
- | sed 's|{}||g')
- echo $ret
-}
-
-function CatToIni {
- ret=$(echo "$1" \
- | sed 's|-|.|g' \
- | sed 's|\ |_|g' \
- | sed 's|99|_|g')
- echo $ret
-}
-function OptToIni {
- ret=$(echo "$1" \
- | tr '[:lower:]' '[:upper:]' \
- | sed 's|-|_|g')
- echo $ret
-}
-
-[[ "$1" = "configure" ]] \
- && toIni \
- && exit 0
-
-[[ "$1" = "install" ]] \
- && echo "Initial Configuration..." \
- && mkdir -p $SNAP_COMMON/conf \
- && toSnap init \
- && toSnap snap \
- && toIni sample \
- && exit 0
-
-[[ "$1" = "save" ]] \
- && echo "Saving current config..." \
- && toSnap \
- && exit 0
diff --git a/snap/helpers/simple_launcher.sh b/snap/helpers/simple_launcher.sh
deleted file mode 100755
index 8a12e3b8dd..0000000000
--- a/snap/helpers/simple_launcher.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-if ! env | grep -q root; then
- echo "
- +----------------------------------------+
- | You are not running gitea as root. |
- | This is required for the snap package. |
- | Please re-run as root. |
- +----------------------------------------+
-"
- $SNAP/gitea/gitea --help
- exit 1
-fi
-
-# Set usernames for gitea
-export USERNAME=root
-export USER=root
-
-export GITEA_WORK_DIR=$(snapctl get gitea.snap.workdir)
-export GITEA_CUSTOM=$(snapctl get gitea.snap.custom)
-
-$SNAP/bin/gconfig save
-cd $SNAP/gitea; ./gitea $@
diff --git a/snap/hooks/configure b/snap/hooks/configure
deleted file mode 100755
index fd7bc3da18..0000000000
--- a/snap/hooks/configure
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-$SNAP/bin/gconfig configure
diff --git a/snap/hooks/install b/snap/hooks/install
deleted file mode 100755
index dea6c268fb..0000000000
--- a/snap/hooks/install
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/bash
-
-export SDATA=$(echo $SNAP_DATA | sed "s|$SNAP_REVISION|current|")
-export SCOMMON="$SNAP_COMMON"
-export isRoot=`true`
-snapctl set gitea.snap.workdir="$SDATA/custom"
-snapctl set gitea.snap.custom="$SCOMMON"
-
-function mkDirCommon(){
- for dir in $@; do
- mkdir -p "$SCOMMON/$dir"
- done
-}
-
-function mkdirData(){
- for dir in $@; do
- mkdir -p "$SDATA/$dir"
- if [ -d $SNAP/$dir ]; then
- cp -r --preserve=mode \
- $SNAP/$dir/* \
- $SNAP/$dir/.[a-zA-Z0-9-]* \
- $SDATA/$dir/ 2> $SCOMMON/log/snap-mkdirData.log
- fi
- done
-}
-
-mkDirCommon pictures \
- repositories \
- attachments \
- data \
- log
-
-mkdirData certs \
- sshkeytest \
- custom/conf \
- static/templates \
- static/scripts \
- static/public
-
-[[ -f $SNAP_COMMON/conf/app.ini ]] || $SNAP/bin/gconfig install
-
-# Configure Git to use the right templates
-mkdir -p $SDATA/git/
-cp -r --preserve=mode $SNAP/usr/share/git-core/templates $SDATA/git/
-$SNAP/usr/bin/git config --global init.templateDir $SDATA/git/templates/
diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index b4441805bc..b60d720370 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -6,93 +6,55 @@ description: |
an independent binary distribution across ALL platforms that Go supports,
including Linux, Mac OS X, Windows and ARM.
-type: app
icon: public/img/gitea-lg.png
confinement: strict
-grade: stable
+base: core18
+adopt-info: gitea
-version: 'git'
+environment:
+ GITEA_CUSTOM: "$SNAP_COMMON"
+ GITEA_WORK_DIR: "$SNAP_DATA"
apps:
gitea:
- command: bin/gitea
+ command: gitea
plugs: [network, network-bind]
web:
- command: bin/gitea web
+ command: gitea web
daemon: simple
plugs: [network, network-bind]
- serv:
- command: bin/gitea serv
- plugs: [network, network-bind]
- admin:
- command: bin/gitea admin
- plugs: [network, network-bind]
- cert:
- command: bin/gitea cert
- hook:
- command: bin/gitea hook
- plugs: [network, network-bind]
dump:
- command: bin/gitea dump
+ command: gitea dump
plugs: [home]
- help:
- command: bin/gitea --help
version:
- command: bin/gitea --version
+ command: gitea --version
sqlite:
command: usr/bin/sqlite3
parts:
- go:
- source-tag: go1.8.3
- prime:
- - -*
gitea:
- plugin: nil
+ plugin: make
source: .
- source-type: git
- after: [ go ]
stage-packages: [ git, sqlite3, openssh-client ]
- build-packages: [ libpam0g-dev, libsqlite3-dev]
- prepare: |
- export PATH=$SNAPCRAFT_PART_INSTALL/../../go/install/bin:$PATH
- export GOPATH=$SNAPCRAFT_PART_INSTALL/../go
- export bld=$SNAPCRAFT_PART_INSTALL/../build
- export src=$SNAPCRAFT_PART_INSTALL/../src
- mkdir -p $GOPATH/src/code.gitea.io/gitea
- cp -r $src/* $GOPATH/src/code.gitea.io/gitea
- build: |
- export PATH=$SNAPCRAFT_PART_INSTALL/../go/bin/:$SNAPCRAFT_PART_INSTALL/../../go/install/bin:$PATH
- export GOPATH=$SNAPCRAFT_PART_INSTALL/../go
- cd $GOPATH/src/code.gitea.io/gitea
+ build-packages: [ git, libpam0g-dev, libsqlite3-dev]
+ build-snaps: [ go, node/14/stable ]
+ build-environment:
+ - LDFLAGS: ""
+ override-pull: |
+ snapcraftctl pull
+
+ version="$(git describe --always | sed -e 's/-/+git/;y/-/./')"
+ [ -n "$(echo $version | grep "+git")" ] && grade=devel || grade=stable
+ snapcraftctl set-version "$version"
+ snapcraftctl set-grade "$grade"
+
+ override-build: |
+ set -x
TAGS="bindata sqlite sqlite_unlock_notify pam cert" make build
- install: |
- # Set Convenience Variables
- src=$SNAPCRAFT_PART_INSTALL/../go/src/code.gitea.io/gitea
- giteaBase=$SNAPCRAFT_PART_INSTALL/gitea
- scurrent=/var/snap/$SNAPCRAFT_PROJECT_NAME/current
- scommon=/var/snap/$SNAPCRAFT_PROJECT_NAME/common
- # Copy build artifact and necessary files
- mkdir -p $giteaBase/conf
- # Workaround for gitea ignoring APP_DATA_PATH in app.ini after snap update.
- ln -s $scurrent/custom $giteaBase/custom
- ln -s $scommon/data $giteaBase/data
- # Workaround for cmd/certs not knowing how to put files somewhere else
- ln -s $scurrent/cert.pem $giteaBase/cert.pem
- ln -s $scurrent/key.pem $giteaBase/key.pem
- # Copy static content
- mkdir -p $SNAPCRAFT_PART_INSTALL/static
- cp $src/gitea $giteaBase/
- cp -r $src/LICENSE \
- $src/templates \
- $src/public \
- $src/scripts \
- $SNAPCRAFT_PART_INSTALL/static/
- cp -r $src/README.md \
- $src/LICENSE \
- $src/custom \
- $SNAPCRAFT_PART_INSTALL/
+ install -D gitea "${SNAPCRAFT_PART_INSTALL}/gitea"
+ cp -r options "${SNAPCRAFT_PART_INSTALL}/"
+
prime:
- -etc
- -usr/lib/systemd
@@ -101,20 +63,7 @@ parts:
- -usr/lib/x86_64-linux-gnu/krb5
- -usr/share/apport
- -usr/share/bash-completion
- - -usr/share/doc
- -usr/share/git-core/contrib
- -usr/share/man
- -usr/share/upstart
- -var
-
- helpers:
- plugin: dump
- source: snap/helpers
- organize:
- simple_launcher.sh: bin/gitea
- app.ini: gitea/snapApp.ini
- configuration.sh: bin/gconfig
- prime:
- - bin/gitea
- - bin/gconfig
- - gitea/snapApp.ini