main.go

 1package main
 2
 3import (
 4	"flag"
 5	"fmt"
 6	"log"
 7	"os"
 8
 9	"github.com/charmbracelet/soft/config"
10	"github.com/charmbracelet/soft/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}