mirror of
https://github.com/harness/drone.git
synced 2025-05-01 13:11:27 +00:00
This change is fixing our docker file which is used to build our harness code image used for PR deployments. Furthermore, the change contains some logging improvements that were added along the way of setting up the PR environment.
88 lines
2.0 KiB
Go
88 lines
2.0 KiB
Go
// Copyright 2022 Harness Inc. All rights reserved.
|
|
// Use of this source code is governed by the Polyform Free Trial License
|
|
// that can be found in the LICENSE.md file for this repository.
|
|
|
|
package cli
|
|
|
|
import (
|
|
"errors"
|
|
"io/fs"
|
|
"os"
|
|
"path/filepath"
|
|
|
|
"github.com/adrg/xdg"
|
|
|
|
"github.com/harness/gitness/cli/session"
|
|
"github.com/harness/gitness/client"
|
|
|
|
"github.com/harness/gitness/cli/operations/account"
|
|
"github.com/harness/gitness/cli/operations/user"
|
|
"github.com/harness/gitness/cli/operations/users"
|
|
"github.com/harness/gitness/cli/server"
|
|
"github.com/harness/gitness/version"
|
|
|
|
"gopkg.in/alecthomas/kingpin.v2"
|
|
)
|
|
|
|
const (
|
|
application = "gitness"
|
|
description = "description goes here" // TODO edit this application description
|
|
)
|
|
|
|
// Command parses the command line arguments and then executes a
|
|
// subcommand program.
|
|
func Command() {
|
|
s := &session.Session{}
|
|
httpClient := &client.HTTPClient{}
|
|
|
|
err := initialize(s, httpClient)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
app := kingpin.New(application, description)
|
|
server.Register(app)
|
|
|
|
user.Register(app, httpClient)
|
|
users.Register(app, httpClient)
|
|
|
|
account.RegisterLogin(app, httpClient, s)
|
|
account.RegisterRegister(app, httpClient, s)
|
|
account.RegisterLogout(app, s)
|
|
|
|
registerSwagger(app)
|
|
|
|
kingpin.Version(version.Version.String())
|
|
kingpin.MustParse(app.Parse(os.Args[1:]))
|
|
}
|
|
|
|
func initialize(ss *session.Session, httpClient *client.HTTPClient) error {
|
|
// todo: refactor asap, we need to get rid of literal value 'server'
|
|
if len(os.Args) > 1 && os.Args[1] == "server" {
|
|
return nil
|
|
}
|
|
path, err := xdg.ConfigFile(
|
|
filepath.Join("app", "config.json"),
|
|
)
|
|
if err != nil && !errors.Is(err, fs.ErrNotExist) {
|
|
return err
|
|
}
|
|
|
|
*ss, err = session.LoadFromPath(path)
|
|
if err != nil && !errors.Is(err, fs.ErrNotExist) {
|
|
return err
|
|
}
|
|
|
|
if ss.URI == "" {
|
|
// session is immutable
|
|
*ss = ss.SetURI("http://localhost:3000")
|
|
}
|
|
|
|
*httpClient = *client.NewToken(ss.URI, ss.AccessToken)
|
|
if os.Getenv("DEBUG") == "true" {
|
|
httpClient.SetDebug(true)
|
|
}
|
|
|
|
return nil
|
|
}
|