//go:build mage // +build mage package main import ( "context" "runtime" "github.com/magefile/mage/mg" "github.com/magefile/mage/sh" ) // Default target to run when none is specified // If not set, running mage will list available targets var Default = Run // Run the Identity Provider func RunIdp() error { return sh.RunV("ruby", "./bin/idp") } // Run the Service Provider func RunSp() error { return sh.RunV("ruby", "./bin/sp") } // Run the API Gateway func RunGateway() error { return sh.RunV("go", "run", "./cmd/gtwy/main.go") } // Open a web browser to the login page func Browser() error { if runtime.GOOS == "linux" { return sh.RunV("xdg-open", "http://localhost:8080/sp/sessions/new") } else { return sh.RunV("open", "http://localhost:8080/sp/sessions/new") } } // Run All the servers func Run(ctx context.Context) { mg.CtxDeps(ctx, RunIdp, RunSp, RunGateway, Browser) }