#!/usr/bin/env python3
import subprocess
import argparse
import sys
import os
parser = argparse.ArgumentParser()
parser.add_argument("--debemail", required = True)
parser.add_argument("--package", required = True)
parser.add_argument("--newversion", required = True)
parser.add_argument("--description", default = "Software and firmware for Cryptech Alpha development board.")
parser.add_argument("--conflicts", default = "")
args = parser.parse_args()
if os.path.exists("debian/control") and os.path.exists("debian/changelog"):
sys.exit(0)
control_template= '''\
Source: {args.package}
Maintainer: {args.debemail}
Section: misc
Priority: optional
Standards-Version: 3.9.6
Build-Depends: debhelper (>= 9),
dh-python,
python3-yaml,
python3
Homepage: http://trac.cryptech.is/wiki
Package: {args.package}
Architecture: any
Depends: python3,
python3-serial (>= 3.0),
python3-tornado (>= 4.0),
python3-crypto,
${{misc:Depends}},
${{python3:Depends}},
${{shlibs:Depends}}
{conflicts}\
Description: Cryptech Project open-source cryptographic software and firmware.
{args.description}
'''
if args.conflicts:
conflicts = "Conflicts: {}\n".format(", ".join(args.conflicts.split()))
else:
conflicts = ""
subprocess.check_call(("dch", "--create", "--package", args.package, "--newversion", args.newversion, args.description),
env = dict(os.environ,
EDITOR = "/bin/true",
VISUAL = "/bin/true",
TZ = "UTC",
DEBEMAIL = args.debemail))
with open("debian/control", "w") as f:
f.write(control_template.format(args = args, conflicts = conflicts))
with open("cryptech_version.py", "w") as f:
f.write("VERSION = '{}'\n".format(args.newversion))