mirror of
https://github.com/jesseduffield/lazynpm.git
synced 2026-01-09 06:21:11 +08:00
WIP
This commit is contained in:
parent
edf70e2727
commit
12728bc113
@ -5,7 +5,7 @@ type Dependency struct {
|
||||
Version string
|
||||
LinkPath string
|
||||
Present bool
|
||||
LocalVersion string
|
||||
PackageConfig *PackageConfig
|
||||
}
|
||||
|
||||
func (d *Dependency) Linked() bool {
|
||||
|
||||
@ -4,12 +4,10 @@ import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/buger/jsonparser"
|
||||
"github.com/jesseduffield/lazynpm/pkg/config"
|
||||
"github.com/jesseduffield/lazynpm/pkg/i18n"
|
||||
"github.com/jinzhu/copier"
|
||||
@ -42,7 +40,7 @@ func NewNpmManager(log *logrus.Entry, osCommand *OSCommand, tr *i18n.Localizer,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (m *NpmManager) UnmarshalPackage(r io.Reader) (*PackageConfig, error) {
|
||||
func (m *NpmManager) UnmarshalPackageConfig(r io.Reader) (*PackageConfig, error) {
|
||||
var pkgInput *PackageConfigInput
|
||||
d := json.NewDecoder(r)
|
||||
if err := d.Decode(&pkgInput); err != nil {
|
||||
@ -130,8 +128,7 @@ func (m *NpmManager) GetPackages(paths []string) ([]*Package, error) {
|
||||
m.Log.Error(err)
|
||||
continue
|
||||
}
|
||||
pkgConfig, err := m.UnmarshalPackage(file)
|
||||
|
||||
pkgConfig, err := m.UnmarshalPackageConfig(file)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -175,7 +172,6 @@ func (m *NpmManager) ChdirToPackageRoot() (bool, error) {
|
||||
}
|
||||
|
||||
func (m *NpmManager) GetDeps(currentPkg *Package) ([]*Dependency, error) {
|
||||
// for each dep, check whether it's in node modules
|
||||
deps := currentPkg.SortedDependencies()
|
||||
|
||||
for _, dep := range deps {
|
||||
@ -190,18 +186,17 @@ func (m *NpmManager) GetDeps(currentPkg *Package) ([]*Dependency, error) {
|
||||
|
||||
// get the actual version of the package in node modules
|
||||
packageConfigPath := filepath.Join(nodeModulesPath, "package.json")
|
||||
bytes, err := ioutil.ReadFile(packageConfigPath)
|
||||
file, err := os.OpenFile(packageConfigPath, os.O_RDONLY, 0644)
|
||||
if err != nil {
|
||||
m.Log.Error(err)
|
||||
continue
|
||||
}
|
||||
|
||||
localVersion, err := jsonparser.GetString(bytes, "version")
|
||||
pkgConfig, err := m.UnmarshalPackageConfig(file)
|
||||
if err != nil {
|
||||
// swallowing error
|
||||
m.Log.Error(err)
|
||||
} else {
|
||||
dep.LocalVersion = localVersion
|
||||
dep.PackageConfig = pkgConfig
|
||||
}
|
||||
|
||||
isSymlink := fileInfo.Mode()&os.ModeSymlink == os.ModeSymlink
|
||||
|
||||
@ -16,12 +16,14 @@ func GetDependencyListDisplayStrings(dependencies []*commands.Dependency) [][]st
|
||||
return lines
|
||||
}
|
||||
|
||||
func getDepDisplayStrings(p *commands.Dependency) []string {
|
||||
func getDepDisplayStrings(d *commands.Dependency) []string {
|
||||
|
||||
localVersionCol := utils.ColoredString(p.LocalVersion, color.FgYellow)
|
||||
if p.Linked() {
|
||||
localVersionCol = utils.ColoredString("linked: "+p.LinkPath, color.FgCyan)
|
||||
localVersionCol := ""
|
||||
if d.Linked() {
|
||||
localVersionCol = utils.ColoredString("linked: "+d.LinkPath, color.FgCyan)
|
||||
} else if d.PackageConfig != nil {
|
||||
localVersionCol = utils.ColoredString(d.PackageConfig.Version, color.FgYellow)
|
||||
}
|
||||
|
||||
return []string{p.Name, utils.ColoredString(p.Version, color.FgMagenta), localVersionCol}
|
||||
return []string{d.Name, utils.ColoredString(d.Version, color.FgMagenta), localVersionCol}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user