blob: 3ba41186bfc03ee02a816b59c7973e56691e09e6 [file] [log] [blame]
Zack Williamse940c7a2019-08-21 14:25:39 -07001/*
2 * Copyright 2019-present Ciena Corporation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package commands
17
18import (
19 "fmt"
20 flags "github.com/jessevdk/go-flags"
21 "gopkg.in/yaml.v2"
22)
23
24const copyrightNotice = `
25# Copyright 2019-present Ciena Corporation
26#
27# Licensed under the Apache License, Version 2.0 (the "License");
28# you may not use this file except in compliance with the License.
29# You may obtain a copy of the License at
30#
31# http://www.apache.org/licenses/LICENSE-2.0
32#
33# Unless required by applicable law or agreed to in writing, software
34# distributed under the License is distributed on an "AS IS" BASIS,
35# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
36# See the License for the specific language governing permissions and
37# limitations under the License.
38#
39`
40
David Bainbridgea6722342019-10-24 23:55:53 +000041type CommandOptionsDump struct{}
42
Zack Williamse940c7a2019-08-21 14:25:39 -070043type ConfigOptions struct {
David Bainbridgea6722342019-10-24 23:55:53 +000044 Commands CommandOptionsDump `command:"commands"`
Zack Williamse940c7a2019-08-21 14:25:39 -070045}
46
47func RegisterConfigCommands(parent *flags.Parser) {
David Bainbridgea6722342019-10-24 23:55:53 +000048 if command, err := parent.AddCommand("config", "generate voltctl configuration", "Commands to generate voltctl configuration", &ConfigOptions{}); err != nil {
49 Error.Fatalf("Unexpected error while attempting to register config commands : %s", err)
50 } else {
51 command.SubcommandsOptional = true
David Bainbridge12f036f2019-10-15 22:09:04 +000052 }
Zack Williamse940c7a2019-08-21 14:25:39 -070053}
54
55func (options *ConfigOptions) Execute(args []string) error {
56 //GlobalConfig
57 ProcessGlobalOptions()
58 b, err := yaml.Marshal(GlobalConfig)
59 if err != nil {
60 return err
61 }
62 fmt.Println(copyrightNotice)
63 fmt.Println(string(b))
64 return nil
65}
David Bainbridgea6722342019-10-24 23:55:53 +000066
67func (commands *CommandOptionsDump) Execute(args []string) error {
68 ProcessGlobalOptions()
69 b, err := yaml.Marshal(GlobalCommandOptions)
70 if err != nil {
71 return err
72 }
73 fmt.Println(copyrightNotice)
74 fmt.Println(string(b))
75 return nil
76}