This repository has been archived by the owner on Oct 27, 2022. It is now read-only.
/
root.go
71 lines (57 loc) · 1.86 KB
/
root.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*
Copyright (c) 2020 - 2021 the WolvenKit contributors.
Licensed under the GNU Affero General Public License v3.0 (the "License").
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package cmd
import (
"fmt"
"github.com/WolvenKit/gpm/internal/gpm/config"
"github.com/spf13/cobra"
"os"
"github.com/spf13/viper"
)
var (
cfgFile string
)
// rootCmd represents the base command when called without any subcommands
var rootCmd = &cobra.Command{
Use: "gpm",
Short: "A game agnostic mod manager",
Long: `A Fast(ish) and Flexible, game agnostic, mod manager built with
love by osulli and WolvenKit Devs in Go.
Source available at https://github.com/WolvenKit/gpm
Copyright (c) 2020 - 2021 the WolvenKit contributors.
Licensed under the GNU Affero General Public License v3.0 (the "License").`,
}
// Execute adds all child commands to the root command and sets flags appropriately.
// This is called by gpm/main.go.main()
func Execute() {
if err := rootCmd.Execute(); err != nil {
fmt.Println(err)
os.Exit(1)
}
}
func init() {
cobra.OnInitialize(initConfig)
// Define flags and configuration settings.
rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.gpm/.gpm.toml)")
// Define sub-commands
rootCmd.AddCommand(versionCmd)
rootCmd.AddCommand(downloadCmd)
rootCmd.AddCommand(installCmd)
rootCmd.AddCommand(describeCmd)
rootCmd.AddCommand(configCmd)
}
func initConfig() {
if cfgFile != "" {
// Use config file from the flag.
viper.SetConfigFile(cfgFile)
} else {
config.InitialiseConfig()
}
}