mirror of
https://github.com/lilydjwg/nvchecker.git
synced 2025-03-10 06:14:02 +00:00
Add all option to cmp (#209)
Add --all option to nvcmp to get all packages, even with no version change
This commit is contained in:
parent
b61fbe5a37
commit
ea01b6d9ee
1 changed files with 58 additions and 19 deletions
|
@ -75,6 +75,8 @@ def cmp() -> None:
|
||||||
'(or array of names if --quiet)')
|
'(or array of names if --quiet)')
|
||||||
parser.add_argument('-q', '--quiet', action='store_true',
|
parser.add_argument('-q', '--quiet', action='store_true',
|
||||||
help="Quiet mode, output only the names.")
|
help="Quiet mode, output only the names.")
|
||||||
|
parser.add_argument('-a', '--all', action='store_true',
|
||||||
|
help="Include unchanged versions.")
|
||||||
parser.add_argument('-s', '--sort',
|
parser.add_argument('-s', '--sort',
|
||||||
choices=('parse_version', 'vercmp', 'none'), default='parse_version',
|
choices=('parse_version', 'vercmp', 'none'), default='parse_version',
|
||||||
help='Version compare method to backwards the arrow '
|
help='Version compare method to backwards the arrow '
|
||||||
|
@ -104,27 +106,39 @@ def cmp() -> None:
|
||||||
for name, newver in sorted(newvers.items()): # accumulate differences
|
for name, newver in sorted(newvers.items()): # accumulate differences
|
||||||
oldver = oldvers.get(name, None)
|
oldver = oldvers.get(name, None)
|
||||||
|
|
||||||
if oldver != newver:
|
diff = {
|
||||||
diff = {
|
'name': name,
|
||||||
'name': name,
|
'oldver': oldver,
|
||||||
'oldver': oldver,
|
'newver': newver
|
||||||
'newver': newver
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if oldver is not None and newver is not None:
|
if oldver is not None and newver is not None:
|
||||||
if args.sort == "none":
|
if oldver == newver:
|
||||||
diff['delta'] = 'new' # assume it's a new version if we're not comparing
|
diff['delta'] = 'equal'
|
||||||
|
|
||||||
|
elif args.sort == "none":
|
||||||
|
diff['delta'] = 'new' # assume it's a new version if we're not comparing
|
||||||
|
|
||||||
|
else:
|
||||||
|
from .sortversion import sort_version_keys
|
||||||
|
version = sort_version_keys[args.sort]
|
||||||
|
|
||||||
|
if version(oldver) > version(newver): # type: ignore
|
||||||
|
if args.newer:
|
||||||
|
continue # don't store this diff
|
||||||
|
diff['delta'] = 'old'
|
||||||
else:
|
else:
|
||||||
from .sortversion import sort_version_keys
|
diff['delta'] = 'new'
|
||||||
version = sort_version_keys[args.sort]
|
|
||||||
|
|
||||||
if version(oldver) > version(newver): # type: ignore
|
elif oldver is None:
|
||||||
diff['delta'] = 'old'
|
diff['delta'] = 'added'
|
||||||
if args.newer:
|
|
||||||
continue # don't store this diff
|
|
||||||
else:
|
|
||||||
diff['delta'] = 'new'
|
|
||||||
|
|
||||||
|
elif newver is None:
|
||||||
|
if args.newer:
|
||||||
|
continue # don't store this diff
|
||||||
|
diff['delta'] = 'gone'
|
||||||
|
|
||||||
|
if args.all or diff['delta'] != 'equal':
|
||||||
differences.append(diff)
|
differences.append(diff)
|
||||||
|
|
||||||
if args.json:
|
if args.json:
|
||||||
|
@ -139,6 +153,31 @@ def cmp() -> None:
|
||||||
else:
|
else:
|
||||||
from .lib.nicelogger import Colors, support_color
|
from .lib.nicelogger import Colors, support_color
|
||||||
c = Colors(support_color(sys.stdout))
|
c = Colors(support_color(sys.stdout))
|
||||||
arrow = f'{c.red}<-{c.normal}' if diff.get('delta') == 'old' else '->'
|
|
||||||
|
|
||||||
[print(f'{diff["name"]} {c.red}{diff["oldver"]}{c.normal} {arrow} {c.green}{diff["newver"]}{c.normal}') for diff in differences]
|
diffstyles = {
|
||||||
|
'new': {
|
||||||
|
'symbol': '->',
|
||||||
|
'oldc': c.red
|
||||||
|
},
|
||||||
|
'old': {
|
||||||
|
'symbol': f'{c.red}<-{c.normal}',
|
||||||
|
'oldc': c.red
|
||||||
|
},
|
||||||
|
'added': {
|
||||||
|
'symbol': '++',
|
||||||
|
'oldc': c.red
|
||||||
|
},
|
||||||
|
'gone': {
|
||||||
|
'symbol': f'{c.red}--{c.normal}',
|
||||||
|
'oldc': c.green
|
||||||
|
},
|
||||||
|
'equal': {
|
||||||
|
'symbol': '==',
|
||||||
|
'oldc': c.green
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for diff in differences:
|
||||||
|
style = diffstyles[diff.get('delta', 'equal')]
|
||||||
|
|
||||||
|
print(f'{diff["name"]} {style["oldc"]}{diff["oldver"]}{c.normal} {style["symbol"]} {c.green}{diff["newver"]}{c.normal}')
|
||||||
|
|
Loading…
Add table
Reference in a new issue