github.com/nkprince007/lab@v0.6.2-0.20171218071646-19d68b56f403/cmd/snippetList.go (about)

     1  package cmd
     2  
     3  import (
     4  	"fmt"
     5  	"log"
     6  
     7  	"github.com/spf13/cobra"
     8  	"github.com/xanzy/go-gitlab"
     9  	"github.com/zaquestion/lab/internal/git"
    10  	lab "github.com/zaquestion/lab/internal/gitlab"
    11  )
    12  
    13  // snippetListCmd represents the snippetList command
    14  var snippetListCmd = &cobra.Command{
    15  	Use:   "list",
    16  	Short: "List personal or project snippets",
    17  	Long:  ``,
    18  	Run: func(cmd *cobra.Command, args []string) {
    19  		remote, page, err := parseArgsRemote(args)
    20  		if err != nil {
    21  			log.Fatal(err)
    22  		}
    23  		if remote == "" {
    24  			remote = forkedFromRemote
    25  		}
    26  		listOpts := gitlab.ListOptions{
    27  			Page:    int(page),
    28  			PerPage: 10,
    29  		}
    30  
    31  		// See if we're in a git repo or if global is set to determine
    32  		// if this should be a personal snippet
    33  		rn, _ := git.PathWithNameSpace(remote)
    34  		if global || rn == "" {
    35  			opts := gitlab.ListSnippetsOptions{
    36  				ListOptions: listOpts,
    37  			}
    38  			snips, err := lab.SnippetList(&opts)
    39  			if err != nil {
    40  				log.Fatal(err)
    41  			}
    42  			for _, snip := range snips {
    43  				fmt.Printf("#%d %s\n", snip.ID, snip.Title)
    44  			}
    45  			return
    46  		}
    47  
    48  		project, err := lab.FindProject(rn)
    49  		if err != nil {
    50  			log.Fatal(err)
    51  		}
    52  		opts := gitlab.ListProjectSnippetsOptions{
    53  			ListOptions: listOpts,
    54  		}
    55  		snips, err := lab.ProjectSnippetList(project.ID, &opts)
    56  		if err != nil {
    57  			log.Fatal(err)
    58  		}
    59  		for _, snip := range snips {
    60  			fmt.Printf("#%d %s\n", snip.ID, snip.Title)
    61  		}
    62  	},
    63  }
    64  
    65  func init() {
    66  	snippetCmd.AddCommand(snippetListCmd)
    67  }