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 |
+ |