Merge branch 'develop' of github.com:gogits/gogs into feature/page_issues
This commit is contained in:
		
						commit
						54b58e988d
					
				
					 49 changed files with 87 additions and 65 deletions
				
			
		|  | @ -114,6 +114,7 @@ func runCert(ctx *cli.Context) { | |||
| 		SerialNumber: serialNumber, | ||||
| 		Subject: pkix.Name{ | ||||
| 			Organization: []string{"Acme Co"}, | ||||
| 			CommonName: "Gogs", | ||||
| 		}, | ||||
| 		NotBefore: notBefore, | ||||
| 		NotAfter:  notAfter, | ||||
|  |  | |||
							
								
								
									
										14
									
								
								cmd/serve.go
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								cmd/serve.go
									
									
									
									
									
								
							|  | @ -82,7 +82,7 @@ func runServ(c *cli.Context) { | |||
| 	} | ||||
| 
 | ||||
| 	if len(c.Args()) < 1 { | ||||
| 		fail("Not enough arguments", "Not enough arugments") | ||||
| 		fail("Not enough arguments", "Not enough arguments") | ||||
| 	} | ||||
| 
 | ||||
| 	keys := strings.Split(c.Args()[0], "-") | ||||
|  | @ -97,7 +97,7 @@ func runServ(c *cli.Context) { | |||
| 
 | ||||
| 	user, err := models.GetUserByKeyId(keyId) | ||||
| 	if err != nil { | ||||
| 		fail("internal error", "Fail to get user by key ID(%d): %v", keyId, err) | ||||
| 		fail("internal error", "Failed to get user by key ID(%d): %v", keyId, err) | ||||
| 	} | ||||
| 
 | ||||
| 	cmd := os.Getenv("SSH_ORIGINAL_COMMAND") | ||||
|  | @ -113,7 +113,7 @@ func runServ(c *cli.Context) { | |||
| 	repoPath := strings.Trim(args, "'") | ||||
| 	rr := strings.SplitN(repoPath, "/", 2) | ||||
| 	if len(rr) != 2 { | ||||
| 		fail("Invalid repository path", "Invalide repository path: %v", args) | ||||
| 		fail("Invalid repository path", "Invalid repository path: %v", args) | ||||
| 	} | ||||
| 	repoUserName := rr[0] | ||||
| 	repoName := strings.TrimSuffix(rr[1], ".git") | ||||
|  | @ -123,7 +123,7 @@ func runServ(c *cli.Context) { | |||
| 		if err == models.ErrUserNotExist { | ||||
| 			fail("Repository owner does not exist", "Unregistered owner: %s", repoUserName) | ||||
| 		} | ||||
| 		fail("Internal error", "Fail to get repository owner(%s): %v", repoUserName, err) | ||||
| 		fail("Internal error", "Failed to get repository owner(%s): %v", repoUserName, err) | ||||
| 	} | ||||
| 
 | ||||
| 	repo, err := models.GetRepositoryByName(repoUser.Id, repoName) | ||||
|  | @ -135,7 +135,7 @@ func runServ(c *cli.Context) { | |||
| 				fail(_ACCESS_DENIED_MESSAGE, "Repository does not exist: %s/%s", repoUser.Name, repoName) | ||||
| 			} | ||||
| 		} | ||||
| 		fail("Internal error", "Fail to get repository: %v", err) | ||||
| 		fail("Internal error", "Failed to get repository: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	requestedMode, has := COMMANDS[verb] | ||||
|  | @ -171,7 +171,7 @@ func runServ(c *cli.Context) { | |||
| 	gitcmd.Stdin = os.Stdin | ||||
| 	gitcmd.Stderr = os.Stderr | ||||
| 	if err = gitcmd.Run(); err != nil { | ||||
| 		fail("Internal error", "Fail to execute git command: %v", err) | ||||
| 		fail("Internal error", "Failed to execute git command: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	if requestedMode == models.ACCESS_MODE_WRITE { | ||||
|  | @ -184,7 +184,7 @@ func runServ(c *cli.Context) { | |||
| 			err = models.Update(task.RefName, task.OldCommitId, task.NewCommitId, | ||||
| 				user.Name, repoUserName, repoName, user.Id) | ||||
| 			if err != nil { | ||||
| 				log.GitLogger.Error(2, "Fail to update: %v", err) | ||||
| 				log.GitLogger.Error(2, "Failed to update: %v", err) | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
|  |  | |||
|  | @ -343,6 +343,7 @@ releases=Veröffentlichungen | |||
| file_raw=Roh | ||||
| file_history=Verlauf | ||||
| file_view_raw=Ansicht Roh | ||||
| file_permalink=Permalink | ||||
| 
 | ||||
| commits.commits=Commits | ||||
| commits.search=Durchsuche Commits | ||||
|  |  | |||
|  | @ -353,6 +353,7 @@ releases = Releases | |||
| file_raw = Raw | ||||
| file_history = History | ||||
| file_view_raw = View Raw | ||||
| file_permalink = Permalink | ||||
| 
 | ||||
| commits.commits = Commits | ||||
| commits.search = Search commits | ||||
|  |  | |||
|  | @ -343,6 +343,7 @@ releases=Releases | |||
| file_raw=Raw | ||||
| file_history=Histórico | ||||
| file_view_raw=Ver Raw | ||||
| file_permalink=Permalink | ||||
| 
 | ||||
| commits.commits=Commits | ||||
| commits.search=Buscar Commits | ||||
|  |  | |||
|  | @ -343,6 +343,7 @@ releases=Publications | |||
| file_raw=Raw | ||||
| file_history=Historique | ||||
| file_view_raw=Voir le Raw | ||||
| file_permalink=Permalink | ||||
| 
 | ||||
| commits.commits=Commissions | ||||
| commits.search=Rechercher des commissions | ||||
|  |  | |||
|  | @ -343,6 +343,7 @@ releases=リリース | |||
| file_raw=生データ | ||||
| file_history=履歴 | ||||
| file_view_raw=生データを見る | ||||
| file_permalink=Permalink | ||||
| 
 | ||||
| commits.commits=コミット | ||||
| commits.search=コミットの検索 | ||||
|  |  | |||
|  | @ -341,6 +341,7 @@ releases=Laidieni | |||
| file_raw=Neapstrādāts | ||||
| file_history=Vēsture | ||||
| file_view_raw=Rādīt neapstrādātu | ||||
| file_permalink=Permalink | ||||
| 
 | ||||
| commits.commits=Revīzijas | ||||
| commits.search=Meklēt revīzijas | ||||
|  |  | |||
|  | @ -343,6 +343,7 @@ releases=Publicaties | |||
| file_raw=Ruwe | ||||
| file_history=Geschiedenis | ||||
| file_view_raw=Weergave ruwe | ||||
| file_permalink=Permalink | ||||
| 
 | ||||
| commits.commits=Commits | ||||
| commits.search=Zoeken | ||||
|  |  | |||
|  | @ -343,6 +343,7 @@ releases=Wydania | |||
| file_raw=Czysty | ||||
| file_history=Historia | ||||
| file_view_raw=Zobacz czysty | ||||
| file_permalink=Permalink | ||||
| 
 | ||||
| commits.commits=Commity | ||||
| commits.search=Przeszukaj commity | ||||
|  |  | |||
|  | @ -343,6 +343,7 @@ releases=Lançamentos | |||
| file_raw=Cru | ||||
| file_history=Histórico | ||||
| file_view_raw=Ver cru | ||||
| file_permalink=Permalink | ||||
| 
 | ||||
| commits.commits=Commits | ||||
| commits.search=Pesquisar commits | ||||
|  |  | |||
|  | @ -343,6 +343,7 @@ releases=Релизы | |||
| file_raw=Исходник | ||||
| file_history=История | ||||
| file_view_raw=Посмотреть исходник | ||||
| file_permalink=Permalink | ||||
| 
 | ||||
| commits.commits=Коммиты | ||||
| commits.search=Поиск коммитов | ||||
|  |  | |||
|  | @ -343,6 +343,7 @@ releases=版本发布 | |||
| file_raw=原始文件 | ||||
| file_history=文件历史 | ||||
| file_view_raw=查看原始文件 | ||||
| file_permalink=Permalink | ||||
| 
 | ||||
| commits.commits=次代码提交 | ||||
| commits.search=搜索提交历史 | ||||
|  |  | |||
|  | @ -341,6 +341,7 @@ releases=版本發佈 | |||
| file_raw=原始文件 | ||||
| file_history=文件歷史 | ||||
| file_view_raw=查看原始文件 | ||||
| file_permalink=Permalink | ||||
| 
 | ||||
| commits.commits=次代碼提交 | ||||
| commits.search=搜索提交歷史 | ||||
|  |  | |||
|  | @ -3,13 +3,13 @@ Docker | |||
| 
 | ||||
| TOOLS ARE WRITTEN FOR TESTING AND TO SEE WHAT IT IS! | ||||
| 
 | ||||
| For this to work you will need the nifty docker tool [fig]. | ||||
| For this to work you will need the nifty docker tool [docker-compose]. | ||||
| 
 | ||||
| The most simple setup will look like this: | ||||
| 
 | ||||
| ```sh | ||||
| ./assemble_blocks.sh docker_gogs w_db option_db_mysql | ||||
| fig up | ||||
| docker-compose up | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
|  | @ -22,21 +22,21 @@ How does it work | |||
| ---------------- | ||||
| 
 | ||||
| `./assemble_blocks.sh` will look in `blocks` for subdirectories. | ||||
| In the subdirectories there are three relevant files: `Dockerfile`, `config` and `fig`. | ||||
| In the subdirectories there are three relevant files: `Dockerfile`, `config` and `docker-compose`. | ||||
| 
 | ||||
| `Dockerfile` will be copied to `docker/` (also means last `Dockerfile` wins). | ||||
| 
 | ||||
| The `config` file contains lines which will in the gogs docker container end up in `$GOGS_PATH/custom/config/app.ini` and by this gogs will be configured. | ||||
| Here you can define things like the MySQL server for your database block. | ||||
| 
 | ||||
| The `fig` file will just be added to `fig.yml`, which is used by fig to manage your containers. | ||||
| The `docker-compose` file will just be added to `docker-compose.yml`, which is used by docker-compose to manage your containers. | ||||
| This includes container linking! | ||||
| 
 | ||||
| Just have a look at them and it will be clear how to write your own blocks. | ||||
| 
 | ||||
| Just some things | ||||
| 
 | ||||
|     - all files (`Dockerfile`, `fig` and `config`) are optional | ||||
|     - all files (`Dockerfile`, `docker-compose` and `config`) are optional | ||||
|     - the gogs block should always be the first block | ||||
| 
 | ||||
| Currently the blocks are designed that, the blocks that start with `docker` pull in the base docker image. | ||||
|  | @ -57,14 +57,11 @@ Here is a more elaborated example | |||
| 
 | ||||
| ```sh | ||||
| ./assemble_blocks.sh docker_gogs w_db_cache_session option_db_postgresql option_cache_redis option_session_mysql | ||||
| fig up | ||||
| docker-compose up | ||||
| ``` | ||||
| 
 | ||||
| This will set up four containters and link them proberly. One for each of | ||||
| 
 | ||||
|     - gogs | ||||
|     - database (postgresql) | ||||
|     - cache (redis) | ||||
| docker-compose | ||||
|     - session (mysql) | ||||
| 
 | ||||
| WARNING: This will not work at the Moment! MySQL session is broken! | ||||
|  | @ -73,7 +70,7 @@ WARNING: This will not work at the Moment! MySQL session is broken! | |||
| Remark | ||||
| ------ | ||||
| 
 | ||||
| After you execute `assemble_blocks.sh` you should always trigger `fig build` to inculde the the new init script `init_gogs.sh` in the docker image. | ||||
| After you execute `assemble_blocks.sh` you should always trigger `docker-compose build` to inculde the the new init script `init_gogs.sh` in the docker image. | ||||
| 
 | ||||
| If you want to use another GoGS docker file, but keep everything else the same, you can create a block, e.g. `docker_gogs_custom`, with only a `Dockerfile` and call | ||||
| 
 | ||||
|  | @ -86,4 +83,4 @@ This will pull in the `Dockerfile` from `docker_gogs` instead of the one from `d | |||
| `Dockerfile`s for the `master` and `dev` branch are provided as `docker_gogs` and `docker_gogs_dev` | ||||
| 
 | ||||
| 
 | ||||
| [fig]:http://www.fig.sh/ | ||||
| [docker-compose]:https://docs.docker.com/compose/ | ||||
|  |  | |||
|  | @ -10,8 +10,8 @@ gogs_config_file=conf.tmp | |||
| gogs_config=config | ||||
| gogs_init_file=$docker_dir/init_gogs.sh | ||||
| 
 | ||||
| fig_file=fig.yml | ||||
| fig_config=fig | ||||
| compose_file=docker-compose.yml | ||||
| compose_config=docker-compose | ||||
| 
 | ||||
| gogs_init_template=$template_dir/init_gogs.sh.tpl | ||||
| 
 | ||||
|  | @ -28,7 +28,7 @@ if [ "$#" == 0 ]; then | |||
|     exit 0 | ||||
| fi | ||||
| 
 | ||||
| for file in $gogs_config_file $fig_file; do | ||||
| for file in $gogs_config_file $compose_file; do | ||||
|     if [ -e $file ]; then | ||||
|         echo "Deleting $file" | ||||
|         rm $file | ||||
|  | @ -53,10 +53,10 @@ for dir in $@; do | |||
|         echo "" >> $gogs_config_file | ||||
|     fi | ||||
| 
 | ||||
|     if [ -e $current_dir/$fig_config ]; then | ||||
|         echo "Adding $current_dir/$fig_config to $fig_file" | ||||
|         cat $current_dir/fig >> $fig_file | ||||
|         echo "" >> $fig_file | ||||
|     if [ -e $current_dir/$compose_config ]; then | ||||
|         echo "Adding $current_dir/$compose_config to $compose_file" | ||||
|         cat $current_dir/$compose_config >> $compose_file | ||||
|         echo "" >> $compose_file | ||||
|     fi | ||||
| done | ||||
| 
 | ||||
|  | @ -69,4 +69,4 @@ d | |||
| if [ -e $gogs_config_file ]; then | ||||
|     echo "Removing temporary GoGS config" | ||||
|     rm $gogs_config_file | ||||
| fi | ||||
| fi | ||||
|  |  | |||
|  | @ -1,23 +1,20 @@ | |||
| FROM ubuntu:14.04 | ||||
| FROM buildpack-deps:trusty-scm | ||||
| 
 | ||||
| # This part is taken from the official docker image -------------------- | ||||
| 
 | ||||
| RUN apt-get update && apt-get install -y \ | ||||
| 		build-essential ca-certificates curl \ | ||||
| 		bzr git mercurial openssh-client\ | ||||
| 		--no-install-recommends | ||||
| 		build-essential --no-install-recommends | ||||
| 
 | ||||
| ENV GOLANG_VERSION 1.3 | ||||
| 
 | ||||
| RUN curl -sSL http://golang.org/dl/go$GOLANG_VERSION.src.tar.gz \ | ||||
| 	| tar -v -C /usr/src -xz | ||||
| WORKDIR /usr/src/go | ||||
| RUN curl -sSL https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz \ | ||||
| 		| tar -v -C /usr/src -xz | ||||
| 
 | ||||
| RUN cd src && ./make.bash --no-clean 2>&1 | ||||
| RUN cd /usr/src/go/src && ./make.bash --no-clean 2>&1 | ||||
| 
 | ||||
| ENV PATH /usr/src/go/bin:$PATH | ||||
| 
 | ||||
| RUN mkdir -p /go/src | ||||
| RUN mkdir -p /go/src /go/bin && chmod -R 777 /go | ||||
| ENV GOPATH /go | ||||
| ENV PATH /go/bin:$PATH | ||||
| WORKDIR /go | ||||
|  |  | |||
|  | @ -1,24 +1,20 @@ | |||
| FROM ubuntu:14.04 | ||||
| FROM buildpack-deps:trusty-scm | ||||
| 
 | ||||
| # This part is derived from the official docker image ------------------ | ||||
| # This part is taken from the official docker image -------------------- | ||||
| 
 | ||||
| RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ | ||||
| 		apt-get install -qy \ | ||||
| 		build-essential ca-certificates curl \ | ||||
| 		bzr git mercurial openssh-client\ | ||||
| 		--no-install-recommends | ||||
| RUN apt-get update && apt-get install -y \ | ||||
| 		build-essential --no-install-recommends | ||||
| 
 | ||||
| ENV GOLANG_VERSION 1.3 | ||||
| 
 | ||||
| RUN curl -sSL http://golang.org/dl/go$GOLANG_VERSION.src.tar.gz \ | ||||
| 	| tar -v -C /usr/src -xz | ||||
| WORKDIR /usr/src/go | ||||
| RUN curl -sSL https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz \ | ||||
| 		| tar -v -C /usr/src -xz | ||||
| 
 | ||||
| RUN cd src && ./make.bash --no-clean 2>&1 | ||||
| RUN cd /usr/src/go/src && ./make.bash --no-clean 2>&1 | ||||
| 
 | ||||
| ENV PATH /usr/src/go/bin:$PATH | ||||
| 
 | ||||
| RUN mkdir -p /go/src | ||||
| RUN mkdir -p /go/src /go/bin && chmod -R 777 /go | ||||
| ENV GOPATH /go | ||||
| ENV PATH /go/bin:$PATH | ||||
| WORKDIR /go | ||||
|  |  | |||
|  | @ -173,13 +173,12 @@ func (repo *Repository) refreshCollaboratorAccesses(e Engine, accessMap map[int6 | |||
| func (repo *Repository) recalculateTeamAccesses(e Engine, ignTeamID int64) (err error) { | ||||
| 	accessMap := make(map[int64]AccessMode, 20) | ||||
| 
 | ||||
| 	if err = repo.refreshCollaboratorAccesses(e, accessMap); err != nil { | ||||
| 		return fmt.Errorf("refreshCollaboratorAccesses: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	if err = repo.getOwner(e); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if err = repo.refreshCollaboratorAccesses(e, accessMap); err != nil { | ||||
| 		return fmt.Errorf("refreshCollaboratorAccesses: %v", err) | ||||
| 	} | ||||
| 	if repo.Owner.IsOrganization() { | ||||
| 		if err = repo.Owner.getTeams(e); err != nil { | ||||
| 			return err | ||||
|  |  | |||
|  | @ -11,6 +11,7 @@ import ( | |||
| ) | ||||
| 
 | ||||
| type AdminEditUserForm struct { | ||||
| 	FullName     string `form:"fullname" binding:"MaxSize(100)"` | ||||
| 	Email        string `binding:"Required;Email;MaxSize(50)"` | ||||
| 	Password     string `binding:"OmitEmpty;MinSize(6);MaxSize(255)"` | ||||
| 	Website      string `binding:"MaxSize(50)"` | ||||
|  |  | |||
|  | @ -116,7 +116,7 @@ func (f *AddEmailForm) Validate(ctx *macaron.Context, errs binding.Errors) bindi | |||
| } | ||||
| 
 | ||||
| type ChangePasswordForm struct { | ||||
| 	OldPassword string `form:"old_password" binding:"Required;MinSize(6);MaxSize(255)"` | ||||
| 	OldPassword string `form:"old_password" binding:"Required;MinSize(1);MaxSize(255)"` | ||||
| 	Password    string `form:"password" binding:"Required;MinSize(6);MaxSize(255)"` | ||||
| 	Retype      string `form:"retype"` | ||||
| } | ||||
|  |  | |||
|  | @ -198,7 +198,7 @@ func RenderRawMarkdown(body []byte, urlPrefix string) []byte { | |||
| 	extensions |= blackfriday.EXTENSION_FENCED_CODE | ||||
| 	extensions |= blackfriday.EXTENSION_AUTOLINK | ||||
| 	extensions |= blackfriday.EXTENSION_STRIKETHROUGH | ||||
| 	extensions |= blackfriday.EXTENSION_HARD_LINE_BREAK | ||||
| 	//extensions |= blackfriday.EXTENSION_HARD_LINE_BREAK
 | ||||
| 	extensions |= blackfriday.EXTENSION_SPACE_HEADERS | ||||
| 	extensions |= blackfriday.EXTENSION_NO_EMPTY_LINE_BEFORE_BLOCK | ||||
| 
 | ||||
|  |  | |||
|  | @ -18,8 +18,6 @@ case "$1" in | |||
|     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} | ||||
|     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} | ||||
| 
 | ||||
|  |  | |||
|  | @ -185,6 +185,7 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) { | |||
| 		u.EncodePasswd() | ||||
| 	} | ||||
| 
 | ||||
| 	u.FullName = form.FullName | ||||
| 	u.Email = form.Email | ||||
| 	u.Website = form.Website | ||||
| 	u.Location = form.Location | ||||
|  |  | |||
|  | @ -27,7 +27,6 @@ func ServeBlob(ctx *middleware.Context, blob *git.Blob) error { | |||
| 
 | ||||
| 	_, isTextFile := base.IsTextFile(buf) | ||||
| 	_, isImageFile := base.IsImageFile(buf) | ||||
| 	ctx.Resp.Header().Set("Content-Type", "text/plain") | ||||
| 	if !isTextFile && !isImageFile { | ||||
| 		ctx.Resp.Header().Set("Content-Disposition", "attachment; filename="+path.Base(ctx.Repo.TreeName)) | ||||
| 		ctx.Resp.Header().Set("Content-Transfer-Encoding", "binary") | ||||
|  |  | |||
|  | @ -152,6 +152,7 @@ func ShowSSHKeys(ctx *middleware.Context, uid int64) { | |||
| 	var buf bytes.Buffer | ||||
| 	for i := range keys { | ||||
| 		buf.WriteString(keys[i].OmitEmail()) | ||||
| 		buf.WriteString("\n") | ||||
| 	} | ||||
| 	ctx.RenderData(200, buf.Bytes()) | ||||
| } | ||||
|  |  | |||
|  | @ -4,8 +4,14 @@ rm -rf $outPath | |||
| mkdir $outPath | ||||
| 
 | ||||
| go build ../gogs.go | ||||
| chmod +x gogs | ||||
| mv gogs $outPath/ | ||||
| PLATFORM=`uname | cut -d _ -f 1` | ||||
| if [ $PLATFORM = "MINGW32" ] || [ $PLATFORM = "MINGW64" ] || [ $PLATFORM = "CYGWIN" ]; then | ||||
| 	GOGS_EXE=gogs.exe | ||||
| else | ||||
| 	GOGS_EXE=gogs | ||||
| fi | ||||
| chmod +x $GOGS_EXE | ||||
| mv $GOGS_EXE $outPath/ | ||||
| 
 | ||||
| cp -r ../conf/ $outPath/conf/ | ||||
| cp -r ../custom/ $outPath/custom/ | ||||
|  |  | |||
|  | @ -49,10 +49,12 @@ do_start() | |||
| 	#   1 if daemon was already running | ||||
| 	#   2 if daemon could not be started | ||||
| 	sh -c "start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\ | ||||
| 			--exec $DAEMON -- $DAEMON_ARGS --test > /dev/null \\ | ||||
| 			--test --chdir $WORKINGDIR --chuid $USER \\ | ||||
| 			--exec $DAEMON -- $DAEMON_ARGS > /dev/null \\ | ||||
| 			|| return 1" | ||||
| 	sh -c "start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \\ | ||||
| 			--background --exec /bin/su -- - $USER -c \"cd \\\"$WORKINGDIR\\\" && $DAEMON -- $DAEMON_ARGS\" \\ | ||||
| 			--background --chdir $WORKINGDIR --chuid $USER \\ | ||||
| 			--exec $DAEMON -- $DAEMON_ARGS \\ | ||||
| 			|| return 2" | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -21,7 +21,7 @@ load_rc_config $name | |||
| : ${gogs_enable:="NO"} | ||||
| : ${gogs_directory:="/home/git"} | ||||
| 
 | ||||
| command="${gogs_directory}/scripts/start.sh" | ||||
| command="${gogs_directory}/gogs web" | ||||
| 
 | ||||
| pidfile="${gogs_directory}/${name}.pid" | ||||
| 
 | ||||
|  |  | |||
|  | @ -14,7 +14,7 @@ Group=git | |||
| WorkingDirectory=/home/git/gogs | ||||
| ExecStart=/home/git/gogs/gogs web | ||||
| Restart=always | ||||
| Environment="USER=git","HOME=/home/git" | ||||
| Environment=USER=git HOME=/home/git | ||||
| 
 | ||||
| [Install] | ||||
| WantedBy=multi-user.target | ||||
|  |  | |||
|  | @ -32,6 +32,10 @@ | |||
|                                     <label>{{.i18n.Tr "username"}}</label> | ||||
|                                     <label class="text-left">{{.User.Name}}</label> | ||||
|                                 </div> | ||||
|                                 <div class="field"> | ||||
|                                     <label for="full-name">{{.i18n.Tr "settings.full_name"}}</label> | ||||
|                                     <input class="ipt ipt-large ipt-radius {{if .Err_FullName}}ipt-error{{end}}" id="full-name" name="fullname" type="text" value="{{.User.FullName}}" /> | ||||
|                                 </div> | ||||
|                                 <div class="field"> | ||||
|                                     <label class="req" for="email">{{.i18n.Tr "email"}}</label> | ||||
|                                     <input class="ipt ipt-large ipt-radius {{if .Err_Email}}ipt-error{{end}}" id="email" name="email" type="email" value="{{.User.Email}}" required/> | ||||
|  |  | |||
|  | @ -6,6 +6,7 @@ | |||
| 	<meta name="author" content="Gogs - Go Git Service" /> | ||||
| 	<meta name="description" content="Gogs(Go Git Service) a painless self-hosted Git Service written in Go" /> | ||||
| 	<meta name="keywords" content="go, git, self-hosted, gogs"> | ||||
| 	<meta name="referrer" content="no-referrer" /> | ||||
| 	<meta name="_csrf" content="{{.CsrfToken}}" /> | ||||
| 	{{if .GoGetImport}} | ||||
| 	<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}"> | ||||
|  |  | |||
|  | @ -8,6 +8,7 @@ | |||
|         <meta name="author" content="Gogs - Go Git Service" /> | ||||
| 		<meta name="description" content="Gogs(Go Git Service) is a GitHub-like clone in the Go Programming Language" /> | ||||
| 		<meta name="keywords" content="go, git"> | ||||
| 		<meta name="referrer" content="no-referrer" /> | ||||
| 		<meta name="_csrf" content="{{.CsrfToken}}" /> | ||||
| 		{{if .GoGetImport}}<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">{{end}} | ||||
| 
 | ||||
|  |  | |||
|  | @ -185,7 +185,7 @@ | |||
|               </div> | ||||
|               <div class="inline field {{if .Err_AdminPasswd}}error{{end}}"> | ||||
|                 <label for="admin_passwd">{{.i18n.Tr "install.admin_password"}}</label> | ||||
|                 <input id="admin_passwd" name="admin_passwd" value="{{.admin_passwd}}"> | ||||
|                 <input id="admin_passwd" name="admin_passwd" type="password" value="{{.admin_passwd}}"> | ||||
|               </div> | ||||
|               <div class="inline field {{if .Err_AdminPasswd}}error{{end}}"> | ||||
|                 <label for="admin_confirm_passwd">{{.i18n.Tr "install.confirm_password"}}</label> | ||||
|  | @ -208,4 +208,4 @@ | |||
| 		</div> | ||||
| 	</div> | ||||
| </div> | ||||
| {{template "base/footer" .}} | ||||
| {{template "base/footer" .}} | ||||
|  |  | |||
|  | @ -6,6 +6,7 @@ | |||
|         <meta name="author" content="Gogs - Go Git Service" /> | ||||
| 		<meta name="description" content="Gogs(Go Git Service) a painless self-hosted Git Service written in Go" /> | ||||
| 		<meta name="keywords" content="go, git, self-hosted, gogs"> | ||||
| 		<meta name="referrer" content="no-referrer" /> | ||||
| 		<meta name="_csrf" content="{{.CsrfToken}}" /> | ||||
| 		{{if .GoGetImport}}<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">{{end}} | ||||
| 
 | ||||
|  |  | |||
|  | @ -12,6 +12,11 @@ | |||
|             <strong class="file-name">{{.FileName}}</strong><span class="file-size">{{FileSize .FileSize}}</span> | ||||
| 	    {{end}} | ||||
|         {{if not .ReadmeInList}} | ||||
|             {{if not .IsCommit}} | ||||
|                 <a class="right" href="{{.RepoLink}}/src/{{.CommitId}}/{{.TreeName}}"> | ||||
|                     <button class="btn btn-medium btn-gray btn-right-radius btn-comb">{{.i18n.Tr "repo.file_permalink"}}</button> | ||||
|                 </a> | ||||
|             {{end}} | ||||
|             <a class="right" href="{{.RepoLink}}/commits/{{EscapePound .BranchName}}/{{.TreeName}}"> | ||||
|                 <button class="btn btn-medium btn-gray btn-right-radius btn-comb">{{.i18n.Tr "repo.file_history"}}</button> | ||||
|             </a> | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue