aboutsummaryrefslogtreecommitdiff
path: root/scripts/build-debian-control-files.py
blob: 17c9cd460b27f8674a2a57107e1efe8862ae3ab7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/env python

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",   nargs = "*")

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,
               libsqlite3-dev,
               python (>= 2.7),
               python-yaml
Homepage: http://trac.cryptech.is/wiki

Package: {args.package}
Architecture: any
Depends: python,
         python-serial (>= 3.0),
         ${{misc:Depends}},
         ${{python: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))
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))