core/providers/gleam/gleam.go
core/providers/gleam/gleam.goBrowse 1970 files
463 tokens
1,672 bytes
Token encoding: o200k_base
Snapshot 21a254f
← Back to SKILL.md
1package gleam2 3import (4 "github.com/railwayapp/railpack/core/generate"5 "github.com/railwayapp/railpack/core/plan"6)7 8type GleamProvider struct{}9 10func (p *GleamProvider) Name() string {11 return "gleam"12}13 14func (p *GleamProvider) Detect(ctx *generate.GenerateContext) (bool, error) {15 return ctx.App.HasFile("gleam.toml"), nil16}17 18func (p *GleamProvider) Initialize(ctx *generate.GenerateContext) error {19 return nil20}21 22func (p *GleamProvider) CleansePlan(buildPlan *plan.BuildPlan) {}23 24func (p *GleamProvider) StartCommandHelp() string {25 return ""26}27 28func (p *GleamProvider) Plan(ctx *generate.GenerateContext) error {29 build := ctx.NewCommandStep("build")30 build.AddInput(plan.NewStepLayer(ctx.GetMiseStepBuilder().Name()))31 build.AddInput(plan.NewLocalLayer())32 build.AddCommand(plan.NewExecCommand("gleam export erlang-shipment"))33 34 p.installErlang(ctx.GetMiseStepBuilder())35 ctx.GetMiseStepBuilder().Default("gleam", "latest")36 ctx.GetMiseStepBuilder().UseMiseVersions(ctx, []string{"gleam", "erlang"})37 38 runtimeMiseStep := ctx.NewMiseStepBuilder("packages:mise:runtime")39 p.installErlang(runtimeMiseStep)40 runtimeMiseStep.UseMiseVersions(ctx, []string{"erlang"})41 42 outPath := "build/erlang-shipment/."43 44 includedPath := outPath45 if ctx.Env.IsConfigVariableTruthy("GLEAM_INCLUDE_SOURCE") {46 includedPath = "."47 }48 49 ctx.Deploy.AddInputs([]plan.Layer{50 runtimeMiseStep.GetLayer(),51 plan.NewStepLayer(build.Name(), plan.Filter{52 Include: []string{includedPath},53 }),54 })55 56 ctx.Deploy.StartCmd = "./build/erlang-shipment/entrypoint.sh run"57 58 return nil59}60 61func (p *GleamProvider) installErlang(step *generate.MiseStepBuilder) {62 step.Default("erlang", "latest")63}64