Add --help and --version flags

Christian Muehlhaeuser created

Change summary

README.md |  2 +-
main.go   | 29 +++++++++++++++++++++++++++++
2 files changed, 30 insertions(+), 1 deletion(-)

Detailed changes

README.md 🔗

@@ -10,7 +10,7 @@ Soft Serve
     <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>
 </p>
 
-A tasty, self-hosted Git server for the command line. 🍦
+A tasty, self-hostable Git server for the command line. 🍦
 
 <img src="https://stuff.charm.sh/soft-serve/soft-serve-cli-demo.gif" width="700" alt="Soft Serve screencast">
 

main.go 🔗

@@ -1,13 +1,42 @@
 package main
 
 import (
+	"flag"
+	"fmt"
 	"log"
+	"os"
 
 	"github.com/charmbracelet/soft/config"
 	"github.com/charmbracelet/soft/server"
 )
 
+var (
+	Version   = ""
+	CommitSHA = ""
+
+	version = flag.Bool("version", false, "display version")
+)
+
 func main() {
+	flag.Parse()
+
+	if *version {
+		if len(CommitSHA) > 7 {
+			CommitSHA = CommitSHA[:7]
+		}
+		if Version == "" {
+			Version = "(built from source)"
+		}
+
+		fmt.Printf("Soft Serve %s", Version)
+		if len(CommitSHA) > 0 {
+			fmt.Printf(" (%s)", CommitSHA)
+		}
+
+		fmt.Println()
+		os.Exit(0)
+	}
+
 	cfg := config.DefaultConfig()
 	s := server.NewServer(cfg)
 	log.Printf("Starting SSH server on %s:%d\n", cfg.Host, cfg.Port)