Fixing top level run outside repo (#1993)
This commit is contained in:
@@ -99,7 +99,14 @@ func (r *localRuntime) checkoutSourceIfNeeded(s *runtime.Service, secrets map[st
|
||||
fullp := append([]string{uncompressPath}, sourceParts[1:]...)
|
||||
s.Source = filepath.Join(append(fullp, lastFolderPart)...)
|
||||
} else {
|
||||
s.Source = filepath.Join(uncompressPath, tarName)
|
||||
// The tar name is 'helloworld' for both
|
||||
// the case when the code is uploaded from `$REPO/helloworld`
|
||||
// and when it's uploaded from outside a repo ie `~/helloworld`.
|
||||
if _, err := Entrypoint(filepath.Join(s.Source, tarName)); err == nil {
|
||||
s.Source = filepath.Join(uncompressPath, tarName)
|
||||
} else {
|
||||
s.Source = uncompressPath
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -276,6 +283,7 @@ func (r *localRuntime) Create(s *runtime.Service, opts ...runtime.CreateOption)
|
||||
for _, o := range opts {
|
||||
o(&options)
|
||||
}
|
||||
|
||||
err := r.checkoutSourceIfNeeded(s, options.Secrets)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@@ -3,7 +3,6 @@ package local
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
@@ -50,25 +49,6 @@ func newService(s *runtime.Service, c runtime.CreateOptions) *service {
|
||||
|
||||
dir := s.Source
|
||||
|
||||
// For uploaded packages, we upload the whole repo
|
||||
// so the correct working directory to do a `go run .`
|
||||
// needs to include the relative path from the repo root
|
||||
// which is the service name.
|
||||
//
|
||||
// Could use a better upload check.
|
||||
if strings.Contains(s.Source, "uploads") {
|
||||
// There are two cases to consider here:
|
||||
// a., if the uploaded code comes from a repo - in this case
|
||||
// the service name is the relative path.
|
||||
// b., if the uploaded code comes from a non repo folder -
|
||||
// in this case the service name is the folder name.
|
||||
// Because of this, we only append the service name to the source in
|
||||
// case `a`
|
||||
if ex, err := exists(filepath.Join(s.Source, s.Name)); err == nil && ex {
|
||||
dir = filepath.Join(s.Source, s.Name)
|
||||
}
|
||||
}
|
||||
|
||||
return &service{
|
||||
Service: s,
|
||||
Process: new(proc.Process),
|
||||
|
Reference in New Issue
Block a user