當前位置: 首頁>>代碼示例>>Golang>>正文


Golang semver.Make函數代碼示例

本文整理匯總了Golang中github.com/blang/semver.Make函數的典型用法代碼示例。如果您正苦於以下問題:Golang Make函數的具體用法?Golang Make怎麽用?Golang Make使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了Make函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: GetUpdatePackage

// GetUpdatePackage returns an update package for the instance/application
// provided. The instance details and the application it's running will be
// registered in CoreRoller (or updated if it's already registered).
func (api *API) GetUpdatePackage(instanceID, instanceIP, instanceVersion, appID, groupID string) (*Package, error) {
	instance, err := api.RegisterInstance(instanceID, instanceIP, instanceVersion, appID, groupID)
	if err != nil {
		return nil, ErrRegisterInstanceFailed
	}

	if instance.Application.Status.Valid {
		switch int(instance.Application.Status.Int64) {
		case InstanceStatusUpdateGranted, InstanceStatusDownloading, InstanceStatusDownloaded, InstanceStatusInstalled:
			return nil, ErrUpdateInProgressOnInstance
		}
	}

	group, err := api.GetGroup(groupID)
	if err != nil {
		return nil, err
	}

	if group.Channel == nil || group.Channel.Package == nil {
		_ = api.newGroupActivityEntry(activityPackageNotFound, activityWarning, "0.0.0", appID, groupID)
		return nil, ErrNoPackageFound
	}

	for _, blacklistedChannelID := range group.Channel.Package.ChannelsBlacklist {
		if blacklistedChannelID == group.Channel.ID {
			return nil, ErrNoUpdatePackageAvailable
		}
	}

	instanceSemver, _ := semver.Make(instanceVersion)
	packageSemver, _ := semver.Make(group.Channel.Package.Version)
	if !instanceSemver.LT(packageSemver) {
		return nil, ErrNoUpdatePackageAvailable
	}

	updatesStats, err := api.getGroupUpdatesStats(group)
	if err != nil {
		return nil, ErrGetUpdatesStatsFailed
	}

	if err := api.enforceRolloutPolicy(instance, group, updatesStats); err != nil {
		return nil, err
	}

	if err := api.grantUpdate(instance.ID, appID, group.Channel.Package.Version); err != nil {
		return nil, ErrGrantingUpdate
	}

	if updatesStats.UpdatesToCurrentVersionGranted == 0 {
		_ = api.newGroupActivityEntry(activityRolloutStarted, activityInfo, group.Channel.Package.Version, appID, group.ID)
	}

	if !group.RolloutInProgress {
		_ = api.setGroupRolloutInProgress(groupID, true)
	}

	_ = api.updateInstanceStatus(instance.ID, appID, InstanceStatusUpdateGranted)

	return group.Channel.Package, nil
}
開發者ID:coreroller,項目名稱:coreroller,代碼行數:63,代碼來源:updates.go

示例2: isUpgradeAvailable

func isUpgradeAvailable() (bool, string) {
	gh := buildGithubClient()
	release, response, err := gh.Repositories.GetLatestRelease("getcarina", "dvm")
	if err != nil {
		warnWhenRateLimitExceeded(err, response)
		writeWarning("Unable to query the latest dvm release from GitHub:")
		writeWarning("%s", err)
		return false, ""
	}
	if response.StatusCode != 200 {
		writeWarning("Unable to query the latest dvm release from GitHub (Status %s):", response.StatusCode)
		return false, ""
	}

	currentVersion, err := semver.Make(dvmVersion)
	if err != nil {
		writeWarning("Unable to parse the current dvm version as a semantic version!")
		writeWarning("%s", err)
		return false, ""
	}
	latestVersion, err := semver.Make(*release.TagName)
	if err != nil {
		writeWarning("Unable to parse the latest dvm version as a semantic version!")
		writeWarning("%s", err)
		return false, ""
	}

	return latestVersion.Compare(currentVersion) > 0, *release.TagName
}
開發者ID:getcarina,項目名稱:dvm,代碼行數:29,代碼來源:dvm-helper.go

示例3: Less

func (a BugListByMilestone) Less(i, j int) bool {
	iMS := a[i].Milestone()
	jMS := a[j].Milestone()
	// If there's a "v" at the start, strip it out
	// before doing any comparisons of semantic
	// versions
	if len(iMS) > 1 && iMS[0] == "v"[0] {
		iMS = iMS[1:]
	}
	if len(jMS) > 1 && jMS[0] == "v"[0] {
		jMS = jMS[1:]
	}
	// First try semantic versioning comparison
	iVer, iVerErr := semver.Make(iMS)
	jVer, jVerErr := semver.Make(jMS)
	if iVerErr == nil && jVerErr == nil {
		return iVer.LT(jVer)
	}

	// Next try floating point comparison as an
	// approximation of real number comparison..
	iFloat, iVerErr := strconv.ParseFloat(iMS, 32)
	jFloat, jVerErr := strconv.ParseFloat(jMS, 32)
	if iVerErr == nil && jVerErr == nil {
		return iFloat < jFloat
	}

	// Finally, just use a normal string collation
	return iMS < jMS
}
開發者ID:Komosa,項目名稱:bug,代碼行數:30,代碼來源:Roadmap.go

示例4: latestTag

func latestTag(client *github.Client, org, name string) string {
	opt := &github.ListOptions{PerPage: 100}

	latest, err := semver.Make("0.0.1")
	if err != nil {
		panic(err)
	}

	for {
		newTags, resp, err := client.Repositories.ListTags(org, name, opt)
		if err != nil {
			panic(err)
		}

		for _, tag := range newTags {
			version, err := semver.Make(*tag.Name)
			if err != nil {
				continue
			}

			if version.Compare(latest) > 0 {
				latest = version
			}
		}

		if resp.NextPage == 0 {
			break
		}

		opt.Page = resp.NextPage
	}

	return latest.String()
}
開發者ID:segmentio,項目名稱:go-release,代碼行數:34,代碼來源:main.go

示例5: greater

func greater(s1, s2 string) bool {
	v1, err1 := semver.Make(s1)
	v2, err2 := semver.Make(s2)
	if err1 != nil || err2 != nil {
		return s1 > s2
	}
	return v1.Compare(v2) > 0
}
開發者ID:matteosuppo,項目名稱:arduino-install-cores,代碼行數:8,代碼來源:main.go

示例6: compareVersion

// @return result.Result<VersionStatus, error>
func compareVersion(toolVersion, repoVersion string) result.Result {
	errorMsg := fmt.Sprintf(toolInvalidError, toolVersion, repoVersion)
	invalidErr := result.NewFailure(errors.New(errorMsg))
	vt := result.NewResult(semver.Make(toolVersion)).RecoverWith(invalidErr)
	vr := result.NewResult(semver.Make(repoVersion)).RecoverWith(invalidErr)
	return result.Combine(func(values ...interface{}) result.Result {
		vt, vr := values[0].(semver.Version), values[1].(semver.Version)
		return comparisonStatus(vt.Compare(vr))
	}, vt, vr)
}
開發者ID:git-comment,項目名稱:git-comment,代碼行數:11,代碼來源:version.go

示例7: getLatestVersion

func (m *Manifest) getLatestVersion() string {
	latestVersion, _ := semver.Make(NoVersion)

	for _, version := range m.Versions {
		if currentVersion, err := semver.Make(version.Version); err != nil {
			continue
		} else if latestVersion.LT(currentVersion) {
			latestVersion = currentVersion
		}
	}

	return latestVersion.String()
}
開發者ID:layer3switch,項目名稱:packer-post-processor-vagrant-s3,代碼行數:13,代碼來源:manifest.go

示例8: updateSelf

func updateSelf() error {
	up := update.New()
	if err := up.CanUpdate(); err != nil {
		logger.Warn("msg", "Can't update this binary!", "error", err)
		return err
	}

	up, err := up.VerifySignatureWithPEM([]byte(publicKey))
	if err != nil {
		logger.Error("msg", "Failed to parse public key!", "error", err)
		return err
	}
	// check for the update
	r, err := (&check.Params{
		AppId:      "ap_XZ-6toIU_0Bf0BJFDVvDpV9IVD",
		AppVersion: version,
		Channel:    "latest",
	}).CheckForUpdate(updateURI, up)
	if err != nil {
		if err == check.NoUpdateAvailable {
			logger.Info("msg", "No update available.")
			return nil
		}
		logger.Error("msg", "Checking for update", "error", err)
		return err
	}
	v1, err := semver.Make(version)
	if err != nil {
		logger.Error("msg", "Bad version", "current", version, "error", err)
		return err
	}
	v2, err := semver.Make(r.Version)
	if err != nil {
		logger.Error("msg", "Bad version", "new", r.Version, "error", err)
		return err
	}
	if !v2.GTE(v1) {
		logger.Warn("msg", "Version mismatch", "current", v1, "new", v2)
		return nil
	}

	// apply the update
	if err, _ = r.Update(); err != nil {
		logger.Error("msg", "Update failed", "error", err)
		return err
	}
	logger.Info("msg", "Update successful, exiting.")
	os.Exit(0)
	return nil
}
開發者ID:thanzen,項目名稱:agostle,代碼行數:50,代碼來源:update.go

示例9: IsMinCliVersion

func (cmd *CliRpcCmd) IsMinCliVersion(version string, retVal *bool) error {
	actualVersion, err := semver.Make(cf.Version)
	if err != nil {
		return err
	}

	requiredVersion, err := semver.Make(version)
	if err != nil {
		return err
	}

	*retVal = actualVersion.GTE(requiredVersion)

	return nil
}
開發者ID:seetharamireddy540,項目名稱:cli,代碼行數:15,代碼來源:cli_rpc_server.go

示例10: IsMountainLion

func IsMountainLion() bool {
	osver, err := semver.Make(OSRelease())
	if err != nil {
		return false
	}
	return runtime.GOOS == "darwin" && osver.GTE(mountainLionVer)
}
開發者ID:narma,項目名稱:go-notifier,代碼行數:7,代碼來源:os_version.go

示例11: Requirements

func (cmd *UnbindRouteService) Requirements(requirementsFactory requirements.Factory, fc flags.FlagContext) []requirements.Requirement {
	if len(fc.Args()) != 2 {
		cmd.ui.Failed(T("Incorrect Usage. Requires DOMAIN and SERVICE_INSTANCE as arguments\n\n") + commandregistry.Commands.CommandUsage("unbind-route-service"))
	}

	serviceName := fc.Args()[1]
	cmd.serviceInstanceReq = requirementsFactory.NewServiceInstanceRequirement(serviceName)

	domainName := fc.Args()[0]
	cmd.domainReq = requirementsFactory.NewDomainRequirement(domainName)

	minAPIVersion, err := semver.Make("2.51.0")
	if err != nil {
		panic(err.Error())
	}

	minAPIVersionRequirement := requirementsFactory.NewMinAPIVersionRequirement(
		"unbind-route-service",
		minAPIVersion,
	)

	reqs := []requirements.Requirement{
		minAPIVersionRequirement,
		requirementsFactory.NewLoginRequirement(),
		cmd.domainReq,
		cmd.serviceInstanceReq,
	}
	return reqs
}
開發者ID:Reejoshi,項目名稱:cli,代碼行數:29,代碼來源:unbind_route_service.go

示例12: IsWin8

func IsWin8() bool {
	osver, err := semver.Make(OSRelease())
	if err != nil {
		return false
	}
	return runtime.GOOS == "windows" && osver.GTE(win8ver)
}
開發者ID:narma,項目名稱:go-notifier,代碼行數:7,代碼來源:os_version.go

示例13: getNextVersion

func (m *Manifest) getNextVersion() string {
	latestVersion, _ := semver.Make(m.getLatestVersion())
	latestVersion.Minor++
	latestVersion.Patch = 0

	return latestVersion.String()
}
開發者ID:layer3switch,項目名稱:packer-post-processor-vagrant-s3,代碼行數:7,代碼來源:manifest.go

示例14: getLatestVersionFromURL

func getLatestVersionFromURL(url string) (semver.Version, error) {
	r, err := GetAllVersionsFromURL(url)
	if err != nil {
		return semver.Version{}, err
	}
	return semver.Make(strings.TrimPrefix(r[0].Name, version.VersionPrefix))
}
開發者ID:rawlingsj,項目名稱:gofabric8,代碼行數:7,代碼來源:notify.go

示例15: Execute

func (r MaxAPIVersionRequirement) Execute() bool {
	if r.config.ApiVersion() == "" {
		r.ui.Failed(T("Unable to determine CC API Version. Please log in again."))
	}

	apiVersion, err := semver.Make(r.config.ApiVersion())
	if err != nil {
		r.ui.Failed(T("Unable to parse CC API Version '{{.APIVersion}}'", map[string]interface{}{
			"APIVersion": r.config.ApiVersion(),
		}))

		return false
	}

	if apiVersion.GT(r.maximumVersion) {
		r.ui.Failed(T(`{{.Feature}} only works up to CF API version {{.MaximumVersion}}. Your target is {{.ApiVersion}}.`,
			map[string]interface{}{
				"ApiVersion":     r.config.ApiVersion(),
				"Feature":        r.feature,
				"MaximumVersion": r.maximumVersion.String(),
			}))

		return false
	}

	return true
}
開發者ID:jmcabandara,項目名稱:cli,代碼行數:27,代碼來源:max_api_version.go


注:本文中的github.com/blang/semver.Make函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。