~snappy-dev/snapcraft/core

« back to all changes in this revision

Viewing changes to snapcraft/__init__.py

  • Committer: Michael Terry
  • Date: 2015-06-23 16:06:33 UTC
  • Revision ID: michael.terry@canonical.com-20150623160633-altyrna84fnmzeku
A little more work

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# -*- Mode:Python; indent-tabs-mode:t; tab-width:4 -*-
2
2
 
 
3
import os
 
4
import subprocess
 
5
import sys
 
6
 
3
7
class BaseHandler:
4
8
 
 
9
        def __init__(self, name, options):
 
10
                self.name = name
 
11
                self.options = options
 
12
                self.sourcedir = os.path.join(os.getcwd(), "parts", self.name, "src")
 
13
                self.builddir = os.path.join(os.getcwd(), "parts", self.name, "build")
 
14
                self.stagedir = os.path.join(os.getcwd(), "parts", "stage")
 
15
                self.snapdir = os.path.join(os.getcwd(), "snap")
 
16
 
5
17
    # The API
6
 
        def init():
7
 
                pass
8
 
        def pull():
9
 
                pass
10
 
        def build():
11
 
                pass
12
 
        def stage():
13
 
                pass
14
 
        def deploy():
15
 
                pass
16
 
        def test():
 
18
        def init(self):
 
19
                try: os.makedirs(self.sourcedir)
 
20
                except: pass
 
21
                try: os.makedirs(self.builddir)
 
22
                except: pass
 
23
                try: os.makedirs(self.stagedir)
 
24
                except: pass
 
25
        def pull(self):
 
26
                pass
 
27
        def build(self):
 
28
                self.run("cp -Tr " + self.sourcedir + " " + self.builddir)
 
29
        def stage(self):
 
30
                pass
 
31
        def deploy(self):
 
32
                pass
 
33
        def test(self):
17
34
                pass
18
35
 
19
36
    # Helpers
20
 
        def run(cmd, dir=None):
21
 
                pass
22
 
 
23
 
        def pullBranch(url):
24
 
                pass
 
37
        def run(self, cmd, cwd=None):
 
38
                if cwd is None:
 
39
                        cwd = self.builddir
 
40
                subprocess.call(cmd, shell=True, cwd=cwd)
 
41
 
 
42
        def pullBranch(self, url):
 
43
                if url.startswith("bzr:") or url.startswith("lp:"):
 
44
                        self.run("bzr branch " + url + " " + self.sourcedir)
 
45
                elif url.startswith("git:"):
 
46
                        self.run("git clone " + url + " " + self.sourcedir)
 
47
                else:
 
48
                        raise Exception("Did not recognize branch url: " + url)
 
49
 
 
50
        def doDeploy(self, dirs):
 
51
                try: os.makedirs(self.snapdir)
 
52
                except: pass
 
53
 
 
54
                for d in dirs:
 
55
                        self.run("cp -r " + d + " " + self.snapdir, self.stagedir)
 
56