[yocto] [PATCH 1/3] Initialize bitbake session & environment parse variables

Zhang, Jessica jessica.zhang at intel.com
Tue Nov 27 15:39:45 PST 2012


Hi Ioana,

The patched won't apply and please  rebase against eclipse-poky-windows and resubmit.

Thanks,
Jessica

-----Original Message-----
From: yocto-bounces at yoctoproject.org [mailto:yocto-bounces at yoctoproject.org] On Behalf Of Ioana Grigoropol
Sent: Monday, November 26, 2012 2:05 AM
To: yocto at yoctoproject.org
Subject: [yocto] [PATCH 1/3] Initialize bitbake session & environment parse variables

- source oe-init-env for the connection shell
- parse environment variables

Signed-off-by: Ioana Grigoropol <ioanax.grigoropol at intel.com>
---
 .../src/org/yocto/bc/bitbake/BBSession.java        |   13 +++--
 .../src/org/yocto/bc/bitbake/ShellSession.java     |   53 ++++++++------------
 2 files changed, 26 insertions(+), 40 deletions(-)

diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBSession.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBSession.java
index e182d05..5f919c3 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBSession.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/BBSession.java
@@ -329,18 +329,17 @@ public class BBSession implements IBBSessionListener, IModelElement, Map {
                }
        }

-       protected int checkExecuteError(String result, int code) {
+       protected void checkExecuteError(String result, boolean hasErrors) {
                URI recipeURI = getDefaultDepends();
                String text = "Parsing " + ((recipeURI != null) ? ("recipe " + recipeURI) : "base configurations");
-               if (code != 0) {
+               if (hasErrors) {
                        text = text + " ERROR!\n" + result;
                }else {
                                text = text + " SUCCESS.\n";
                }
                if(!silent) {
-                       displayInConsole(text, code, false);
+                       displayInConsole(text, -1, false);
                }
-               return code;
        }

        protected void displayInConsole(final String result, final int code, boolean clear) { @@ -377,9 +376,9 @@ public class BBSession implements IBBSessionListener, IModelElement, Map {
                        }
                        try {
                                if(!initialized) { //recheck
-                                       int [] codes = {-1};
-                                       String result = shell.execute(parsingCmd, codes);
-                                       if(checkExecuteError(result, codes[0]) == 0) {
+                                       boolean hasErrors = false;
+                                       String result = shell.execute(parsingCmd, hasErrors);
+                                       if(!hasErrors) {
                                                properties = parseBBEnvironment(result);
                                        } else {
                                                properties = parseBBEnvironment(""); diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/ShellSession.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/ShellSession.java
index a7ed3d6..a8c46dd 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/ShellSession.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/bitbake/ShellSession.java
@@ -20,6 +20,7 @@ import java.io.Writer;

 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.rse.core.model.IHost;
 import org.eclipse.rse.services.files.IHostFile;
 import org.yocto.bc.remote.utils.RemoteHelper;
 import org.yocto.bc.remote.utils.YoctoCommand;
@@ -92,43 +93,29 @@ public class ShellSession {
        }

        private void initializeShell(IProgressMonitor monitor) throws IOException {
-//             try {
-//                     RemoteHelper.runCommandRemote(RemoteHelper.getRemoteConnectionByName(projectInfo.getConnection().getName()), new YoctoCommand("source " + initCmd, root.getAbsolutePath(), ""), monitor);
-//             } catch (CoreException e) {
-//                     e.printStackTrace();
-//             }
-
-//             process = Runtime.getRuntime().exec(shellPath);
-//             pos = process.getOutputStream();
-//
-//             if (root != null) {
-//                     out.write(execute("cd " + root.getAbsolutePath()));
-//             }
-//
-//             if (initCmd != null) {
-//                     out.write(execute("source " + initCmd));
-//             }
+               try {
+                       IHost connection = RemoteHelper.getRemoteConnectionByName(projectInfo.getConnection().getName());
+                       RemoteHelper.runCommandRemote(connection, new YoctoCommand("source " + initCmd, root.getAbsolutePath(), ""), monitor);
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
        }

        synchronized
        public String execute(String command) throws IOException {
-               return execute(command, (int [])null);
+               return execute(command, false);
        }

        synchronized
-       public String execute(String command, int[] retCode) throws IOException {
-               //FIXME : parse output
-//             try {
-//                     RemoteHelper.runCommandRemote(RemoteHelper.getRemoteConnectionByName(projectInfo.getConnection().getName()), new YoctoCommand(command, root.getAbsolutePath(), ""), new NullProgressMonitor());
-//             } catch (Exception e) {
-//                     e.printStackTrace();
-//             }
-//
-//             String errorMessage = null;
-//             interrupt = false;
-//             out.write(command);
-//             out.write(LT);
-//
+       public String execute(String command, boolean hasErrors) throws IOException {
+               try {
+                       IHost connection = RemoteHelper.getRemoteConnectionByName(projectInfo.getConnection().getName());
+                       hasErrors = RemoteHelper.runCommandRemote(connection, new YoctoCommand(command, root.getAbsolutePath(), ""), new NullProgressMonitor());
+                       return RemoteHelper.getProcessBuffer(connection).getMergedOutputLines();
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+               return null;
 //             sendToProcessAndTerminate(command);
 //
 //             if (process.getErrorStream().available() > 0) {
@@ -143,7 +130,7 @@ public class ShellSession {
 //             BufferedReader br = new BufferedReader(new InputStreamReader(process
 //                             .getInputStream()));
 //
-               StringBuffer sb = new StringBuffer();
+//             StringBuffer sb = new StringBuffer();
 //             String line = null;

 //             while (((line = br.readLine()) != null) && !line.endsWith(TERMINATOR) && !interrupt) {
@@ -169,8 +156,8 @@ public class ShellSession {
 //             if (errorMessage != null) {
 //                     throw new IOException(errorMessage);
 //             }
-
-               return sb.toString();
+//
+//             return sb.toString();
        }

 synchronized
--
1.7.9.5

_______________________________________________
yocto mailing list
yocto at yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto



More information about the yocto mailing list