예제 #1
0
파일: srnd.go 프로젝트: 4cdn/srndv2
func main() {

	// debugger
	// go func() {
	//   log.Println(http.ListenAndServe("[::]:6060", nil))
	// }()

	if len(os.Args) > 1 {
		action := os.Args[1]
		if action == "setup" {
			var daemon srnd.NNTPDaemon
			log.Println("Setting up SRNd base...")
			daemon.Setup()
			log.Println("Setup Done")
		} else if action == "run" {
			log.Printf("Starting up %s...", srnd.Version())
			var daemon srnd.NNTPDaemon
			daemon.Setup().Run()
		} else if action == "tool" {
			if len(os.Args) > 2 {
				tool := os.Args[2]
				if tool == "rethumb" {
					srnd.ThumbnailTool()
				} else if tool == "keygen" {
					srnd.KeygenTool()
				} else {
					fmt.Fprintf(os.Stdout, "Usage: %s tool [rethumb|keygen]\n", os.Args[0])
				}
			} else {
				fmt.Fprintf(os.Stdout, "Usage: %s tool [rethumb|keygen]\n", os.Args[0])
			}
		} else {
			log.Println("Invalid action:", action)
		}
	} else {
		fmt.Fprintf(os.Stdout, "Usage: %s [setup|run|tool]\n", os.Args[0])
	}
}
예제 #2
0
파일: srnd.go 프로젝트: ZiRo-/srndv2
func main() {

	daemon := new(srnd.NNTPDaemon)
	if len(os.Args) > 1 {
		action := os.Args[1]
		if action == "setup" {
			log.Println("Setting up SRNd base...")
			daemon.Setup()
			log.Println("Setup Done")
		} else if action == "run" {
			log.Printf("Starting up %s...", srnd.Version())
			daemon.Setup()
			c := make(chan os.Signal, 1)
			signal.Notify(c, os.Interrupt)
			signal.Notify(c, syscall.SIGTERM)
			go func() {
				<-c
				log.Println("Shutting down...")
				daemon.End()
				os.Exit(0)
			}()
			daemon.Run()
		} else if action == "tool" {
			if len(os.Args) > 2 {
				tool := os.Args[2]
				if tool == "mod" {
					if len(os.Args) >= 5 {
						action := os.Args[3]
						if action == "add" {
							pk := os.Args[4]
							daemon.Setup()
							db := daemon.GetDatabase()
							err := db.MarkModPubkeyGlobal(pk)
							if err != nil {
								log.Fatal(err)
							}
						} else if action == "del" {
							pk := os.Args[4]
							daemon.Setup()
							db := daemon.GetDatabase()
							err := db.UnMarkModPubkeyGlobal(pk)
							if err != nil {
								log.Fatal(err)
							}
						}
					} else {
						fmt.Fprintf(os.Stdout, "usage: %s tool mod [add|del] pubkey\n", os.Args[0])
					}
				} else if tool == "rethumb" {
					srnd.ThumbnailTool()
				} else if tool == "keygen" {
					srnd.KeygenTool()
				} else if tool == "nntp" {
					if len(os.Args) >= 5 {
						action := os.Args[3]
						if action == "del-login" {
							daemon.Setup()
							daemon.DelNNTPLogin(os.Args[4])
						} else if action == "add-login" {
							if len(os.Args) == 6 {
								username := os.Args[4]
								passwd := os.Args[5]
								daemon.Setup()
								daemon.AddNNTPLogin(username, passwd)
							} else {
								fmt.Fprintf(os.Stdout, "Usage: %s tool nntp add-login username password\n", os.Args[0])
							}
						} else {
							fmt.Fprintf(os.Stdout, "Usage: %s tool nntp [add-login|del-login]\n", os.Args[0])
						}
					} else {
						fmt.Fprintf(os.Stdout, "Usage: %s tool nntp [add-login|del-login]\n", os.Args[0])
					}
				} else {
					fmt.Fprintf(os.Stdout, "Usage: %s tool [rethumb|keygen|nntp|mod]\n", os.Args[0])
				}
			} else {
				fmt.Fprintf(os.Stdout, "Usage: %s tool [rethumb|keygen|nntp|mod]\n", os.Args[0])
			}
		} else {
			log.Println("Invalid action:", action)
		}
	} else {
		fmt.Fprintf(os.Stdout, "Usage: %s [setup|run|tool]\n", os.Args[0])
	}
}