Expand mockup backend for CLI
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
This commit is contained in:
parent
661affa4cb
commit
37bf20e24b
@ -26,13 +26,13 @@ var downCmd = &cobra.Command{
|
|||||||
ctx := lg.WithContext(cmd.Context())
|
ctx := lg.WithContext(cmd.Context())
|
||||||
|
|
||||||
routeName := getRouteName(lg, cmd)
|
routeName := getRouteName(lg, cmd)
|
||||||
route, err := dagger.LookupRoute(routeName)
|
route, err := dagger.LookupRoute(routeName, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
lg.Fatal().Err(err).Str("route-name", routeName).Msg("failed to lookup route")
|
lg.Fatal().Err(err).Str("route-name", routeName).Msg("failed to lookup route")
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Implement options: --no-cache
|
// TODO: Implement options: --no-cache
|
||||||
if err := route.Down(ctx); err != nil {
|
if err := route.Down(ctx, nil); err != nil {
|
||||||
lg.Fatal().Err(err).Str("route-name", routeName).Str("route-id", route.ID).Msg("failed to up the route")
|
lg.Fatal().Err(err).Str("route-name", routeName).Str("route-id", route.ID).Msg("failed to up the route")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -33,8 +33,7 @@ var newCmd = &cobra.Command{
|
|||||||
routeName := getRouteName(lg, cmd)
|
routeName := getRouteName(lg, cmd)
|
||||||
|
|
||||||
// TODO: Implement options: --layout-*, --setup
|
// TODO: Implement options: --layout-*, --setup
|
||||||
// FIXME: give route name in create opts
|
route, err := dagger.CreateRoute(ctx, routeName, nil)
|
||||||
route, err := dagger.CreateRoute(ctx)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
lg.Fatal().Err(err).Msg("failed to create route")
|
lg.Fatal().Err(err).Msg("failed to create route")
|
||||||
}
|
}
|
||||||
@ -42,7 +41,7 @@ var newCmd = &cobra.Command{
|
|||||||
|
|
||||||
if upRoute {
|
if upRoute {
|
||||||
lg.Info().Str("route-id", route.ID).Msg("bringing route online")
|
lg.Info().Str("route-id", route.ID).Msg("bringing route online")
|
||||||
if err := route.Up(ctx); err != nil {
|
if err := route.Up(ctx, nil); err != nil {
|
||||||
lg.Fatal().Err(err).Str("route-id", route.ID).Msg("failed to create route")
|
lg.Fatal().Err(err).Str("route-id", route.ID).Msg("failed to create route")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,14 +27,14 @@ var queryCmd = &cobra.Command{
|
|||||||
ctx := lg.WithContext(cmd.Context())
|
ctx := lg.WithContext(cmd.Context())
|
||||||
|
|
||||||
routeName := getRouteName(lg, cmd)
|
routeName := getRouteName(lg, cmd)
|
||||||
route, err := dagger.LookupRoute(routeName)
|
route, err := dagger.LookupRoute(routeName, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
lg.Fatal().Err(err).Str("route-name", routeName).Msg("failed to lookup route")
|
lg.Fatal().Err(err).Str("route-name", routeName).Msg("failed to lookup route")
|
||||||
}
|
}
|
||||||
|
|
||||||
expr := args[0]
|
expr := args[0]
|
||||||
|
|
||||||
out, err := route.Query(ctx, expr)
|
out, err := route.Query(ctx, expr, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
lg.Fatal().Err(err).Str("route-name", routeName).Str("route-id", route.ID).Msg("failed to query route")
|
lg.Fatal().Err(err).Str("route-name", routeName).Str("route-id", route.ID).Msg("failed to query route")
|
||||||
}
|
}
|
||||||
|
@ -26,13 +26,13 @@ var upCmd = &cobra.Command{
|
|||||||
ctx := lg.WithContext(cmd.Context())
|
ctx := lg.WithContext(cmd.Context())
|
||||||
|
|
||||||
routeName := getRouteName(lg, cmd)
|
routeName := getRouteName(lg, cmd)
|
||||||
route, err := dagger.LookupRoute(routeName)
|
route, err := dagger.LookupRoute(routeName, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
lg.Fatal().Err(err).Str("route-name", routeName).Msg("failed to lookup route")
|
lg.Fatal().Err(err).Str("route-name", routeName).Msg("failed to lookup route")
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Implement options: --no-cache
|
// TODO: Implement options: --no-cache
|
||||||
if err := route.Up(ctx); err != nil {
|
if err := route.Up(ctx, nil); err != nil {
|
||||||
lg.Fatal().Err(err).Str("route-name", routeName).Str("route-id", route.ID).Msg("failed to up the route")
|
lg.Fatal().Err(err).Str("route-name", routeName).Str("route-id", route.ID).Msg("failed to up the route")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -135,6 +135,8 @@ func (env *Env) LocalDirs() map[string]string {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// nolint:goconst
|
||||||
|
// FIXME: merge Env into Route, or fix the linter error
|
||||||
if do != "local" {
|
if do != "local" {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -10,49 +10,112 @@ import (
|
|||||||
type Route struct {
|
type Route struct {
|
||||||
// Globally unique route ID
|
// Globally unique route ID
|
||||||
ID string
|
ID string
|
||||||
|
|
||||||
|
// Human-friendly route name.
|
||||||
|
// A route may have more than one name.
|
||||||
|
Name string
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateRoute(ctx context.Context, opts ...CreateOpt) (*Route, error) {
|
func CreateRoute(ctx context.Context, name string, o *CreateOpts) (*Route, error) {
|
||||||
panic("NOT IMPLEMENTED")
|
panic("NOT IMPLEMENTED")
|
||||||
}
|
}
|
||||||
|
|
||||||
type CreateOpt interface{} // FIXME
|
type CreateOpts struct{}
|
||||||
|
|
||||||
func DeleteRoute(ctx context.Context, opts ...DeleteOpt) (*Route, error) {
|
func DeleteRoute(ctx context.Context, o *DeleteOpts) (*Route, error) {
|
||||||
panic("NOT IMPLEMENTED")
|
panic("NOT IMPLEMENTED")
|
||||||
}
|
}
|
||||||
|
|
||||||
type DeleteOpt interface{} // FIXME
|
type DeleteOpts struct{}
|
||||||
|
|
||||||
func LookupRoute(name string, opts ...LookupOpt) (*Route, error) {
|
func LookupRoute(name string, o *LookupOpts) (*Route, error) {
|
||||||
panic("NOT IMPLEMENTED")
|
panic("NOT IMPLEMENTED")
|
||||||
}
|
}
|
||||||
|
|
||||||
type LookupOpt interface{} // FIXME
|
type LookupOpts struct{}
|
||||||
|
|
||||||
func LoadRoute(ctx context.Context, id string, opts ...LoadOpt) (*Route, error) {
|
func LoadRoute(ctx context.Context, id string, o *LoadOpts) (*Route, error) {
|
||||||
panic("NOT IMPLEMENTED")
|
panic("NOT IMPLEMENTED")
|
||||||
}
|
}
|
||||||
|
|
||||||
type LoadOpt interface{} // FIXME
|
type LoadOpts struct{}
|
||||||
|
|
||||||
func (r *Route) Up(ctx context.Context, opts ...UpOpt) error {
|
func (r *Route) Up(ctx context.Context, o *UpOpts) error {
|
||||||
panic("NOT IMPLEMENTED")
|
panic("NOT IMPLEMENTED")
|
||||||
}
|
}
|
||||||
|
|
||||||
type UpOpt interface{} // FIXME
|
type UpOpts struct{}
|
||||||
|
|
||||||
func (r *Route) Down(ctx context.Context, opts ...DownOpt) error {
|
func (r *Route) Down(ctx context.Context, o *DownOpts) error {
|
||||||
panic("NOT IMPLEMENTED")
|
panic("NOT IMPLEMENTED")
|
||||||
}
|
}
|
||||||
|
|
||||||
type DownOpt interface{} // FIXME
|
type DownOpts struct{}
|
||||||
|
|
||||||
func (r *Route) Query(ctx context.Context, expr interface{}, opts ...QueryOpt) (*compiler.Value, error) {
|
func (r *Route) Query(ctx context.Context, expr interface{}, o *QueryOpts) (*compiler.Value, error) {
|
||||||
panic("NOT IMPLEMENTED")
|
panic("NOT IMPLEMENTED")
|
||||||
}
|
}
|
||||||
|
|
||||||
type QueryOpt interface{} // FIXME
|
type QueryOpts struct{}
|
||||||
|
|
||||||
|
func (r *Route) SetLayout(ctx context.Context, a *Artifact) error {
|
||||||
|
panic("NOT IMPLEMENTED")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Route) Layout() (*Artifact, error) {
|
||||||
|
panic("NOT IMPLEMENTED")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Route) AddInputArtifact(ctx context.Context, target string, a *Artifact) error {
|
||||||
|
panic("NOT IMPLEMENTED")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *Route) AddInputValue(ctx context.Context, target string, v *compiler.Value) error {
|
||||||
|
panic("NOT IMPLEMENTED")
|
||||||
|
}
|
||||||
|
|
||||||
|
// FIXME: how does remove work? Does it require a specific file layout?
|
||||||
|
func (r *Route) RemoveInputs(ctx context.Context, target string) error {
|
||||||
|
panic("NOT IMPLEMENTED")
|
||||||
|
}
|
||||||
|
|
||||||
|
// FIXME: connect outputs to auto-export values and artifacts.
|
||||||
|
|
||||||
|
// An artifact is a piece of data, like a source code checkout,
|
||||||
|
// binary bundle, container image, database backup etc.
|
||||||
|
//
|
||||||
|
// Artifacts can be passed as inputs, generated dynamically from
|
||||||
|
// other inputs, and received as outputs.
|
||||||
|
//
|
||||||
|
// Under the hood, an artifact is encoded as a LLB pipeline, and
|
||||||
|
// attached to the cue configuration as a
|
||||||
|
type Artifact struct {
|
||||||
|
llb interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Dir(path string, include []string) *Artifact {
|
||||||
|
var llb struct {
|
||||||
|
Do string
|
||||||
|
Include []string
|
||||||
|
}
|
||||||
|
llb.Do = "local"
|
||||||
|
llb.Include = include
|
||||||
|
return &Artifact{
|
||||||
|
llb: llb,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Git(remote, ref, dir string) *Artifact {
|
||||||
|
panic("NOT IMPLEMENTED")
|
||||||
|
}
|
||||||
|
|
||||||
|
func Container(ref string) *Artifact {
|
||||||
|
panic("NOT IMPLEMENTED")
|
||||||
|
}
|
||||||
|
|
||||||
|
func LLB(code interface{}) *Artifact {
|
||||||
|
panic("NOT IMPLEMENTED")
|
||||||
|
}
|
||||||
|
|
||||||
// FIXME: manage base
|
// FIXME: manage base
|
||||||
// FIXME: manage inputs
|
// FIXME: manage inputs
|
||||||
|
Reference in New Issue
Block a user