)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28208,"name":"Roman Gorshunov","email":"roman.gorshunov@att.com","username":"gorshunovr"},"change_message_id":"8ebddab18597c706abdbd6bf5f200ab2fc559387","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Sirisha Gopigiri \u003csirishagopigiri@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-04-16 20:43:54 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Create airshipctl user guide documentation structure"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Modifying go code to generate rst file appropriate to sphinx,"},{"line_number":10,"context_line":"so that they can be easliy rendered in docs.airshipit.org"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"fdca0faa_7252a5f8","line":7,"range":{"start_line":7,"start_character":18,"end_line":7,"end_character":22},"updated":"2021-04-19 10:54:59.000000000","message":"cli user","commit_id":"964a81a770417718c8414b2f3397504e7b8ffc7e"}],"docs/source/cli/airshipctl.md":[{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":9,"context_line":"## Options"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"```"},{"line_number":12,"context_line":"      --airshipconf string   Path to file for airshipctl configuration. (default \"$HOME/.airship/config\")"},{"line_number":13,"context_line":"      --debug                enable verbose output"},{"line_number":14,"context_line":"  -h, --help                 help for airshipctl"},{"line_number":15,"context_line":"```"}],"source_content_type":"text/x-markdown","patch_set":4,"id":"62137195_9fe1baab","line":12,"updated":"2021-04-07 20:23:03.000000000","message":"how about - Path to the airshipctl configuration file. Defaults to \"$HOME/.airship/config\"","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"},{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"## baremetal"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Perform actions on baremetal hosts"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"```"},{"line_number":22,"context_line":"airshipctl baremetal [flags]"}],"source_content_type":"text/x-markdown","patch_set":4,"id":"67d948fa_1f01f593","line":19,"updated":"2021-04-07 20:23:03.000000000","message":"bare metal. Two words. The doc team aligned on using \"bare metal\" instead of \"baremetal\"","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"},{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":31,"context_line":"### Options inherited from parent commands"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"```"},{"line_number":34,"context_line":"      --airshipconf string   Path to file for airshipctl configuration. (default \"$HOME/.airship/config\")"},{"line_number":35,"context_line":"      --debug                enable verbose output"},{"line_number":36,"context_line":"```"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":4,"id":"5c010e1b_3c835c56","line":34,"range":{"start_line":34,"start_character":34,"end_line":34,"end_character":37},"updated":"2021-04-07 20:23:03.000000000","message":"do we need to redefine the options again? can we reference the parent definition of the option?","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"},{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"### ejectmedia"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Eject media attached to a baremetal hosts"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"#### Synopsis"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":4,"id":"b3cf6871_e8f13cd5","line":40,"range":{"start_line":40,"start_character":26,"end_line":40,"end_character":36},"updated":"2021-04-07 20:23:03.000000000","message":"bare metal","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"},{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"### ejectmedia"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Eject media attached to a baremetal hosts"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"#### Synopsis"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":4,"id":"30e631ff_389c49d8","line":40,"range":{"start_line":40,"start_character":36,"end_line":40,"end_character":41},"updated":"2021-04-07 20:23:03.000000000","message":"host, no plural","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"},{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"#### Synopsis"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Eject media attached to a baremetal hosts"},{"line_number":45,"context_line":"The command will target baremetal hosts from airship inventory kustomize root"},{"line_number":46,"context_line":"based on the --name, --namespace and --labels flags provided. If no flags are"},{"line_number":47,"context_line":"provided airshipctl will try to select all baremetal hosts in the inventory"}],"source_content_type":"text/x-markdown","patch_set":4,"id":"3a2f6434_2d4c35e1","line":44,"range":{"start_line":44,"start_character":26,"end_line":44,"end_character":36},"updated":"2021-04-07 20:23:03.000000000","message":"bare metal host","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"},{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":42,"context_line":"#### Synopsis"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Eject media attached to a baremetal hosts"},{"line_number":45,"context_line":"The command will target baremetal hosts from airship inventory kustomize root"},{"line_number":46,"context_line":"based on the --name, --namespace and --labels flags provided. If no flags are"},{"line_number":47,"context_line":"provided airshipctl will try to select all baremetal hosts in the inventory"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":4,"id":"747bba2d_a7dd87e7","line":45,"range":{"start_line":45,"start_character":24,"end_line":45,"end_character":34},"updated":"2021-04-07 20:23:03.000000000","message":"bare metal","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"},{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":44,"context_line":"Eject media attached to a baremetal hosts"},{"line_number":45,"context_line":"The command will target baremetal hosts from airship inventory kustomize root"},{"line_number":46,"context_line":"based on the --name, --namespace and --labels flags provided. If no flags are"},{"line_number":47,"context_line":"provided airshipctl will try to select all baremetal hosts in the inventory"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"```"}],"source_content_type":"text/x-markdown","patch_set":4,"id":"091a0b7b_b01b08a2","line":47,"range":{"start_line":47,"start_character":25,"end_line":47,"end_character":31},"updated":"2021-04-07 20:23:03.000000000","message":"I think we can remove \"try to\"","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"},{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":44,"context_line":"Eject media attached to a baremetal hosts"},{"line_number":45,"context_line":"The command will target baremetal hosts from airship inventory kustomize root"},{"line_number":46,"context_line":"based on the --name, --namespace and --labels flags provided. If no flags are"},{"line_number":47,"context_line":"provided airshipctl will try to select all baremetal hosts in the inventory"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"```"}],"source_content_type":"text/x-markdown","patch_set":4,"id":"60b54760_cb4ad1a1","line":47,"range":{"start_line":47,"start_character":43,"end_line":47,"end_character":53},"updated":"2021-04-07 20:23:03.000000000","message":"bare metal","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"},{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":73,"context_line":"```"},{"line_number":74,"context_line":"      --all                specify this to target all hosts in the inventory"},{"line_number":75,"context_line":"  -h, --help               help for ejectmedia"},{"line_number":76,"context_line":"  -l, --labels string      Label(s) to filter desired baremetal host documents"},{"line_number":77,"context_line":"      --name string        Name to filter desired baremetal host document"},{"line_number":78,"context_line":"  -n, --namespace string   airshipctl phase that contains the desired baremetal host document(s)"},{"line_number":79,"context_line":"      --timeout duration   timeout on baremetal action (default 10m0s)"}],"source_content_type":"text/x-markdown","patch_set":4,"id":"67473e55_c21d6a09","line":76,"range":{"start_line":76,"start_character":54,"end_line":76,"end_character":64},"updated":"2021-04-07 20:23:03.000000000","message":"bare metal","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"},{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":75,"context_line":"  -h, --help               help for ejectmedia"},{"line_number":76,"context_line":"  -l, --labels string      Label(s) to filter desired baremetal host documents"},{"line_number":77,"context_line":"      --name string        Name to filter desired baremetal host document"},{"line_number":78,"context_line":"  -n, --namespace string   airshipctl phase that contains the desired baremetal host document(s)"},{"line_number":79,"context_line":"      --timeout duration   timeout on baremetal action (default 10m0s)"},{"line_number":80,"context_line":"```"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":4,"id":"8faad26c_447c320f","line":78,"range":{"start_line":78,"start_character":70,"end_line":78,"end_character":80},"updated":"2021-04-07 20:23:03.000000000","message":"bare metal","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"},{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":76,"context_line":"  -l, --labels string      Label(s) to filter desired baremetal host documents"},{"line_number":77,"context_line":"      --name string        Name to filter desired baremetal host document"},{"line_number":78,"context_line":"  -n, --namespace string   airshipctl phase that contains the desired baremetal host document(s)"},{"line_number":79,"context_line":"      --timeout duration   timeout on baremetal action (default 10m0s)"},{"line_number":80,"context_line":"```"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"#### Options inherited from parent commands"}],"source_content_type":"text/x-markdown","patch_set":4,"id":"9b43260f_f3d561bd","line":79,"range":{"start_line":79,"start_character":38,"end_line":79,"end_character":48},"updated":"2021-04-07 20:23:03.000000000","message":"bare metal","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"},{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":82,"context_line":"#### Options inherited from parent commands"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"```"},{"line_number":85,"context_line":"      --airshipconf string   Path to file for airshipctl configuration. (default \"$HOME/.airship/config\")"},{"line_number":86,"context_line":"      --debug                enable verbose output"},{"line_number":87,"context_line":"```"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":4,"id":"6efe2230_1438fa56","line":85,"updated":"2021-04-07 20:23:03.000000000","message":"ditto","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"},{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"#### Synopsis"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Power off baremetal hosts"},{"line_number":96,"context_line":"The command will target baremetal hosts from airship inventory kustomize root"},{"line_number":97,"context_line":"based on the --name, --namespace and --labels flags provided. If no flags are"},{"line_number":98,"context_line":"provided airshipctl will try to select all baremetal hosts in the inventory"}],"source_content_type":"text/x-markdown","patch_set":4,"id":"a7bf49eb_07a9311e","line":95,"range":{"start_line":95,"start_character":10,"end_line":95,"end_character":20},"updated":"2021-04-07 20:23:03.000000000","message":"bare metal","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"},{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"0cbb4f23e42d10990564881563acb2d16a708d3e","unresolved":true,"context_lines":[{"line_number":93,"context_line":"#### Synopsis"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Power off baremetal hosts"},{"line_number":96,"context_line":"The command will target baremetal hosts from airship inventory kustomize root"},{"line_number":97,"context_line":"based on the --name, --namespace and --labels flags provided. If no flags are"},{"line_number":98,"context_line":"provided airshipctl will try to select all baremetal hosts in the inventory"},{"line_number":99,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":4,"id":"94f74dd7_5b5cf122","line":96,"range":{"start_line":96,"start_character":24,"end_line":96,"end_character":34},"updated":"2021-04-07 20:23:03.000000000","message":"bare metal","commit_id":"57f11ab505f8b1dcbde02ffb6ed7872befd3d6d6"}],"docs/source/cli/airshipctl.rst":[{"author":{"_account_id":24580,"name":"James Gu","email":"james.gu@microsoft.com","username":"jamesgu"},"change_message_id":"ef151701ed506a6941dee81ff95c73cf24390424","unresolved":true,"context_lines":[{"line_number":77,"context_line":"Synopsis"},{"line_number":78,"context_line":"^^^^^^^^"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Eject media attached to a bare metal host"},{"line_number":81,"context_line":"The command will target bare metal hosts from airship inventory kustomize root"},{"line_number":82,"context_line":"based on the --name, --namespace and --labels flags provided. If no flags are"},{"line_number":83,"context_line":"provided airshipctl will select all bare metal hosts in the inventory"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"``airshipctl baremetal ejectmedia [flags]``"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"aed17ef2_3fd4a6e0","line":84,"range":{"start_line":80,"start_character":0,"end_line":84,"end_character":0},"updated":"2021-04-27 15:49:01.000000000","message":"missing periods?","commit_id":"5de24d5482446c0d9d6f983ba0206bfcc4e16604"},{"author":{"_account_id":32167,"name":"Sirisha Gopigiri","email":"sirishagopigiri@gmail.com","username":"sirishagopigiri"},"change_message_id":"1f56c6243be165ebad00f46a703a6d62b53263f5","unresolved":true,"context_lines":[{"line_number":77,"context_line":"Synopsis"},{"line_number":78,"context_line":"^^^^^^^^"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Eject media attached to a bare metal host"},{"line_number":81,"context_line":"The command will target bare metal hosts from airship inventory kustomize root"},{"line_number":82,"context_line":"based on the --name, --namespace and --labels flags provided. If no flags are"},{"line_number":83,"context_line":"provided airshipctl will select all bare metal hosts in the inventory"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"``airshipctl baremetal ejectmedia [flags]``"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"16a6b198_496c3f36","line":84,"range":{"start_line":80,"start_character":0,"end_line":84,"end_character":0},"in_reply_to":"aed17ef2_3fd4a6e0","updated":"2021-04-28 15:46:38.000000000","message":"Fixed","commit_id":"5de24d5482446c0d9d6f983ba0206bfcc4e16604"}],"docs/tools/generate_cli_docs.go":[{"author":{"_account_id":21991,"name":"Kostyantyn Kalynovskyi","email":"kkalinovskiy@gmail.com","username":"kkalynovskyi"},"change_message_id":"6974ef6c57a28cce8476d4581a467c037fde8236","unresolved":true,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"\t// Remote auto-generated notice"},{"line_number":34,"context_line":"\trootCmd.DisableAutoGenTag \u003d true"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"\tf, err :\u003d os.Create(\"./docs/source/cli/airshipctl.rst\")"},{"line_number":37,"context_line":"\tif err !\u003d nil {"},{"line_number":38,"context_line":"\t\tfmt.Println(err)"},{"line_number":39,"context_line":"\t}"},{"line_number":40,"context_line":"\tdefer f.Close()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"\terr \u003d markDownRoot(rootCmd, f)"},{"line_number":43,"context_line":"\tif err !\u003d nil {"},{"line_number":44,"context_line":"\t\tfmt.Println(err)"},{"line_number":45,"context_line":"\t}"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"\terr \u003d genMarkDown(rootCmd, f)"},{"line_number":48,"context_line":"\tif err !\u003d nil {"},{"line_number":49,"context_line":"\t\tfmt.Println(err)"},{"line_number":50,"context_line":"\t}"},{"line_number":51,"context_line":"}"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"func markDownRoot(cmd *cobra.Command, w io.Writer) error {"},{"line_number":54,"context_line":"\tbuf :\u003d new(bytes.Buffer)"},{"line_number":55,"context_line":"\tname :\u003d strings.Split(cmd.CommandPath(), \" \")"},{"line_number":56,"context_line":"\tcmdName :\u003d strings.Join(name[len(name)-1:], \" \")"},{"line_number":57,"context_line":"\theaderHash :\u003d strings.Repeat(\"\u003d\", len(cmdName))"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"\tbuf.WriteString(cmdName + \"\\n\" + headerHash + \"\\n\\n\")"},{"line_number":60,"context_line":"\tbuf.WriteString(cmd.Short + \"\\n\\n\")"},{"line_number":61,"context_line":"\tif len(cmd.Long) \u003e 0 {"},{"line_number":62,"context_line":"\t\tbuf.WriteString(\"Synopsis\\n--------\\n\\n\")"},{"line_number":63,"context_line":"\t\tbuf.WriteString(cmd.Long + \"\\n\\n\")"},{"line_number":64,"context_line":"\t}"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"\tbuf.WriteString(fmt.Sprintf(\"``%s [TYPE] [command] [sub-command|params] [flags]``\\n\\n\\n\", cmd.Use))"},{"line_number":67,"context_line":"\tbuf.WriteString(\"`TYPE`: resource types on which airshipctl performs actions.\\n\\n\")"},{"line_number":68,"context_line":"\tbuf.WriteString(\"`command`: specifies the actions that can be performed on the targeted resource.\\n\\n\")"},{"line_number":69,"context_line":"\tbuf.WriteString(\"`sub-command | params`:\")"},{"line_number":70,"context_line":"\tbuf.WriteString(\" sub-command defines the particular sub-action that can be performed on the resource.\")"},{"line_number":71,"context_line":"\tbuf.WriteString(\" Params defines the optional or mandatory arguments that can be passed to the resource.\\n\\n\")"},{"line_number":72,"context_line":"\tbuf.WriteString(\"`flags`: defines various options that can be passed while executing a specific command.\\n\\n\\n\")"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"\taddSubRow, addArgsRow :\u003d getSubcommandAndArgs(cmd)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"\tgenerateTable(cmd, buf, false, addSubRow, addArgsRow)"},{"line_number":77,"context_line":"\t_, err :\u003d buf.WriteTo(w)"},{"line_number":78,"context_line":"\tif err !\u003d nil {"},{"line_number":79,"context_line":"\t\treturn err"},{"line_number":80,"context_line":"\t}"},{"line_number":81,"context_line":"\treturn nil"},{"line_number":82,"context_line":"}"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"func printOptions(buf *bytes.Buffer, cmd *cobra.Command, subheader string) error {"},{"line_number":85,"context_line":"\tflags :\u003d cmd.NonInheritedFlags()"},{"line_number":86,"context_line":"\tflags.SetOutput(buf)"},{"line_number":87,"context_line":"\tif flags.HasAvailableFlags() {"},{"line_number":88,"context_line":"\t\tsubheaderHash :\u003d strings.Repeat(subheader, 5)"},{"line_number":89,"context_line":"\t\tbuf.WriteString(\"Flags\\n\" + subheaderHash + \"\\n\\n.. code:: yaml\\n\\n\")"},{"line_number":90,"context_line":"\t\tflags.PrintDefaults()"},{"line_number":91,"context_line":"\t\tbuf.WriteString(\"\\n\\n\")"},{"line_number":92,"context_line":"\t}"},{"line_number":93,"context_line":"\treturn nil"},{"line_number":94,"context_line":"}"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"func markDown(cmd *cobra.Command, w io.Writer, subcommand bool, args bool) error {"},{"line_number":97,"context_line":"\tbuf :\u003d new(bytes.Buffer)"},{"line_number":98,"context_line":"\tname :\u003d strings.Split(cmd.CommandPath(), \" \")"},{"line_number":99,"context_line":"\tcmdName :\u003d strings.Join(name[len(name)-1:], \" \")"},{"line_number":100,"context_line":"\theader :\u003d \"^\""},{"line_number":101,"context_line":"\tsubheader :\u003d \"^\""},{"line_number":102,"context_line":"\tif len(name) \u003d\u003d 2 {"},{"line_number":103,"context_line":"\t\theader \u003d \"-\""},{"line_number":104,"context_line":"\t\tsubheader \u003d \"~\""},{"line_number":105,"context_line":"\t} else if len(name) \u003d\u003d 3 {"},{"line_number":106,"context_line":"\t\theader \u003d \"~\""},{"line_number":107,"context_line":"\t\tsubheader \u003d \"^\""},{"line_number":108,"context_line":"\t}"},{"line_number":109,"context_line":"\theaderHash :\u003d strings.Repeat(header, len(cmdName))"},{"line_number":110,"context_line":"\tsubHeaderHash :\u003d strings.Repeat(subheader, 8)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"\tbuf.WriteString(cmdName + \"\\n\" + headerHash + \"\\n\\n\")"},{"line_number":113,"context_line":"\tif cmd.HasSubCommands() {"},{"line_number":114,"context_line":"\t\tbuf.WriteString(cmd.Short + \"\\n\\n\")"},{"line_number":115,"context_line":"\t} else {"},{"line_number":116,"context_line":"\t\tbuf.WriteString(\"Airshipctl command to \" + strings.ToLower(cmd.Short) + \"\\n\\n\")"},{"line_number":117,"context_line":"\t}"},{"line_number":118,"context_line":"\tif len(cmd.Long) \u003e 0 {"},{"line_number":119,"context_line":"\t\tbuf.WriteString(\"Synopsis\\n\" + subHeaderHash + \"\\n\\n\")"},{"line_number":120,"context_line":"\t\tbuf.WriteString(cmd.Long + \"\\n\\n\")"},{"line_number":121,"context_line":"\t}"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"\tbuf.WriteString(fmt.Sprintf(\"``%s\", cmd.UseLine()))"},{"line_number":124,"context_line":"\tif cmd.HasSubCommands() {"},{"line_number":125,"context_line":"\t\tif len(name) \u003d\u003d 3 {"},{"line_number":126,"context_line":"\t\t\tbuf.WriteString(\" [sub-command]\")"},{"line_number":127,"context_line":"\t\t} else {"},{"line_number":128,"context_line":"\t\t\tbuf.WriteString(\" [command]\")"},{"line_number":129,"context_line":"\t\t}"},{"line_number":130,"context_line":"\t\tif subcommand {"},{"line_number":131,"context_line":"\t\t\tbuf.WriteString(\" [sub-command]\")"},{"line_number":132,"context_line":"\t\t}"},{"line_number":133,"context_line":"\t\tif args {"},{"line_number":134,"context_line":"\t\t\tbuf.WriteString(\" [params] [flags]\")"},{"line_number":135,"context_line":"\t\t} else {"},{"line_number":136,"context_line":"\t\t\tbuf.WriteString(\" [flags]\")"},{"line_number":137,"context_line":"\t\t}"},{"line_number":138,"context_line":"\t}"},{"line_number":139,"context_line":"\tbuf.WriteString(\"``\\n\\n\")"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"\tif err :\u003d printOptions(buf, cmd, subheader); err !\u003d nil {"},{"line_number":142,"context_line":"\t\treturn err"},{"line_number":143,"context_line":"\t}"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"\tif len(cmd.Example) \u003e 0 {"},{"line_number":146,"context_line":"\t\tbuf.WriteString(\"Examples\\n\" + subHeaderHash + \"\\n\\n\")"},{"line_number":147,"context_line":"\t\texampleLines :\u003d strings.Split(cmd.Example, \"\\n\")"},{"line_number":148,"context_line":"\t\tbuf.WriteString(\".. code:: yaml\\n\\n\")"},{"line_number":149,"context_line":"\t\tfor _, line :\u003d range exampleLines {"},{"line_number":150,"context_line":"\t\t\tif line !\u003d \"\" {"},{"line_number":151,"context_line":"\t\t\t\tbuf.WriteString(\"    \" + line + \"\\n\")"},{"line_number":152,"context_line":"\t\t\t} else {"},{"line_number":153,"context_line":"\t\t\t\tbuf.WriteString(\"\\n\")"},{"line_number":154,"context_line":"\t\t\t}"},{"line_number":155,"context_line":"\t\t}"},{"line_number":156,"context_line":"\t}"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"\t_, err :\u003d buf.WriteTo(w)"},{"line_number":159,"context_line":"\treturn err"},{"line_number":160,"context_line":"}"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"func genMarkDown(cmd *cobra.Command, w io.Writer) error {"},{"line_number":163,"context_line":"\taddSubRow, addArgsRow :\u003d getSubcommandAndArgs(cmd)"},{"line_number":164,"context_line":"\tif cmd.HasParent() {"},{"line_number":165,"context_line":"\t\tif err :\u003d markDown(cmd, w, addSubRow, addArgsRow); err !\u003d nil {"},{"line_number":166,"context_line":"\t\t\treturn err"},{"line_number":167,"context_line":"\t\t}"},{"line_number":168,"context_line":"\t}"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"\tif cmd.HasSubCommands() \u0026\u0026 cmd.HasParent() {"},{"line_number":171,"context_line":"\t\tbuf :\u003d new(bytes.Buffer)"},{"line_number":172,"context_line":"\t\tgenerateTable(cmd, buf, true, addSubRow, addArgsRow)"},{"line_number":173,"context_line":"\t\t_, err :\u003d buf.WriteTo(w)"},{"line_number":174,"context_line":"\t\tif err !\u003d nil {"},{"line_number":175,"context_line":"\t\t\treturn err"},{"line_number":176,"context_line":"\t\t}"},{"line_number":177,"context_line":"\t}"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"\tfor _, c :\u003d range cmd.Commands() {"},{"line_number":180,"context_line":"\t\tif !c.IsAvailableCommand() || c.IsAdditionalHelpTopicCommand() {"},{"line_number":181,"context_line":"\t\t\tcontinue"},{"line_number":182,"context_line":"\t\t}"},{"line_number":183,"context_line":"\t\tif err :\u003d genMarkDown(c, w); err !\u003d nil {"},{"line_number":184,"context_line":"\t\t\treturn err"},{"line_number":185,"context_line":"\t\t}"},{"line_number":186,"context_line":"\t}"},{"line_number":187,"context_line":"\treturn nil"},{"line_number":188,"context_line":"}"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"func generateTable(cmd *cobra.Command, buf *bytes.Buffer,"},{"line_number":191,"context_line":"\tsubcommand bool, addSubRow bool, addArgsRow bool) {"},{"line_number":192,"context_line":"\trows :\u003d make([][]interface{}, len(cmd.Commands()))"},{"line_number":193,"context_line":"\tfor i, c :\u003d range cmd.Commands() {"},{"line_number":194,"context_line":"\t\tvar row []interface{}"},{"line_number":195,"context_line":"\t\tname :\u003d strings.Split(c.CommandPath(), \" \")"},{"line_number":196,"context_line":"\t\tcmdName :\u003d strings.Join(name[len(name)-1:], \" \")"},{"line_number":197,"context_line":"\t\tcol1 :\u003d \"`\" + cmdName + \" \u003c#\" + cmdName + \"\u003e`__\""},{"line_number":198,"context_line":"\t\trow \u003d []interface{}{col1, c.Short}"},{"line_number":199,"context_line":"\t\tif c.HasSubCommands() {"},{"line_number":200,"context_line":"\t\t\tsubcommands :\u003d \"\""},{"line_number":201,"context_line":"\t\t\tfor _, cm :\u003d range c.Commands() {"},{"line_number":202,"context_line":"\t\t\t\tcname :\u003d strings.Split(cm.CommandPath(), \" \")"},{"line_number":203,"context_line":"\t\t\t\tcName :\u003d strings.Join(cname[len(cname)-1:], \" \")"},{"line_number":204,"context_line":"\t\t\t\tsubcommands \u003d subcommands + \", \" + cName"},{"line_number":205,"context_line":"\t\t\t}"},{"line_number":206,"context_line":"\t\t\trow \u003d append(row, subcommands[2:])"},{"line_number":207,"context_line":"\t\t} else if addSubRow {"},{"line_number":208,"context_line":"\t\t\trow \u003d append(row, \"None\")"},{"line_number":209,"context_line":"\t\t}"},{"line_number":210,"context_line":"\t\tif c.Args !\u003d nil \u0026\u0026 c.Args(c, []string{\"test\"}) \u003d\u003d nil {"},{"line_number":211,"context_line":"\t\t\trow \u003d append(row, strings.Join(strings.Split(c.Use, \" \")[1:], \" \"))"},{"line_number":212,"context_line":"\t\t} else if addArgsRow {"},{"line_number":213,"context_line":"\t\t\trow \u003d append(row, \"None\")"},{"line_number":214,"context_line":"\t\t}"},{"line_number":215,"context_line":"\t\trows[i] \u003d row"},{"line_number":216,"context_line":"\t}"},{"line_number":217,"context_line":"\tt :\u003d gotabulate.Create(rows)"},{"line_number":218,"context_line":"\tcol1 :\u003d \"TYPE\""},{"line_number":219,"context_line":"\tcol3 :\u003d \"Commands\""},{"line_number":220,"context_line":"\tif subcommand {"},{"line_number":221,"context_line":"\t\tcol1 \u003d \"Commands\""},{"line_number":222,"context_line":"\t\tcol3 \u003d \"SubCommands\""},{"line_number":223,"context_line":"\t}"},{"line_number":224,"context_line":"\ttableHeader :\u003d []string{col1, \"Description\"}"},{"line_number":225,"context_line":"\tif addSubRow {"},{"line_number":226,"context_line":"\t\ttableHeader \u003d append(tableHeader, col3)"},{"line_number":227,"context_line":"\t}"},{"line_number":228,"context_line":"\tif addArgsRow {"},{"line_number":229,"context_line":"\t\ttableHeader \u003d append(tableHeader, \"Optional/Mandatory Params\")"},{"line_number":230,"context_line":"\t}"},{"line_number":231,"context_line":"\tt.SetHeaders(tableHeader)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"\tbuf.WriteString(t.Render(\"grid\"))"},{"line_number":234,"context_line":"\tbuf.WriteString(\"\\n\\n\")"},{"line_number":235,"context_line":"\treturn"},{"line_number":236,"context_line":"}"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"func getSubcommandAndArgs(cmd *cobra.Command) (bool, bool) {"},{"line_number":239,"context_line":"\taddSubRow, addArgsRow :\u003d false, false"},{"line_number":240,"context_line":"\tfor _, c :\u003d range cmd.Commands() {"},{"line_number":241,"context_line":"\t\tif c.Args !\u003d nil \u0026\u0026 c.Args(c, []string{\"test\"}) \u003d\u003d nil {"},{"line_number":242,"context_line":"\t\t\taddArgsRow \u003d true"},{"line_number":243,"context_line":"\t\t}"},{"line_number":244,"context_line":"\t\tif c.HasSubCommands() {"},{"line_number":245,"context_line":"\t\t\taddSubRow \u003d true"},{"line_number":246,"context_line":"\t\t}"},{"line_number":247,"context_line":"\t}"},{"line_number":248,"context_line":"\treturn addSubRow, addArgsRow"},{"line_number":249,"context_line":"}"}],"source_content_type":"text/x-go","patch_set":16,"id":"8f5c54ae_e4d01323","line":249,"range":{"start_line":35,"start_character":0,"end_line":249,"end_character":1},"updated":"2021-04-28 23:42:14.000000000","message":"I dont understand why we need to implement our own version of ReST document format in go, it has no tests and is very hard to maintain. Why not use\ndoc.GenReSTTree() instead it will generate rst documents for us. If u want custom headers u can use doc.GenReSTTreeCustom ...","commit_id":"5de24d5482446c0d9d6f983ba0206bfcc4e16604"}]}
