2013-02-02 15:01:01 -08:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2018-10-09 21:55:35 -07:00
|
|
|
"flag"
|
|
|
|
"fmt"
|
2018-04-06 01:03:57 -07:00
|
|
|
"os"
|
2018-10-09 21:55:35 -07:00
|
|
|
"strings"
|
2013-02-02 15:01:01 -08:00
|
|
|
)
|
|
|
|
|
2018-11-26 15:29:26 -08:00
|
|
|
var versionStr string
|
2018-05-04 17:41:46 -07:00
|
|
|
var buildtimeString string // set in Makefile, format: YRMMDD.HHMM
|
2013-02-02 15:01:01 -08:00
|
|
|
|
|
|
|
func main() {
|
2019-05-14 15:58:52 -07:00
|
|
|
defer closeHandle(db)
|
2013-04-20 01:21:40 -07:00
|
|
|
initConfig()
|
2014-02-09 00:35:02 -08:00
|
|
|
connectToSQLServer()
|
2018-10-09 21:55:35 -07:00
|
|
|
parseCommandLine()
|
|
|
|
|
2018-11-26 15:29:26 -08:00
|
|
|
printf(0, "Starting gochan v%s.%s, using verbosity level %d\n", versionStr, buildtimeString, config.Verbosity)
|
2016-01-03 23:23:04 -08:00
|
|
|
println(0, "Loading and parsing templates...")
|
2019-06-13 16:36:02 -07:00
|
|
|
if err := initTemplates("all"); err != nil {
|
2018-05-23 12:15:46 -07:00
|
|
|
handleError(0, customError(err))
|
2018-04-06 01:03:57 -07:00
|
|
|
os.Exit(2)
|
|
|
|
}
|
|
|
|
|
2014-01-31 17:18:21 -08:00
|
|
|
initServer()
|
2015-12-24 23:26:13 -08:00
|
|
|
}
|
2018-10-09 21:55:35 -07:00
|
|
|
|
|
|
|
func parseCommandLine() {
|
|
|
|
var newstaff string
|
|
|
|
var delstaff string
|
|
|
|
var rank int
|
|
|
|
var err error
|
|
|
|
flag.StringVar(&newstaff, "newstaff", "", "<newusername>:<newpassword>")
|
|
|
|
flag.StringVar(&delstaff, "delstaff", "", "<username>")
|
|
|
|
flag.IntVar(&rank, "rank", 0, "New staff member rank, to be used with -newstaff or -delstaff")
|
|
|
|
flag.Parse()
|
|
|
|
|
|
|
|
if newstaff != "" {
|
|
|
|
arr := strings.Split(newstaff, ":")
|
|
|
|
if len(arr) < 2 || delstaff != "" {
|
|
|
|
flag.Usage()
|
|
|
|
os.Exit(2)
|
|
|
|
}
|
|
|
|
printf(0, "Creating new staff: '%s', with password: '%s' and rank: %d\n", arr[0], arr[1], rank)
|
|
|
|
if err = newStaff(arr[0], arr[1], rank); err != nil {
|
2018-10-22 11:01:51 -07:00
|
|
|
handleError(0, err.Error())
|
2018-10-09 21:55:35 -07:00
|
|
|
os.Exit(2)
|
|
|
|
}
|
|
|
|
os.Exit(0)
|
|
|
|
}
|
|
|
|
if delstaff != "" {
|
|
|
|
if newstaff != "" {
|
|
|
|
flag.Usage()
|
|
|
|
os.Exit(2)
|
|
|
|
}
|
|
|
|
printf(0, "Are you sure you want to delete the staff account '%s'?[y/N]: ", delstaff)
|
|
|
|
var answer string
|
|
|
|
fmt.Scanln(&answer)
|
|
|
|
answer = strings.ToLower(answer)
|
|
|
|
if answer == "y" || answer == "yes" {
|
|
|
|
if err = deleteStaff(delstaff); err != nil {
|
|
|
|
printf(0, "Error deleting '%s': %s\n", delstaff, err.Error())
|
|
|
|
os.Exit(2)
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
println(0, "Not deleting.")
|
|
|
|
}
|
|
|
|
os.Exit(0)
|
|
|
|
}
|
|
|
|
}
|