mod: added support for version constraint when fetching a remote version

Signed-off-by: Sam Alba <samalba@users.noreply.github.com>
This commit is contained in:
Sam Alba
2021-10-21 17:50:18 -07:00
parent 428aca1c03
commit cee8c91e50
7 changed files with 74 additions and 49 deletions

View File

@@ -6,14 +6,8 @@ import (
"github.com/gofrs/flock"
)
func InstallStdlib(workspace string) error {
_, err := Install(workspace, "alpha.dagger.io@v0.1")
return err
}
func Install(workspace, repoName string) (*Require, error) {
require, err := newRequire(repoName)
func Install(workspace, repoName, versionConstraint string) (*Require, error) {
require, err := newRequire(repoName, versionConstraint)
if err != nil {
return nil, err
}
@@ -51,7 +45,7 @@ func InstallAll(workspace string, repoNames []string) ([]*Require, error) {
for _, repoName := range repoNames {
var require *Require
if require, err = Install(workspace, repoName); err != nil {
if require, err = Install(workspace, repoName, ""); err != nil {
continue
}
@@ -61,8 +55,8 @@ func InstallAll(workspace string, repoNames []string) ([]*Require, error) {
return installedRequires, err
}
func Update(workspace, repoName string) (*Require, error) {
require, err := newRequire(repoName)
func Update(workspace, repoName, versionConstraint string) (*Require, error) {
require, err := newRequire(repoName, versionConstraint)
if err != nil {
return nil, err
}
@@ -100,7 +94,7 @@ func UpdateAll(workspace string, repoNames []string) ([]*Require, error) {
for _, repoName := range repoNames {
var require *Require
if require, err = Update(workspace, repoName); err != nil {
if require, err = Update(workspace, repoName, ""); err != nil {
continue
}