mirror of
https://github.com/h44z/wg-portal
synced 2025-02-26 05:49:14 +00:00
Initial alpha codebase for version 2 of WireGuard Portal. This version is considered unstable and incomplete (for example, no public REST API)! Use with care! Fixes/Implements the following issues: - OAuth support #154, #1 - New Web UI with internationalisation support #98, #107, #89, #62 - Postgres Support #49 - Improved Email handling #47, #119 - DNS Search Domain support #46 - Bugfixes #94, #48 --------- Co-authored-by: Fabian Wechselberger <wechselbergerf@hotmail.com>
71 lines
1.6 KiB
Go
71 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/swaggo/swag"
|
|
"github.com/swaggo/swag/gen"
|
|
)
|
|
|
|
// this replaces the call to: swag init --propertyStrategy pascalcase --parseDependency --parseInternal --generalInfo base.go
|
|
func main() {
|
|
wd, err := os.Getwd() // should be the project root
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
apiBasePath := filepath.Join(wd, "/internal/app/api")
|
|
apis := []string{"v0"}
|
|
|
|
hasError := false
|
|
for _, apiVersion := range apis {
|
|
apiPath := filepath.Join(apiBasePath, apiVersion, "handlers")
|
|
|
|
apiVersion = strings.TrimLeft(apiVersion, "api-")
|
|
log.Println("")
|
|
log.Println("Generate swagger docs for API", apiVersion)
|
|
log.Println("Api path:", apiPath)
|
|
|
|
err := generateApi(apiBasePath, apiPath, apiVersion)
|
|
if err != nil {
|
|
hasError = true
|
|
logrus.Errorf("failed to generate API docs for %s: %v", apiVersion, err)
|
|
}
|
|
|
|
log.Println("Generated swagger docs for API", apiVersion)
|
|
}
|
|
|
|
if hasError {
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
func generateApi(basePath, apiPath, version string) error {
|
|
err := gen.New().Build(&gen.Config{
|
|
SearchDir: apiPath,
|
|
Excludes: "",
|
|
MainAPIFile: "base.go",
|
|
PropNamingStrategy: swag.PascalCase,
|
|
OutputDir: filepath.Join(basePath, "core/assets/doc"),
|
|
OutputTypes: []string{"json", "yaml"},
|
|
ParseVendor: false,
|
|
ParseDependency: true,
|
|
MarkdownFilesDir: "",
|
|
ParseInternal: true,
|
|
GeneratedTime: false,
|
|
CodeExampleFilesDir: "",
|
|
ParseDepth: 3,
|
|
InstanceName: version,
|
|
})
|
|
if err != nil {
|
|
return fmt.Errorf("swag failed: %w", err)
|
|
}
|
|
|
|
return nil
|
|
}
|