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}