add flags for output format
This commit is contained in:
		
							parent
							
								
									4ec04b6abf
								
							
						
					
					
						commit
						8855bc9932
					
				
							
								
								
									
										26
									
								
								cmd/root.go
								
								
								
								
							
							
						
						
									
										26
									
								
								cmd/root.go
								
								
								
								
							| 
						 | 
					@ -29,6 +29,11 @@ import (
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var file string
 | 
					var file string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var matlabFmt bool
 | 
				
			||||||
 | 
					var pythonFmt bool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var oneline bool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// rootCmd represents the base command when called without any subcommands
 | 
					// rootCmd represents the base command when called without any subcommands
 | 
				
			||||||
var rootCmd = &cobra.Command{
 | 
					var rootCmd = &cobra.Command{
 | 
				
			||||||
	Use:   "dptdist",
 | 
						Use:   "dptdist",
 | 
				
			||||||
| 
						 | 
					@ -64,10 +69,23 @@ func parse(cmd *cobra.Command, args []string) {
 | 
				
			||||||
		panic("not an absorbing Markov chain!")
 | 
							panic("not an absorbing Markov chain!")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						fmtOptions := make([]mat.FormatOption, 0)
 | 
				
			||||||
 | 
						if matlabFmt {
 | 
				
			||||||
 | 
							fmtOptions = append(fmtOptions, mat.FormatMATLAB())
 | 
				
			||||||
 | 
						} else if pythonFmt {
 | 
				
			||||||
 | 
							fmtOptions = append(fmtOptions, mat.FormatPython())
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						fmtOptions = append(fmtOptions, mat.Squeeze())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	a := graph.AdjacencyMatrix()
 | 
						a := graph.AdjacencyMatrix()
 | 
				
			||||||
	out := mat.Formatted(a)
 | 
						out := mat.Formatted(a, fmtOptions...)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (matlabFmt || pythonFmt) != oneline {
 | 
				
			||||||
 | 
							fmt.Printf("%#v\n", out)
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
		fmt.Printf("%v\n", out)
 | 
							fmt.Printf("%v\n", out)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Execute adds all child commands to the root command and sets flags appropriately.
 | 
					// Execute adds all child commands to the root command and sets flags appropriately.
 | 
				
			||||||
// This is called by main.main(). It only needs to happen once to the rootCmd.
 | 
					// This is called by main.main(). It only needs to happen once to the rootCmd.
 | 
				
			||||||
| 
						 | 
					@ -91,4 +109,10 @@ func init() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rootCmd.Flags().StringVarP(&file, "file", "f", "", "dot file with absorbing Markov chain")
 | 
						rootCmd.Flags().StringVarP(&file, "file", "f", "", "dot file with absorbing Markov chain")
 | 
				
			||||||
	rootCmd.MarkFlagRequired("file")
 | 
						rootCmd.MarkFlagRequired("file")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						rootCmd.Flags().BoolVar(&matlabFmt, "matlab", false, "format output as MATLAB array")
 | 
				
			||||||
 | 
						rootCmd.Flags().BoolVar(&pythonFmt, "python", false, "format output as python array")
 | 
				
			||||||
 | 
						rootCmd.MarkFlagsMutuallyExclusive("matlab", "python")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						rootCmd.Flags().BoolVar(&oneline, "oneline", false, "output on one line")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue