From c9fa666745567d7e3c9d55a83dfedad40e13ea9a Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Mon, 25 Jun 2012 23:55:48 -0700 Subject: Rename this to be 'make-tarball' to match the other tar tools name, also change output to be tab separated. --- packages/make-tarball | 89 +++++++++++++++++++++++++++++++++++++++++++++++++ packages/tar-me | 91 --------------------------------------------------- 2 files changed, 89 insertions(+), 91 deletions(-) create mode 100755 packages/make-tarball delete mode 100755 packages/tar-me diff --git a/packages/make-tarball b/packages/make-tarball new file mode 100755 index 00000000..98f669a9 --- /dev/null +++ b/packages/make-tarball @@ -0,0 +1,89 @@ +#!/usr/bin/python + +import contextlib +import os +import shutil +import subprocess +import sys +import tempfile + + +def join(*paths): + p = os.path.join(*paths) + return os.path.abspath(p) + + +def tiny_p(cmd): + # Darn python 2.6 doesn't have check_output (argggg) + sp = subprocess.Popen(cmd, stdout=subprocess.PIPE, + stderr=subprocess.PIPE, stdin=None) + (out, err) = sp.communicate() + if sp.returncode not in [0]: + raise RuntimeError("Failed running %s [rc=%s] (%s, %s)" + % (cmd, sp.returncode, out, err)) + return (out, err) + + +@contextlib.contextmanager +def tmpdir(): + t = tempfile.mkdtemp() + try: + yield t + finally: + shutil.rmtree(t) + + + +def main(args): + + tag = None + if args: + tag = args[0] + + with tmpdir() as td: + (stdout, _stderr) = tiny_p(['bzr', 'revno']) + revno = stdout.strip() + + cmd = [sys.executable, join(os.pardir, 'tools', 'read-version')] + (stdout, _stderr) = tiny_p(cmd) + version = stdout.strip() + + owcd = os.getcwd() + os.chdir(os.path.abspath(os.pardir)) + if not os.path.exists('setup.py'): + raise RuntimeError("No setup.py found in %s" % (os.getcwd())) + + cmd = ['bzr', 'ls', '--versioned'] + (stdout, _stderr) = tiny_p(cmd) + fns = [] + for fn in stdout.splitlines(): + fn = fn.strip() + if not fn or fn.startswith("."): + continue + fns.append(fn) + bfn = 'cloud-init-%s-%s' % (version, revno) + os.makedirs(join(td, bfn)) + + for fn in fns: + if os.path.isfile(fn): + shutil.copy(fn, join(td, bfn, fn)) + else: + shutil.copytree(fn, join(td, bfn, fn)) + + fn = '%s.tar.gz' % (bfn) + o_fn = join(td, fn) + cmd = ['tar', '-czf', o_fn, '-C', join(td), bfn] + tiny_p(cmd) + + os.chdir(owcd) + shutil.move(o_fn, fn) + + out = [revno, version, bfn, os.path.abspath(fn)] + print('\t'.join(out)) + + return 0 + + +if __name__ == '__main__': + sys.exit(main(sys.argv[1:])) + diff --git a/packages/tar-me b/packages/tar-me deleted file mode 100755 index 14b59960..00000000 --- a/packages/tar-me +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/python - -import contextlib -import os -import shutil -import subprocess -import sys -import tempfile - - -def join(*paths): - p = os.path.join(*paths) - return os.path.abspath(p) - - -def tiny_p(cmd): - # Darn python 2.6 doesn't have check_output (argggg) - sp = subprocess.Popen(cmd, stdout=subprocess.PIPE, - stderr=subprocess.PIPE, stdin=None) - (out, err) = sp.communicate() - if sp.returncode not in [0]: - raise RuntimeError("Failed running %s [rc=%s] (%s, %s)" - % (cmd, sp.returncode, out, err)) - return (out, err) - - -@contextlib.contextmanager -def tmpdir(): - t = tempfile.mkdtemp() - try: - yield t - finally: - shutil.rmtree(t) - - - -def main(args): - - tag = None - if args: - tag = args[0] - - with tmpdir() as td: - (stdout, _stderr) = tiny_p(['bzr', 'revno']) - revno = stdout.strip() - - cmd = [sys.executable, join(os.pardir, 'tools', 'read-version')] - (stdout, _stderr) = tiny_p(cmd) - version = stdout.strip() - - owcd = os.getcwd() - os.chdir(os.path.abspath(os.pardir)) - if not os.path.exists('setup.py'): - raise RuntimeError("No setup.py found in %s" % (os.getcwd())) - - cmd = ['bzr', 'ls', '--versioned'] - (stdout, _stderr) = tiny_p(cmd) - fns = [] - for fn in stdout.splitlines(): - fn = fn.strip() - if not fn or fn.startswith("."): - continue - fns.append(fn) - bfn = 'cloud-init-%s-%s' % (version, revno) - os.makedirs(join(td, bfn)) - - for fn in fns: - if os.path.isfile(fn): - shutil.copy(fn, join(td, bfn, fn)) - else: - shutil.copytree(fn, join(td, bfn, fn)) - - fn = '%s.tar.gz' % (bfn) - o_fn = join(td, fn) - cmd = ['tar', '-czf', o_fn, '-C', join(td), bfn] - tiny_p(cmd) - - os.chdir(owcd) - shutil.move(o_fn, fn) - - print revno - print version - print bfn - print(os.path.abspath(fn)) - - return 0 - - -if __name__ == '__main__': - sys.exit(main(sys.argv[1:])) - -- cgit v1.2.3