...

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

Documentation: github.com/blang/semver/v4/examples

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

View as plain text