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 contains the application version number. It's set via ldflags
15 // when building.
16 Version = ""
17
18 // CommitSHA contains the SHA of the commit that this application was built
19 // against. It's set via lgflags when building.
20 CommitSHA = ""
21
22 version = flag.Bool("version", false, "display version")
23)
24
25func main() {
26 flag.Usage = func() {
27 fmt.Fprintf(os.Stderr, "Soft Serve, a self-hostable Git server for the command line.\n\n")
28 flag.PrintDefaults()
29 }
30
31 flag.Parse()
32
33 if *version {
34 if len(CommitSHA) > 7 {
35 CommitSHA = CommitSHA[:7]
36 }
37 if Version == "" {
38 Version = "(built from source)"
39 }
40
41 fmt.Printf("Soft Serve %s", Version)
42 if len(CommitSHA) > 0 {
43 fmt.Printf(" (%s)", CommitSHA)
44 }
45
46 fmt.Println()
47 os.Exit(0)
48 }
49
50 cfg := config.DefaultConfig()
51 s := server.NewServer(cfg)
52 log.Printf("Starting SSH server on %s:%d\n", cfg.Host, cfg.Port)
53 err := s.Start()
54 if err != nil {
55 log.Fatalln(err)
56 }
57}