1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package main
- import (
- "path"
- "fmt"
- "os"
- "git.swzry.com/NSMCServerLauncher/Logger"
- "git.swzry.com/NSMCServerLauncher/Utils"
- "git.swzry.com/NSMCServerLauncher/SSHServer"
- "git.swzry.com/NSMCServerLauncher/Commands"
- )
- var CurrentPath string
- var MainThreadBlockChan chan byte
- func main(){
- cp,err := Utils.GetCurrentDirectory()
- if(err != nil){
- fmt.Println("[StdOutLog][Fatal Error] Failed Get PWD: ",err)
- return
- }
- CurrentPath = cp
- if r,err := Utils.PathExists(path.Join(CurrentPath,"sysfiles")); ((!r) || (err != nil)) {
- fmt.Println("[StdOutLog][Fatal Error] System File Dir './sysfiles/' Not Exist! ")
- return
- }
- isinit := false
- if r,err := Utils.PathExists(path.Join(CurrentPath,"data")); ((!r) || (err != nil)) {
- fmt.Println("[StdOutLog][WARNING] Dir './data/' Not Exist! Will Create One.")
- isinit = true
- if err := os.MkdirAll(path.Join(CurrentPath,"data"),0777);err != nil {
- fmt.Println("[StdOutLog][Fatal Error] Failed Create Dir './data/' : ",err)
- return
- }
- }
- if r,err := Utils.PathExists(path.Join(CurrentPath,"data","conf")); ((!r) || (err != nil)) {
- fmt.Println("[StdOutLog][WARNING] Config Dir './data/conf/' Not Exist! Will Create One.")
- isinit = true
- if err := os.MkdirAll(path.Join(CurrentPath,"data","conf"),0777);err != nil {
- fmt.Println("[StdOutLog][Fatal Error] Failed Create Dir './data/conf/' : ",err)
- return
- }
- }
- if r,err := Utils.PathExists(path.Join(CurrentPath,"data","conf", "logger.conf")); ((!r) || (err != nil)) {
- fmt.Println("[StdOutLog][WARNING] Config File './data/conf/logger.conf' Not Exist! Will Create A Template Config File..")
- isinit = true
- if _,err := Utils.CopyFile(path.Join(CurrentPath,"data","conf", "logger.conf"),path.Join(CurrentPath,"sysfiles","conftpl", "logger.conf"));err != nil {
- fmt.Println("[StdOutLog][Fatal Error] Failed Copy Template Config File './data/conf/logger.conf' : ",err)
- return
- }
- }
- if r,err := Utils.PathExists(path.Join(CurrentPath,"data","conf", "sshd.conf")); ((!r) || (err != nil)) {
- fmt.Println("[StdOutLog][WARNING] Config File './data/conf/sshd.conf' Not Exist! Will Create A Template Config File..")
- isinit = true
- if _,err := Utils.CopyFile(path.Join(CurrentPath,"data","conf", "sshd.conf"),path.Join(CurrentPath,"sysfiles","conftpl", "sshd.conf"));err != nil {
- fmt.Println("[StdOutLog][Fatal Error] Failed Copy Template Config File './data/conf/sshd.conf' : ",err)
- return
- }
- }
- // TODO: Other Config File Process Code Here
- if(isinit){
- fmt.Println("[StdOutLog][WARNING] At this time, we had created template config files for you, you should edit them and restart this server..")
- fmt.Println("[StdOutLog][INFO] Server Exit.")
- return
- }
- if Logger.LoadLoggerConfig(path.Join(CurrentPath,"data","conf", "logger.conf")) != nil{
- return
- }
- if Logger.InitLogger() != nil {
- return
- }
- fmt.Fprintln(&Logger.Log.SysInfo,"NSMC Server Launcher System Start.")
- if err := Utils.MkDirIfNotExist(path.Join(CurrentPath,"data","keys")); err != nil {
- fmt.Println("[StdOutLog][Fatal Error] Failed Create Dir '",path.Join(CurrentPath,"data","keys"),"' : ",err)
- return
- }
- if SSHServer.LoadSSHConfig(path.Join(CurrentPath,"data","conf", "sshd.conf")) != nil{
- return
- }
- fmt.Fprintln(&Logger.Log.SysInfo,"Regist Commands....")
- Commands.RegistAllCommands()
- fmt.Fprintln(&Logger.Log.SysInfo,"Start SSH Server...")
- go SSHServer.StartSSHServer(MainThreadBlockChan)
- <-MainThreadBlockChan
- }
|