...

Source file src/github.com/blang/semver/examples/main.go

Documentation: github.com/blang/semver/examples

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/blang/semver"
     6  )
     7  
     8  func main() {
     9  	v, err := semver.Parse("0.0.1-alpha.preview.222+123.github")
    10  	if err != nil {
    11  		fmt.Printf("Error while parsing (not valid): %q", err)
    12  	}
    13  	fmt.Printf("Version to string: %q\n", v)
    14  
    15  	fmt.Printf("Major: %d\n", v.Major)
    16  	fmt.Printf("Minor: %d\n", v.Minor)
    17  	fmt.Printf("Patch: %d\n", v.Patch)
    18  
    19  	// Prerelease versions
    20  	if len(v.Pre) > 0 {
    21  		fmt.Println("Prerelease versions:")
    22  		for i, pre := range v.Pre {
    23  			fmt.Printf("%d: %q\n", i, pre)
    24  		}
    25  	}
    26  
    27  	// Build meta data
    28  	if len(v.Build) > 0 {
    29  		fmt.Println("Build meta data:")
    30  		for i, build := range v.Build {
    31  			fmt.Printf("%d: %q\n", i, build)
    32  		}
    33  	}
    34  
    35  	// Make == Parse (Value), New for Pointer
    36  	v001, err := semver.Make("0.0.1")
    37  
    38  	fmt.Println("\nUse Version.Compare for comparisons (-1, 0, 1):")
    39  	fmt.Printf("%q is greater than %q: Compare == %d\n", v001, v, v001.Compare(v))
    40  	fmt.Printf("%q is less than %q: Compare == %d\n", v, v001, v.Compare(v001))
    41  	fmt.Printf("%q is equal to %q: Compare == %d\n", v, v, v.Compare(v))
    42  
    43  	fmt.Println("\nUse comparison helpers returning booleans:")
    44  	fmt.Printf("%q is greater than %q: %t\n", v001, v, v001.GT(v))
    45  	fmt.Printf("%q is greater than equal %q: %t\n", v001, v, v001.GTE(v))
    46  	fmt.Printf("%q is greater than equal %q: %t\n", v, v, v.GTE(v))
    47  	fmt.Printf("%q is less than %q: %t\n", v, v001, v.LT(v001))
    48  	fmt.Printf("%q is less than equal %q: %t\n", v, v001, v.LTE(v001))
    49  	fmt.Printf("%q is less than equal %q: %t\n", v, v, v.LTE(v))
    50  
    51  	fmt.Println("\nManipulate Version in place:")
    52  	v.Pre[0], err = semver.NewPRVersion("beta")
    53  	if err != nil {
    54  		fmt.Printf("Error parsing pre release version: %q", err)
    55  	}
    56  	fmt.Printf("Version to string: %q\n", v)
    57  
    58  	fmt.Println("\nCompare Prerelease versions:")
    59  	pre1, _ := semver.NewPRVersion("123")
    60  	pre2, _ := semver.NewPRVersion("alpha")
    61  	pre3, _ := semver.NewPRVersion("124")
    62  	fmt.Printf("%q is less than %q: Compare == %d\n", pre1, pre2, pre1.Compare(pre2))
    63  	fmt.Printf("%q is greater than %q: Compare == %d\n", pre3, pre1, pre3.Compare(pre1))
    64  	fmt.Printf("%q is equal to %q: Compare == %d\n", pre1, pre1, pre1.Compare(pre1))
    65  
    66  	fmt.Println("\nValidate versions:")
    67  	v.Build[0] = "?"
    68  
    69  	err = v.Validate()
    70  	if err != nil {
    71  		fmt.Printf("Validation failed: %s\n", err)
    72  	}
    73  
    74  	fmt.Println("Create valid build meta data:")
    75  	b1, _ := semver.NewBuildVersion("build123")
    76  	v.Build[0] = b1
    77  	fmt.Printf("Version with new build version %q\n", v)
    78  
    79  	_, err = semver.NewBuildVersion("build?123")
    80  	if err != nil {
    81  		fmt.Printf("Create build version failed: %s\n", err)
    82  	}
    83  }
    84  

View as plain text