1package main 2 3import ( 4 "bytes" 5 "fmt" 6 "github.com/olekukonko/tablewriter" 7 kingpin "gopkg.in/alecthomas/kingpin.v2" 8 "os" 9 "strings" 10 11 artifactory "artifactory.v401" 12) 13 14var ( 15 groupid = kingpin.Flag("groupid", "groupid coordinate").String() 16 artifactid = kingpin.Flag("artifactid", "artifactid coordinate").String() 17 version = kingpin.Flag("version", "version coordinate").String() 18 classifier = kingpin.Flag("classifier", "classifier coordinate").String() 19 repo = kingpin.Flag("repo", "repo to search against. can be specified multiple times").Strings() 20) 21 22func main() { 23 kingpin.Parse() 24 client := artifactory.NewClientFromEnv() 25 var coords artifactory.Gavc 26 if groupid != nil { 27 coords.GroupID = *groupid 28 } 29 if artifactid != nil { 30 coords.ArtifactID = *artifactid 31 } 32 if version != nil { 33 coords.Version = *version 34 } 35 if classifier != nil { 36 coords.Classifier = *classifier 37 } 38 if repo != nil { 39 coords.Repos = *repo 40 } 41 data, err := client.GAVCSearch(&coords) 42 if err != nil { 43 fmt.Printf("%s\n", err) 44 os.Exit(1) 45 } else { 46 table := tablewriter.NewWriter(os.Stdout) 47 table.SetAutoWrapText(false) 48 table.SetBorder(false) 49 table.SetAlignment(tablewriter.ALIGN_LEFT) 50 51 for _, r := range data { 52 var innerBuf bytes.Buffer 53 innerTable := tablewriter.NewWriter(&innerBuf) 54 innerTable.SetHeader([]string{ 55 "File", 56 "Repo", 57 "RemoteUrl", 58 "Created", 59 "Last Modified", 60 "Created By", 61 "Modified By", 62 "SHA1", 63 "MD5", 64 "Size", 65 "MimeType", 66 }) 67 elems := strings.Split(r.Path, "/") 68 fileName := elems[len(elems)-1] 69 innerTable.Append([]string{ 70 fileName, 71 r.Repo, 72 r.RemoteUrl, 73 r.Created, 74 r.LastModified, 75 r.CreatedBy, 76 r.ModifiedBy, 77 r.Checksums.SHA1, 78 r.Checksums.MD5, 79 r.Size, 80 r.MimeType, 81 }) 82 innerTable.Render() 83 table.Append([]string{ 84 innerBuf.String(), 85 }) 86 table.Append([]string{ 87 fmt.Sprintf("Download: %s\n", r.Uri), 88 }) 89 90 } 91 table.Render() 92 os.Exit(0) 93 } 94} 95