You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.1 KiB

package main
import (
"fmt"
"log"
"os"
"github.com/adamveld12/gpm/lib"
)
func main() {
log.SetFlags(log.Lshortfile)
if len(os.Args) < 2 || os.Args[1] != "install" {
log.Fatal("gpm [install]")
}
p, err := lib.ParsePackageJson("./package.json")
if err != nil {
panic(err)
}
fmt.Println("Dependencies")
for k, v := range p.Dependencies {
fmt.Printf("\t%s => %s\n", k, v)
printPackages(k)
}
fmt.Println("Dev Dependencies")
for k, v := range p.DevDependencies {
fmt.Printf("\t%s => %s\n", k, v)
printPackages(k)
}
fmt.Println()
n, err := lib.BuildDependencyTree(p)
if err != nil {
log.Fatal(err)
}
log.Printf("%+v", n)
}
func printPackages(k string) {
pinfo, err := lib.GetPackageInfo(k)
if err != nil {
fmt.Printf("\t-- could not fetch: %v\n", err)
}
fmt.Printf("\t-- %d versions available\n", len(pinfo.Versions))
idx := 0
for _, dep := range pinfo.Versions {
if idx >= len(pinfo.Versions)-5 {
fmt.Printf("\t\t%s - %s\n", dep.ID, dep.Dist.Sum)
fmt.Printf("\t\t\t%d dependencies\n", len(dep.Dependencies))
fmt.Printf("\t\t\t%d dev dependencies\n", len(dep.DevDependencies))
}
}
fmt.Println()
}