73 lines
2.0 KiB
Python
73 lines
2.0 KiB
Python
# vim: se sw=2:
|
|
# MIT licensed
|
|
# Copyright (c) 2013-2017 lilydjwg <lilydjwg@gmail.com>, et al.
|
|
|
|
import sys
|
|
import os
|
|
import argparse
|
|
import structlog
|
|
|
|
from . import core
|
|
|
|
logger = structlog.get_logger(logger_name=__name__)
|
|
|
|
def take():
|
|
parser = argparse.ArgumentParser(description='update version records of nvchecker')
|
|
core.add_common_arguments(parser)
|
|
parser.add_argument('--all', action='store_true',
|
|
help='take all updates')
|
|
parser.add_argument('--ignore-nonexistent', action='store_true',
|
|
help='ignore nonexistent names')
|
|
parser.add_argument('names', metavar='NAME', nargs='*',
|
|
help='software name to be updated')
|
|
args = parser.parse_args()
|
|
if core.process_common_arguments(args):
|
|
return
|
|
|
|
s = core.Source(args.file)
|
|
if not s.oldver or not s.newver:
|
|
logger.critical(
|
|
"doesn't have both 'oldver' and 'newver' set.", source=s,
|
|
)
|
|
sys.exit(2)
|
|
|
|
oldvers = core.read_verfile(s.oldver)
|
|
newvers = core.read_verfile(s.newver)
|
|
|
|
if args.all:
|
|
oldvers.update(newvers)
|
|
else:
|
|
for name in args.names:
|
|
try:
|
|
oldvers[name] = newvers[name]
|
|
except KeyError:
|
|
if args.ignore_nonexistent:
|
|
logger.warning('nonexistent in newver, ignored', name=name)
|
|
continue
|
|
|
|
logger.critical(
|
|
"doesn't exist in 'newver' set.", name=name,
|
|
)
|
|
sys.exit(2)
|
|
|
|
try:
|
|
os.rename(s.oldver, s.oldver + '~')
|
|
except FileNotFoundError:
|
|
pass
|
|
core.write_verfile(s.oldver, oldvers)
|
|
|
|
def cmp():
|
|
parser = argparse.ArgumentParser(description='compare version records of nvchecker')
|
|
core.add_common_arguments(parser)
|
|
args = parser.parse_args()
|
|
if core.process_common_arguments(args):
|
|
return
|
|
|
|
s = core.Source(args.file)
|
|
oldvers = core.read_verfile(s.oldver) if s.oldver else {}
|
|
newvers = core.read_verfile(s.newver)
|
|
for name, newver in sorted(newvers.items()):
|
|
oldver = oldvers.get(name, None)
|
|
if oldver != newver:
|
|
print('%s %s -> %s' % (name, oldver, newver))
|