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
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()
|
|
}
|