package cmd import ( "path/filepath" log "github.com/sirupsen/logrus" ) // Input contains the input for the root command type Input struct { actor string workdir string workflowsPath string autodetectEvent bool eventPath string reuseContainers bool bindWorkdir bool secrets []string envs []string inputs []string platforms []string dryrun bool forcePull bool forceRebuild bool noOutput bool envfile string inputfile string secretfile string insecureSecrets bool defaultBranch string privileged bool usernsMode string containerArchitecture string containerDaemonSocket string containerOptions string noWorkflowRecurse bool useGitIgnore bool githubInstance string containerCapAdd []string containerCapDrop []string autoRemove bool artifactServerPath string artifactServerAddr string artifactServerPort string jsonLogger bool noSkipCheckout bool remoteName string replaceGheActionWithGithubCom []string replaceGheActionTokenWithGithubCom string matrix []string } func (i *Input) resolve(path string) string { basedir, err := filepath.Abs(i.workdir) if err != nil { log.Fatal(err) } if path == "" { return path } if !filepath.IsAbs(path) { path = filepath.Join(basedir, path) } return path } // Envfile returns path to .env func (i *Input) Envfile() string { return i.resolve(i.envfile) } // Secretfile returns path to secrets func (i *Input) Secretfile() string { return i.resolve(i.secretfile) } // Workdir returns path to workdir func (i *Input) Workdir() string { return i.resolve(".") } // WorkflowsPath returns path to workflow file(s) func (i *Input) WorkflowsPath() string { return i.resolve(i.workflowsPath) } // EventPath returns the path to events file func (i *Input) EventPath() string { return i.resolve(i.eventPath) } // Inputfile returns the path to the input file func (i *Input) Inputfile() string { return i.resolve(i.inputfile) }