1package main
2
3import (
4 "flag"
5 "fmt"
6 "log"
7 "os"
8
9 "github.com/charmbracelet/soft-serve/config"
10 "github.com/charmbracelet/soft-serve/server"
11)
12
13var (
14 Version = ""
15 CommitSHA = ""
16
17 version = flag.Bool("version", false, "display version")
18)
19
20func main() {
21 flag.Usage = func() {
22 fmt.Fprintf(os.Stderr, "Soft Serve, a self-hostable Git server for the command line.\n\n")
23 flag.PrintDefaults()
24 }
25
26 flag.Parse()
27
28 if *version {
29 if len(CommitSHA) > 7 {
30 CommitSHA = CommitSHA[:7]
31 }
32 if Version == "" {
33 Version = "(built from source)"
34 }
35
36 fmt.Printf("Soft Serve %s", Version)
37 if len(CommitSHA) > 0 {
38 fmt.Printf(" (%s)", CommitSHA)
39 }
40
41 fmt.Println()
42 os.Exit(0)
43 }
44
45 cfg := config.DefaultConfig()
46 s := server.NewServer(cfg)
47 log.Printf("Starting SSH server on %s:%d\n", cfg.Host, cfg.Port)
48 err := s.Start()
49 if err != nil {
50 log.Fatalln(err)
51 }
52}