#!/usr/bin/python3

import sys
from coq_packages import *

versions = {}
new_pkg = []

# what are we uploading by hand?
num = 1
while num < len(sys.argv):
    versions[sys.argv[num]] = sys.argv[num + 1]
    new_pkg.append(sys.argv[num])
    num = num + 2

all_pkg = transitive_rdeps(list(versions.keys()))

# compute all new versions
for pkg in all_pkg:
    if pkg not in new_pkg:
        binary = cache[guess_binary_name(pkg)]
        versions[pkg] = next_binary_version(binary.candidate.version)
        
# now find the dw & nmu lines
for pkg in all_pkg:
    # consider only relevant packages
    deps = set(coq_packages_deps[pkg])
    deps.intersection_update(versions.keys())

    # detect we need to declare NMU
    if pkg not in new_pkg:
        msg = ' '.join(f'{dep}={versions[dep]}' for dep in deps)
        print(f" nmu {pkg}_{versions[pkg]} . ANY . -m 'Rebuild because of upload of {msg}'")

    # always dw
    for dep in deps:
        print(f" dw {pkg}_{versions[pkg]} . ANY . -m '{dep} >= {versions[dep]}'")
