package config import ( "time" "gitea.libretechconsulting.com/rmcguire/git-project-manager/internal/remotes/info" ) type Config struct { // Named keys above maintained for backwards compatibility // Ideally only Gitlabs is used Remotes []info.RemoteInfo LogLevel string `yaml:"logLevel" json:"logLevel" enum:"info,warn,debug,error"` ProjectPath string `yaml:"projectPath" json:"projectPath"` Cache cacheConfig `yaml:"cache" json:"cache"` Dump struct { Full bool `yaml:"full" json:"full"` } `yaml:"dump" json:"dump"` Editor editorConfig `yaml:"editor" json:"editor"` } type editorConfig struct { DisplayName string `yaml:"displanName,omitempty" json:"displanName,omitempty"` Binary string `yaml:"binary,omitempty" json:"binary,omitempty"` OpenFlags string `yaml:"openFlags,omitempty" json:"openFlags,omitempty"` OpenDirectory bool `yaml:"openDirectory" json:"openDirectory" description:"Don't open well-known files, open directory"` } type loadConfig struct { OwnerOnly bool `yaml:"ownerOnly" json:"ownerOnly"` } type cacheConfig struct { Ttl time.Duration `yaml:"ttl,omitempty" json:"ttl,omitempty"` File string `yaml:"file,omitempty" json:"file,omitempty"` Load loadConfig `yaml:"load" json:"load"` Unlock struct { Force bool `yaml:"force" json:"force"` } `yaml:"unlock" json:"unlock"` Clear struct { ClearAliases bool `yaml:"clearAliases,omitempty" json:"clearAliases,omitempty"` } `yaml:"clear,omitempty" json:"clear,omitempty"` } var DefaultConfig = Config{ LogLevel: "warn", ProjectPath: "~/work/projects", Remotes: []info.RemoteInfo{{ Host: "https://gitlab.com", Token: "yourtokenhere", CloneProto: info.CloneProtoSSH, Name: "GitLab", Type: "gitlab", }}, Cache: cacheConfig{ Ttl: 168 * time.Hour, Load: loadConfig{ OwnerOnly: true, }, }, }