#!/usr/bin/env python
from JumpScale import j
import argparse
j.application.start("jpackages")
from JumpScale.baselib import cmdutils

parser = argparse.ArgumentParser()
parser.add_argument('-m', '--message', required=False, help='Commit message to publish package')
parser.add_argument('-l', '--local', dest="local", default=False, action="store_true", required=False, help='Only repackage locally')
parser.add_argument('-p', '--publish', dest="publish", default=False, action="store_true", required=False, help='Publish metadata')
parser.add_argument('--merge', dest="merge", default=False, action="store_true", required=False, help='Merge existing content of jpackage files with recipe if ommited clean existing content.')



packages, args = cmdutils.getJPackage(parser,installed=False)
domains = { jp.domain for jp in packages }

for domain in domains:
    j.packages.updateMetaData(domain)


for package in packages:
    if not args.merge:
        j.system.fs.removeDirTree(package.getPathFiles())
    package.package(update=True)
    if not args.message:
        args.message = 'Building JPackage "%s"' % package.name
    package.upload(remote=not args.local)
    if args.publish:
        j.packages.publish(args.message, package.domain)

j.application.stop()
