diff --git a/pkg/cmd/cmd_push.go b/pkg/cmd/cmd_push.go index c262d477..0cf5aa8a 100644 --- a/pkg/cmd/cmd_push.go +++ b/pkg/cmd/cmd_push.go @@ -96,6 +96,11 @@ func pushCurrentPackage(ociUrl string, vendorMode bool, kpmcli *client.KpmClient return err } + if kclPkg.ModFile.Dependencies.CheckForLocalDeps() { + reporter.ReportEventToStdout(reporter.NewEvent(reporter.FailedPush, "local dependencies exist, cannot be packaged into tar and pushed.")) + return nil + } + // 2. push the package return pushPackage(ociUrl, kclPkg, vendorMode, kpmcli) } @@ -122,6 +127,11 @@ func pushTarPackage(ociUrl, localTarPath string, vendorMode bool, kpmcli *client return err } + if kclPkg.ModFile.Dependencies.CheckForLocalDeps() { + reporter.ReportEventToStdout(reporter.NewEvent(reporter.FailedPush, "local dependencies exist, cannot be pushed.")) + return nil + } + // 2. push the package return pushPackage(ociUrl, kclPkg, vendorMode, kpmcli) } diff --git a/pkg/package/modfile.go b/pkg/package/modfile.go index fff7dbac..cca86d3f 100644 --- a/pkg/package/modfile.go +++ b/pkg/package/modfile.go @@ -168,6 +168,15 @@ func (deps *Dependencies) ToDepMetadata() (*Dependencies, error) { return &depMetadata, nil } +func (deps *Dependencies) CheckForLocalDeps() bool { + for _, dep := range deps.Deps { + if dep.IsFromLocal() { + return true + } + } + return false +} + type Dependency struct { Name string `json:"name" toml:"name,omitempty"` FullName string `json:"-" toml:"full_name,omitempty"`