|
|
- // Copyright 2020 The Gitea Authors. All rights reserved.
- // Use of this source code is governed by a MIT-style
- // license that can be found in the LICENSE file.
-
- package main
-
- import (
- "fmt"
- "io/ioutil"
- "os"
- "path/filepath"
-
- "code.gitea.io/gitea/models"
- )
-
- // To generate derivative fixtures, execute the following from Gitea's repository base dir:
- // go run -tags 'sqlite sqlite_unlock_notify' contrib/fixtures/fixture_generation.go [fixture...]
-
- var (
- generators = []struct {
- gen func() (string, error)
- name string
- }{
- {
- models.GetYamlFixturesAccess, "access",
- },
- }
- fixturesDir string
- )
-
- func main() {
- pathToGiteaRoot := "."
- fixturesDir = filepath.Join(pathToGiteaRoot, "models", "fixtures")
- if err := models.CreateTestEngine(fixturesDir); err != nil {
- fmt.Printf("CreateTestEngine: %+v", err)
- os.Exit(1)
- }
- if err := models.PrepareTestDatabase(); err != nil {
- fmt.Printf("PrepareTestDatabase: %+v\n", err)
- os.Exit(1)
- }
- if len(os.Args) == 0 {
- for _, r := range os.Args {
- if err := generate(r); err != nil {
- fmt.Printf("generate '%s': %+v\n", r, err)
- os.Exit(1)
- }
- }
- } else {
- for _, g := range generators {
- if err := generate(g.name); err != nil {
- fmt.Printf("generate '%s': %+v\n", g.name, err)
- os.Exit(1)
- }
- }
- }
- }
-
- func generate(name string) error {
- for _, g := range generators {
- if g.name == name {
- data, err := g.gen()
- if err != nil {
- return err
- }
- path := filepath.Join(fixturesDir, name+".yml")
- if err := ioutil.WriteFile(path, []byte(data), 0644); err != nil {
- return fmt.Errorf("%s: %+v", path, err)
- }
- fmt.Printf("%s created.\n", path)
- return nil
- }
- }
-
- return fmt.Errorf("generator not found")
- }
|