Skip to content

Commit

Permalink
feat: add sqlfluff tool
Browse files Browse the repository at this point in the history
  • Loading branch information
jonasalm committed May 3, 2022
1 parent e522b9d commit 5e69795
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions tools/sgsqlfluff/tools.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package sgsqlfluff

import (
"context"
"fmt"
"os"
"os/exec"
"path/filepath"

"go.einride.tech/sage/sg"
"go.einride.tech/sage/sgtool"
)

const (
name = "sqlfluff"
version = "0.13.0"
)

func Command(ctx context.Context, args ...string) *exec.Cmd {
sg.Deps(ctx, PrepareCommand)
return sg.Command(ctx, sg.FromBinDir(name), args...)
}

func PrepareCommand(ctx context.Context) error {
toolDir := sg.FromToolsDir(name)
venvDir := filepath.Join(toolDir, "venv", version)
binDir := filepath.Join(venvDir, "bin")
binary := filepath.Join(binDir, name)
if _, err := os.Stat(binary); err == nil {
if _, err := sgtool.CreateSymlink(binary); err != nil {
return err
}
return nil
}
pip := filepath.Join(binDir, "pip")
if err := os.MkdirAll(toolDir, 0o755); err != nil {
return err
}
sg.Logger(ctx).Println("installing packages...")
if err := sg.Command(
ctx,
"python3",
"-m",
"venv",
venvDir,
).Run(); err != nil {
return err
}
if err := sg.Command(
ctx,
pip,
"install",
fmt.Sprintf("sqlfluff==%s", version),
).Run(); err != nil {
return err
}
if _, err := sgtool.CreateSymlink(binary); err != nil {
return err
}
return nil
}

0 comments on commit 5e69795

Please sign in to comment.