mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 08:02:36 +09:00 
			
		
		
		
	snap-packaging for gitea (#2568)
* Modify tbraeutigam/gogs-snap for gitea * Fix building on 16.04 (manually build go-bindata). -> add _source.tar.bz2 to .gitignore (used by snapcraft cleanbuild) * Streamline Snap packaging: - Take advantage of install-hooks (snapd 2.27) - Use snapctl configuration storage for unchanging values * Move to using Snap Hooks for configuration * Missed re-adding daemon statement * Fix two warnings from Codacy.
This commit is contained in:
		
							
								
								
									
										10
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -59,3 +59,13 @@ coverage.all
 | 
				
			|||||||
/integrations/mysql.ini
 | 
					/integrations/mysql.ini
 | 
				
			||||||
/integrations/pgsql.ini
 | 
					/integrations/pgsql.ini
 | 
				
			||||||
/node_modules
 | 
					/node_modules
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Snapcraft
 | 
				
			||||||
 | 
					snap/.snapcraft/
 | 
				
			||||||
 | 
					parts/
 | 
				
			||||||
 | 
					stage/
 | 
				
			||||||
 | 
					prime/
 | 
				
			||||||
 | 
					*.snap
 | 
				
			||||||
 | 
					*.snap-build
 | 
				
			||||||
 | 
					*_source.tar.bz2
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										66
									
								
								snap/helpers/app.ini
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								snap/helpers/app.ini
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
				
			|||||||
 | 
					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
 | 
				
			||||||
							
								
								
									
										126
									
								
								snap/helpers/configuration.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										126
									
								
								snap/helpers/configuration.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,126 @@
 | 
				
			|||||||
 | 
					#!/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
 | 
				
			||||||
							
								
								
									
										23
									
								
								snap/helpers/simple_launcher.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										23
									
								
								snap/helpers/simple_launcher.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					#!/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 $@
 | 
				
			||||||
							
								
								
									
										3
									
								
								snap/hooks/configure
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								snap/hooks/configure
									
									
									
									
										vendored
									
									
										Executable file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$SNAP/bin/gconfig configure
 | 
				
			||||||
							
								
								
									
										45
									
								
								snap/hooks/install
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										45
									
								
								snap/hooks/install
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					#!/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/
 | 
				
			||||||
							
								
								
									
										121
									
								
								snap/snapcraft.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								snap/snapcraft.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,121 @@
 | 
				
			|||||||
 | 
					name: gitea
 | 
				
			||||||
 | 
					summary:  Gitea - A painless self-hosted Git service
 | 
				
			||||||
 | 
					description: |
 | 
				
			||||||
 | 
					  The goal of this project is to make the easiest, fastest, and most painless
 | 
				
			||||||
 | 
					  way of setting up a self-hosted Git service. With Go, this can be done with
 | 
				
			||||||
 | 
					  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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					version: 'git'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apps:
 | 
				
			||||||
 | 
					  gitea:
 | 
				
			||||||
 | 
					    command: bin/gitea
 | 
				
			||||||
 | 
					    plugs: [network, network-bind]
 | 
				
			||||||
 | 
					  web:
 | 
				
			||||||
 | 
					    command: bin/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
 | 
				
			||||||
 | 
					    plugs: [home]
 | 
				
			||||||
 | 
					  help:
 | 
				
			||||||
 | 
					    command: bin/gitea --help
 | 
				
			||||||
 | 
					  version:
 | 
				
			||||||
 | 
					    command: bin/gitea --version
 | 
				
			||||||
 | 
					  sqlite:
 | 
				
			||||||
 | 
					    command: usr/bin/sqlite3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					parts:
 | 
				
			||||||
 | 
					  go:
 | 
				
			||||||
 | 
					    source-tag: go1.8.3
 | 
				
			||||||
 | 
					    prime:
 | 
				
			||||||
 | 
					      - -*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gitea:
 | 
				
			||||||
 | 
					    plugin: nil
 | 
				
			||||||
 | 
					    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
 | 
				
			||||||
 | 
					      go get -u github.com/jteeuwen/go-bindata/...
 | 
				
			||||||
 | 
					      cd $GOPATH/src/code.gitea.io/gitea
 | 
				
			||||||
 | 
					      TAGS="bindata sqlite pam cert" make generate 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/
 | 
				
			||||||
 | 
					    prime:
 | 
				
			||||||
 | 
					      - -etc
 | 
				
			||||||
 | 
					      - -usr/lib/systemd
 | 
				
			||||||
 | 
					      - -usr/lib/gcc
 | 
				
			||||||
 | 
					      - -usr/lib/sasl2
 | 
				
			||||||
 | 
					      - -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
 | 
				
			||||||
		Reference in New Issue
	
	Block a user