package main import ( "context" "fmt" "os" "path/filepath" ) type App struct { ctx context.Context } func NewApp() *App { return &App{} } func (a *App) startup(ctx context.Context) { a.ctx = ctx } func (a *App) Greet(name string) string { return fmt.Sprintf("Hello %s, It's show time!", name) } func getExeDir() string { exe, err := os.Executable() if err != nil { return "." } return filepath.Dir(exe) }