commit
						97170916a3
					
				
					 2 changed files with 33 additions and 0 deletions
				
			
		
							
								
								
									
										10
									
								
								cmd/web.go
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								cmd/web.go
									
									
									
									
									
								
							|  | @ -60,6 +60,11 @@ and it takes care of all the other things for you`, | |||
| 			Value: "custom/conf/app.ini", | ||||
| 			Usage: "Custom configuration file path", | ||||
| 		}, | ||||
| 		cli.StringFlag{ | ||||
| 			Name:  "pid, P", | ||||
| 			Value: "custom/run/app.pid", | ||||
| 			Usage: "Custom pid file path", | ||||
| 		}, | ||||
| 	}, | ||||
| } | ||||
| 
 | ||||
|  | @ -156,6 +161,11 @@ func runWeb(ctx *cli.Context) error { | |||
| 	if ctx.IsSet("config") { | ||||
| 		setting.CustomConf = ctx.String("config") | ||||
| 	} | ||||
| 
 | ||||
| 	if ctx.IsSet("pid") { | ||||
| 		setting.CustomPID = ctx.String("pid") | ||||
| 	} | ||||
| 
 | ||||
| 	routers.GlobalInit() | ||||
| 
 | ||||
| 	m := newMacaron() | ||||
|  |  | |||
|  | @ -392,6 +392,7 @@ var ( | |||
| 	Cfg          *ini.File | ||||
| 	CustomPath   string // Custom directory path
 | ||||
| 	CustomConf   string | ||||
| 	CustomPID    string | ||||
| 	ProdMode     bool | ||||
| 	RunUser      string | ||||
| 	IsWindows    bool | ||||
|  | @ -471,6 +472,22 @@ func IsRunUserMatchCurrentUser(runUser string) (string, bool) { | |||
| 	return currentUser, runUser == currentUser | ||||
| } | ||||
| 
 | ||||
| func createPIDFile(pidPath string) { | ||||
| 	currentPid := os.Getpid() | ||||
| 	if err := os.MkdirAll(filepath.Dir(pidPath), os.ModePerm); err != nil { | ||||
| 		log.Fatal(4, "Can't create PID folder on %s", err) | ||||
| 	} | ||||
| 
 | ||||
| 	file, err := os.Create(pidPath) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(4, "Can't create PID file: %v", err) | ||||
| 	} | ||||
| 	defer file.Close() | ||||
| 	if _, err := file.WriteString(strconv.FormatInt(int64(currentPid), 10)); err != nil { | ||||
| 		log.Fatal(4, "Can'write PID information on %s", err) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // NewContext initializes configuration context.
 | ||||
| // NOTE: do not print any log except error.
 | ||||
| func NewContext() { | ||||
|  | @ -498,6 +515,12 @@ please consider changing to GITEA_CUSTOM`) | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if len(CustomPID) == 0 { | ||||
| 		CustomPID = CustomPath + "/run/app.pid" | ||||
| 	} | ||||
| 
 | ||||
| 	createPIDFile(CustomPID) | ||||
| 
 | ||||
| 	if len(CustomConf) == 0 { | ||||
| 		CustomConf = CustomPath + "/conf/app.ini" | ||||
| 	} | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue