Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/
Date: Tue, 29 May 2012 17:10:29
Message-Id: 1338311302.583cc5d1d5d4c98754cde003d70a22bfe0a07f79.dywi@gentoo
1 commit: 583cc5d1d5d4c98754cde003d70a22bfe0a07f79
2 Author: Andre Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Tue May 29 17:08:22 2012 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Tue May 29 17:08:22 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=583cc5d1
7
8 roverlay, ebuildjob: module that reads a package file and creates an ebuild for it
9 new file: ebuildjob.py
10
11 ---
12 roverlay/ebuildjob.py | 65 +++++++++++++++++++++++++++++++++++++++++++++++++
13 1 files changed, 65 insertions(+), 0 deletions(-)
14
15 diff --git a/roverlay/ebuildjob.py b/roverlay/ebuildjob.py
16 new file mode 100644
17 index 0000000..0861b22
18 --- /dev/null
19 +++ b/roverlay/ebuildjob.py
20 @@ -0,0 +1,65 @@
21 +# R Overlay -- ebuild creation, "job" module
22 +# Copyright 2006-2012 Gentoo Foundation
23 +# Distributed under the terms of the GNU General Public License v2
24 +
25 +from roverlay import ebuildcreator.EbuildCreator
26 +from roverlay import fileio.DescriptionReader
27 +from roverlay import ebuild.Ebuild
28 +
29 +class EbuildJob:
30 +
31 + @classmethod
32 + def __init__ ( self, package_file, dep_resolver=None ):
33 + self.package_file = package_file
34 + self.dep_resolver = dep_resolver
35 + # get description reader from args?
36 + self.description_reader = DescriptionReader()
37 + self.ebuild = Ebuild()
38 +
39 + self.status = 0 # todo
40 +
41 +
42 + @classmethod
43 + def status ( self, expected_status=None ):
44 + """Returns the current status of this job or a bool that indicates
45 + whether to current status matches the expected one.
46 +
47 + arguments:
48 + * expected_status -- if not None: check if this job's state is expected_status
49 + """
50 + if expected_status:
51 + return self.status
52 + else:
53 + return bool ( self.status == expected_status )
54 +
55 + @classmethod
56 + def get_ebuild ( self ):
57 + """Returns the Ebuild that is created by this object. Note that you should
58 + check the status with status ( $TODO::EBUILD_READY ) before trying to use
59 + the Ebuild.
60 + """
61 + return self.ebuild
62 +
63 +
64 + @classmethod
65 + def run ( self ):
66 + """Tells this EbuildJob to run. This means that it reads the package file,
67 + resolves dependencies (TODO) and creates an Ebuild object that is ready
68 + to be written into a file.
69 + """
70 +
71 + # check status
72 + ##
73 +
74 + read_data = self.description_reader.readfile ( self.package_file )
75 +
76 + if read_data is None
77 + # set status accordingly
78 + return None
79 +
80 + # transfer data from read_data to self.ebuild
81 + # have to resolve deps here
82 + # <TODO>
83 +
84 + return None
85 +