mirror of
https://github.com/genuinetools/reg.git
synced 2024-09-28 11:46:20 -04:00
fix once behavior
Signed-off-by: Jess Frazelle <acidburn@microsoft.com>
This commit is contained in:
parent
69eea86c1f
commit
a47f406b5c
2 changed files with 15 additions and 13 deletions
15
handlers.go
15
handlers.go
|
@ -21,11 +21,12 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type registryController struct {
|
type registryController struct {
|
||||||
reg *registry.Registry
|
reg *registry.Registry
|
||||||
cl *clair.Clair
|
cl *clair.Clair
|
||||||
interval time.Duration
|
interval time.Duration
|
||||||
l sync.Mutex
|
l sync.Mutex
|
||||||
tmpl *template.Template
|
tmpl *template.Template
|
||||||
|
generateOnly bool
|
||||||
}
|
}
|
||||||
|
|
||||||
type v1Compatibility struct {
|
type v1Compatibility struct {
|
||||||
|
@ -52,7 +53,7 @@ type AnalysisResult struct {
|
||||||
UpdateInterval time.Duration
|
UpdateInterval time.Duration
|
||||||
}
|
}
|
||||||
|
|
||||||
func (rc *registryController) repositories(staticDir string, generateTagsFiles bool) error {
|
func (rc *registryController) repositories(staticDir string) error {
|
||||||
rc.l.Lock()
|
rc.l.Lock()
|
||||||
defer rc.l.Unlock()
|
defer rc.l.Unlock()
|
||||||
|
|
||||||
|
@ -79,7 +80,7 @@ func (rc *registryController) repositories(staticDir string, generateTagsFiles b
|
||||||
|
|
||||||
result.Repositories = append(result.Repositories, r)
|
result.Repositories = append(result.Repositories, r)
|
||||||
|
|
||||||
if !generateTagsFiles {
|
if !rc.generateOnly {
|
||||||
// Continue early because we don't need to generate the tags pages.
|
// Continue early because we don't need to generate the tags pages.
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
13
server.go
13
server.go
|
@ -38,7 +38,7 @@ func (cmd *serverCommand) Register(fs *flag.FlagSet) {
|
||||||
fs.StringVar(&cmd.port, "port", "8080", "port for server to run on")
|
fs.StringVar(&cmd.port, "port", "8080", "port for server to run on")
|
||||||
fs.StringVar(&cmd.assetPath, "asset-path", "", "Path to assets and templates")
|
fs.StringVar(&cmd.assetPath, "asset-path", "", "Path to assets and templates")
|
||||||
|
|
||||||
fs.BoolVar(&cmd.once, "once", false, "generate an output once and then exit")
|
fs.BoolVar(&cmd.generateAndExit, "once", false, "generate the templates once and then exit")
|
||||||
}
|
}
|
||||||
|
|
||||||
type serverCommand struct {
|
type serverCommand struct {
|
||||||
|
@ -46,7 +46,7 @@ type serverCommand struct {
|
||||||
registryServer string
|
registryServer string
|
||||||
clairServer string
|
clairServer string
|
||||||
|
|
||||||
once bool
|
generateAndExit bool
|
||||||
|
|
||||||
cert string
|
cert string
|
||||||
key string
|
key string
|
||||||
|
@ -63,7 +63,8 @@ func (cmd *serverCommand) Run(ctx context.Context, args []string) error {
|
||||||
|
|
||||||
// Create the registry controller for the handlers.
|
// Create the registry controller for the handlers.
|
||||||
rc := registryController{
|
rc := registryController{
|
||||||
reg: r,
|
reg: r,
|
||||||
|
generateOnly: cmd.generateAndExit,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a clair client if the user passed in a server address.
|
// Create a clair client if the user passed in a server address.
|
||||||
|
@ -133,11 +134,11 @@ func (cmd *serverCommand) Run(ctx context.Context, args []string) error {
|
||||||
|
|
||||||
// Create the initial index.
|
// Create the initial index.
|
||||||
logrus.Info("creating initial static index")
|
logrus.Info("creating initial static index")
|
||||||
if err := rc.repositories(staticDir, true); err != nil {
|
if err := rc.repositories(staticDir); err != nil {
|
||||||
return fmt.Errorf("creating index failed: %v", err)
|
return fmt.Errorf("creating index failed: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if cmd.once {
|
if cmd.generateAndExit {
|
||||||
logrus.Info("output generated, exiting...")
|
logrus.Info("output generated, exiting...")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -148,7 +149,7 @@ func (cmd *serverCommand) Run(ctx context.Context, args []string) error {
|
||||||
// Create more indexes every X minutes based off interval.
|
// Create more indexes every X minutes based off interval.
|
||||||
for range ticker.C {
|
for range ticker.C {
|
||||||
logrus.Info("creating timer based static index")
|
logrus.Info("creating timer based static index")
|
||||||
if err := rc.repositories(staticDir, false); err != nil {
|
if err := rc.repositories(staticDir); err != nil {
|
||||||
logrus.Warnf("creating static index failed: %v", err)
|
logrus.Warnf("creating static index failed: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue