github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/controllers/apis/tiltfile/main.go (about) 1 package tiltfile 2 3 import ( 4 "fmt" 5 "path/filepath" 6 7 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 8 9 "github.com/tilt-dev/tilt/internal/controllers/apis/uibutton" 10 "github.com/tilt-dev/tilt/internal/ospath" 11 "github.com/tilt-dev/tilt/pkg/apis" 12 "github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1" 13 "github.com/tilt-dev/tilt/pkg/model" 14 ) 15 16 // Resolve a filename to its "best" version. 17 // On any error, just return the original filename. 18 func ResolveFilename(filename string) string { 19 resolved, err := ospath.RealAbs(filename) 20 if err == nil { 21 return resolved 22 } 23 24 resolved, err = filepath.Abs(filename) 25 if err == nil { 26 return resolved 27 } 28 29 return filename 30 } 31 32 func MainTiltfile(filename string, args []string) *v1alpha1.Tiltfile { 33 name := model.MainTiltfileManifestName.String() 34 fwName := apis.SanitizeName(fmt.Sprintf("%s:%s", model.TargetTypeConfigs, name)) 35 return &v1alpha1.Tiltfile{ 36 ObjectMeta: metav1.ObjectMeta{Name: name}, 37 Spec: v1alpha1.TiltfileSpec{ 38 Path: ResolveFilename(filename), 39 Args: args, 40 RestartOn: &v1alpha1.RestartOnSpec{ 41 FileWatches: []string{fwName}, 42 }, 43 StopOn: &v1alpha1.StopOnSpec{ 44 UIButtons: []string{uibutton.StopBuildButtonName(name)}, 45 }, 46 }, 47 } 48 }