this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

sever-parse: add thing

+51
+51
semver-parse/main.go
··· 1 + package main 2 + 3 + import ( 4 + "bufio" 5 + "fmt" 6 + "io" 7 + "os" 8 + 9 + "github.com/Masterminds/semver/v3" 10 + ) 11 + 12 + func main() { 13 + if err := realMain( 14 + os.Args, 15 + os.Stdin, 16 + os.Stdout, 17 + os.Stderr, 18 + ); err != nil { 19 + fmt.Fprintln(os.Stderr, err) 20 + } 21 + } 22 + 23 + func realMain( 24 + _ []string, 25 + stdin io.Reader, 26 + stdout io.Writer, 27 + stderr io.Writer, 28 + ) error { 29 + scanner := bufio.NewScanner(stdin) 30 + for scanner.Scan() { 31 + line := scanner.Text() 32 + version, err := semver.NewVersion(line) 33 + if err != nil { 34 + fmt.Fprintf(stderr, "%v: %v\n", err, line) 35 + continue 36 + } 37 + 38 + dump(stdout, version) 39 + } 40 + 41 + return scanner.Err() 42 + } 43 + 44 + func dump(w io.Writer, v *semver.Version) { 45 + fmt.Fprintf(w, "Version: %s\n", v) 46 + fmt.Fprintf(w, "Major: %d\n", v.Major()) 47 + fmt.Fprintf(w, "Minor: %d\n", v.Minor()) 48 + fmt.Fprintf(w, "Patch: %d\n", v.Patch()) 49 + fmt.Fprintf(w, "Prerelease: %s\n", v.Prerelease()) 50 + fmt.Fprintf(w, "Meta: %s\n", v.Metadata()) 51 + }