code: func collections(c *cli.Context) error {
  	format := c.String(FormatKey)
  	if format == "" {
  		format = OutputFormatRaw
  	}
  
  	var log flog.Logger
  	if format == OutputFormatRaw {
  		log = flog.NewDefaultRawLogger()
  	} else if format == OutputFormatJSON {
  		log = flog.NewDefaultJSONLoger()
  	} else {
  		fmt.Printf("%s: invalid format: %s\n", colorstring.Red("Error"), format)
  		os.Exit(1)
  	}
  
  	steplibInfos := []models.SteplibInfoModel{}
  	stepLibURIs := stepman.GetAllStepCollectionPath()
  	for _, steplibURI := range stepLibURIs {
  		route, found := stepman.ReadRoute(steplibURI)
  		if !found {
  			log.Print(NewErrorOutput("No routing found for steplib: %s", steplibURI))
  			os.Exit(1)
  		}
  
  		specPth := stepman.GetStepSpecPath(route)
  
  		steplibInfos = append(steplibInfos, models.SteplibInfoModel{
  			URI:      steplibURI,
  			SpecPath: specPth,
  		})
  	}
  
  	log.Print(NewOutput(steplibInfos))
  
  	return nil
  }
docs: // -------------