485aa55585cfc98032151f78f5ca56ddd04e8d67

Author
Christian Muehlhaeuser <muesli@gmail.com>
Committer
Christian Rocha <christian@rocha.is>
Date

Message

Add --help and --version flags

Diff

 1diff --git a/README.md b/README.md
 2index 77fe0b96eb78e3d6ccd4470e0d64714808a60efd..68b6bfe69402c6b4e482c3fdf78e81158dc1702b 100644
 3--- a/README.md
 4+++ b/README.md
 5@@ -10,7 +10,7 @@ Soft Serve
 6     <a href="https://github.com/charmbracelet/soft-serve/actions"><img src="https://github.com/charmbracelet/soft-serve/workflows/build/badge.svg" alt="Build Status"></a>
 7 </p>
 8 
 9-A tasty, self-hosted Git server for the command line. 🍦
10+A tasty, self-hostable Git server for the command line. 🍦
11 
12 <img src="https://stuff.charm.sh/soft-serve/soft-serve-cli-demo.gif" width="700" alt="Soft Serve screencast">
13 
14diff --git a/main.go b/main.go
15index f6052c285da945e926d99b911beb1fdf4799118a..b9a702bc723f77557b4be84e34e43597114f52f9 100644
16--- a/main.go
17+++ b/main.go
18@@ -1,13 +1,42 @@
19 package main
20 
21 import (
22+	"flag"
23+	"fmt"
24 	"log"
25+	"os"
26 
27 	"github.com/charmbracelet/soft/config"
28 	"github.com/charmbracelet/soft/server"
29 )
30 
31+var (
32+	Version   = ""
33+	CommitSHA = ""
34+
35+	version = flag.Bool("version", false, "display version")
36+)
37+
38 func main() {
39+	flag.Parse()
40+
41+	if *version {
42+		if len(CommitSHA) > 7 {
43+			CommitSHA = CommitSHA[:7]
44+		}
45+		if Version == "" {
46+			Version = "(built from source)"
47+		}
48+
49+		fmt.Printf("Soft Serve %s", Version)
50+		if len(CommitSHA) > 0 {
51+			fmt.Printf(" (%s)", CommitSHA)
52+		}
53+
54+		fmt.Println()
55+		os.Exit(0)
56+	}
57+
58 	cfg := config.DefaultConfig()
59 	s := server.NewServer(cfg)
60 	log.Printf("Starting SSH server on %s:%d\n", cfg.Host, cfg.Port)