Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
Go
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980package main
import ( "context" "fmt" "log/slog" "os" "os/signal" "syscall"
"github.com/carlmjohnson/versioninfo" "github.com/urfave/cli/v3" "tangled.org/core/log" "tangled.org/core/migrator" "tangled.org/core/migrator/config" "tangled.org/core/migrator/git")
func main() { if err := run(os.Args); err != nil { slog.Error("error running migrator", "err", err) os.Exit(-1) }}
func run(args []string) error { ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) defer cancel()
logger := log.New("migrator") slog.SetDefault(logger) ctx = log.IntoContext(ctx, logger)
app := cli.Command{ Name: "migrator", Usage: "tangled centralized durable GitHub repository importer", Version: versioninfo.Short(), } app.Commands = []*cli.Command{ { Name: "serve", Usage: "run the migrator daemon", Action: runMigrator, }, { Name: "askpass", Usage: "internal git askpass helper", Action: runAskpass, }, } return app.Run(ctx, args)}
func runMigrator(ctx context.Context, cmd *cli.Command) error { cfg, err := config.Load(ctx) if err != nil { return err } return migrator.Run(ctx, cfg)}
func runAskpass(ctx context.Context, cmd *cli.Command) error { args := cmd.Args().Slice() if len(args) == 0 { return fmt.Errorf("no prompt provided to askpass") } prompt := args[0]
token := os.Getenv("MIGRATOR_ASKPASS_TOKEN") expectedHost := os.Getenv("MIGRATOR_ASKPASS_HOST")
resp, err := git.HandleAskpass(prompt, expectedHost, token) if err != nil { return err }
fmt.Println(resp) return nil}