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
@ -1,11 +1,11 @@
|
|||||||
package commands
|
package commands
|
||||||
|
|
||||||
type Dependency struct {
|
type Dependency struct {
|
||||||
Name string
|
Name string
|
||||||
Version string
|
Version string
|
||||||
LinkPath string
|
LinkPath string
|
||||||
Present bool
|
Present bool
|
||||||
LocalVersion string
|
PackageConfig *PackageConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Dependency) Linked() bool {
|
func (d *Dependency) Linked() bool {
|
||||||
|
|||||||
@ -4,12 +4,10 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/buger/jsonparser"
|
|
||||||
"github.com/jesseduffield/lazynpm/pkg/config"
|
"github.com/jesseduffield/lazynpm/pkg/config"
|
||||||
"github.com/jesseduffield/lazynpm/pkg/i18n"
|
"github.com/jesseduffield/lazynpm/pkg/i18n"
|
||||||
"github.com/jinzhu/copier"
|
"github.com/jinzhu/copier"
|
||||||
@ -42,7 +40,7 @@ func NewNpmManager(log *logrus.Entry, osCommand *OSCommand, tr *i18n.Localizer,
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *NpmManager) UnmarshalPackage(r io.Reader) (*PackageConfig, error) {
|
func (m *NpmManager) UnmarshalPackageConfig(r io.Reader) (*PackageConfig, error) {
|
||||||
var pkgInput *PackageConfigInput
|
var pkgInput *PackageConfigInput
|
||||||
d := json.NewDecoder(r)
|
d := json.NewDecoder(r)
|
||||||
if err := d.Decode(&pkgInput); err != nil {
|
if err := d.Decode(&pkgInput); err != nil {
|
||||||
@ -130,8 +128,7 @@ func (m *NpmManager) GetPackages(paths []string) ([]*Package, error) {
|
|||||||
m.Log.Error(err)
|
m.Log.Error(err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
pkgConfig, err := m.UnmarshalPackage(file)
|
pkgConfig, err := m.UnmarshalPackageConfig(file)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -175,7 +172,6 @@ func (m *NpmManager) ChdirToPackageRoot() (bool, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *NpmManager) GetDeps(currentPkg *Package) ([]*Dependency, error) {
|
func (m *NpmManager) GetDeps(currentPkg *Package) ([]*Dependency, error) {
|
||||||
// for each dep, check whether it's in node modules
|
|
||||||
deps := currentPkg.SortedDependencies()
|
deps := currentPkg.SortedDependencies()
|
||||||
|
|
||||||
for _, dep := range deps {
|
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
|
// get the actual version of the package in node modules
|
||||||
packageConfigPath := filepath.Join(nodeModulesPath, "package.json")
|
packageConfigPath := filepath.Join(nodeModulesPath, "package.json")
|
||||||
bytes, err := ioutil.ReadFile(packageConfigPath)
|
file, err := os.OpenFile(packageConfigPath, os.O_RDONLY, 0644)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
m.Log.Error(err)
|
m.Log.Error(err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
pkgConfig, err := m.UnmarshalPackageConfig(file)
|
||||||
localVersion, err := jsonparser.GetString(bytes, "version")
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// swallowing error
|
// swallowing error
|
||||||
m.Log.Error(err)
|
m.Log.Error(err)
|
||||||
} else {
|
} else {
|
||||||
dep.LocalVersion = localVersion
|
dep.PackageConfig = pkgConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
isSymlink := fileInfo.Mode()&os.ModeSymlink == os.ModeSymlink
|
isSymlink := fileInfo.Mode()&os.ModeSymlink == os.ModeSymlink
|
||||||
|
|||||||
@ -16,12 +16,14 @@ func GetDependencyListDisplayStrings(dependencies []*commands.Dependency) [][]st
|
|||||||
return lines
|
return lines
|
||||||
}
|
}
|
||||||
|
|
||||||
func getDepDisplayStrings(p *commands.Dependency) []string {
|
func getDepDisplayStrings(d *commands.Dependency) []string {
|
||||||
|
|
||||||
localVersionCol := utils.ColoredString(p.LocalVersion, color.FgYellow)
|
localVersionCol := ""
|
||||||
if p.Linked() {
|
if d.Linked() {
|
||||||
localVersionCol = utils.ColoredString("linked: "+p.LinkPath, color.FgCyan)
|
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