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", | 			Value: "custom/conf/app.ini", | ||||||
| 			Usage: "Custom configuration file path", | 			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") { | 	if ctx.IsSet("config") { | ||||||
| 		setting.CustomConf = ctx.String("config") | 		setting.CustomConf = ctx.String("config") | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
|  | 	if ctx.IsSet("pid") { | ||||||
|  | 		setting.CustomPID = ctx.String("pid") | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	routers.GlobalInit() | 	routers.GlobalInit() | ||||||
| 
 | 
 | ||||||
| 	m := newMacaron() | 	m := newMacaron() | ||||||
|  |  | ||||||
|  | @ -392,6 +392,7 @@ var ( | ||||||
| 	Cfg          *ini.File | 	Cfg          *ini.File | ||||||
| 	CustomPath   string // Custom directory path
 | 	CustomPath   string // Custom directory path
 | ||||||
| 	CustomConf   string | 	CustomConf   string | ||||||
|  | 	CustomPID    string | ||||||
| 	ProdMode     bool | 	ProdMode     bool | ||||||
| 	RunUser      string | 	RunUser      string | ||||||
| 	IsWindows    bool | 	IsWindows    bool | ||||||
|  | @ -471,6 +472,22 @@ func IsRunUserMatchCurrentUser(runUser string) (string, bool) { | ||||||
| 	return currentUser, runUser == currentUser | 	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.
 | // NewContext initializes configuration context.
 | ||||||
| // NOTE: do not print any log except error.
 | // NOTE: do not print any log except error.
 | ||||||
| func NewContext() { | 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 { | 	if len(CustomConf) == 0 { | ||||||
| 		CustomConf = CustomPath + "/conf/app.ini" | 		CustomConf = CustomPath + "/conf/app.ini" | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue