recursive
This commit is contained in:
parent
0a9fc9f5a0
commit
f38394d05a
@ -58,7 +58,7 @@ def parse_manifest(pkg):
|
|||||||
try:
|
try:
|
||||||
dependencies = latest_manifest['dependencies']
|
dependencies = latest_manifest['dependencies']
|
||||||
except KeyError:
|
except KeyError:
|
||||||
dependencies = None
|
dependencies = json.loads('{}')
|
||||||
try:
|
try:
|
||||||
scripts = latest_manifest['scripts']
|
scripts = latest_manifest['scripts']
|
||||||
except KeyError:
|
except KeyError:
|
||||||
@ -96,7 +96,7 @@ def parse_actual_manifest(pkg, ver):
|
|||||||
try:
|
try:
|
||||||
dependencies = manifest['dependencies']
|
dependencies = manifest['dependencies']
|
||||||
except KeyError:
|
except KeyError:
|
||||||
dependencies = None
|
dependencies = json.loads('{}')
|
||||||
try:
|
try:
|
||||||
scripts = manifest['scripts']
|
scripts = manifest['scripts']
|
||||||
except KeyError:
|
except KeyError:
|
||||||
@ -105,7 +105,7 @@ def parse_actual_manifest(pkg, ver):
|
|||||||
|
|
||||||
return Manifest(name, version, dependencies, scripts)
|
return Manifest(name, version, dependencies, scripts)
|
||||||
|
|
||||||
def compare_manifests(pkg, brief=False, color=False):
|
def compare_manifests(pkg, brief=False, color=False, recursive=False):
|
||||||
mismatch = False
|
mismatch = False
|
||||||
if pkg.reported_manifest.version != pkg.actual_manifest.version:
|
if pkg.reported_manifest.version != pkg.actual_manifest.version:
|
||||||
mismatch = True
|
mismatch = True
|
||||||
@ -177,6 +177,11 @@ def compare_manifests(pkg, brief=False, color=False):
|
|||||||
if color:
|
if color:
|
||||||
print(colors.END, end='')
|
print(colors.END, end='')
|
||||||
|
|
||||||
|
if recursive:
|
||||||
|
for package in pkg.actual_manifest.dependencies:
|
||||||
|
print('Recursive: {}'.format(package))
|
||||||
|
mismatch = compare_manifests(Package(package), brief=brief, color=color, recursive=True) or mismatch
|
||||||
|
|
||||||
return mismatch
|
return mismatch
|
||||||
|
|
||||||
|
|
||||||
@ -185,13 +190,14 @@ def main():
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(prog='npm-manifest-check', description='Check NPM packages for manifest mismatches')
|
parser = argparse.ArgumentParser(prog='npm-manifest-check', description='Check NPM packages for manifest mismatches')
|
||||||
|
parser.add_argument('-r', '--recursive', action='store_true', help='recursively check all dependencies for mismatches')
|
||||||
parser.add_argument('-b', '--brief', action='store_true', help='do not show detailed comparisons of mismatching values')
|
parser.add_argument('-b', '--brief', action='store_true', help='do not show detailed comparisons of mismatching values')
|
||||||
parser.add_argument('-c', '--color', action='store_true', help='colorize the output')
|
parser.add_argument('-c', '--color', action='store_true', help='colorize the output')
|
||||||
parser.add_argument('package', type=str, help='name of the NPM package')
|
parser.add_argument('package', type=str, help='name of the NPM package')
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
package = Package(args.package)
|
package = Package(args.package)
|
||||||
mismatching = compare_manifests(package, brief=args.brief, color=args.color)
|
mismatching = compare_manifests(package, brief=args.brief, color=args.color, recursive=args.recursive)
|
||||||
if mismatching:
|
if mismatching:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user