- validate that generated md5sums and sha256 sums are valid before populating 
the fields
- clear all previous commands output (like after source & bitbake -e) in order 
to limit output parsing

Signed-off-by: Ioana Grigoropol <ioanax.grigoro...@intel.com>
---
 .../org/yocto/bc/remote/utils/RemoteHelper.java    |    3 --
 .../remote/utils/YoctoHostShellProcessAdapter.java |    8 ++++--
 .../ui/wizards/NewBitBakeFileRecipeWizardPage.java |   29 ++++++++++----------
 3 files changed, 19 insertions(+), 21 deletions(-)

diff --git 
a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteHelper.java 
b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteHelper.java
index 430dc6d..9c88ee7 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteHelper.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteHelper.java
@@ -301,8 +301,6 @@ public class RemoteHelper {
        }
        
        public static void runBatchRemote(IHost connection, List<YoctoCommand> 
cmds, IProgressMonitor monitor, boolean waitForOutput) throws CoreException {
-               connection.getHostName();
-               connection.getDefaultUserId();
                try {
                        String remoteCommand = "";
                        for (YoctoCommand cmd : cmds) {
@@ -364,5 +362,4 @@ public class RemoteHelper {
                }
                return false;
        }
-
 }
diff --git 
a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoHostShellProcessAdapter.java
 
b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoHostShellProcessAdapter.java
index a772dc4..b75401c 100644
--- 
a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoHostShellProcessAdapter.java
+++ 
b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/YoctoHostShellProcessAdapter.java
@@ -11,7 +11,6 @@ import org.eclipse.rse.services.shells.IHostOutput;
 import org.eclipse.rse.services.shells.IHostShell;
 import org.eclipse.rse.services.shells.IHostShellChangeEvent;
 import org.eclipse.rse.services.shells.IHostShellOutputReader;
-import org.eclipse.swt.widgets.Display;
 
 public class YoctoHostShellProcessAdapter extends  HostShellProcessAdapter{
        private ProcessStreamBuffer processStreamBuffer;
@@ -75,7 +74,6 @@ public class YoctoHostShellProcessAdapter extends  
HostShellProcessAdapter{
        
        private void reportProgress(String info) {
                
-               
                if(calculator == null) {
                        updateMonitor(1);
                } else {
@@ -125,7 +123,6 @@ public class YoctoHostShellProcessAdapter extends  
HostShellProcessAdapter{
                                this.commandResponseHandler.response(value, 
false);
                        }
                }
-
                AbstractHostShellOutputReader absReader = 
(AbstractHostShellOutputReader)reader;
                isAlive = absReader.isAlive();
                isFinished = absReader.isFinished();
@@ -145,4 +142,9 @@ public class YoctoHostShellProcessAdapter extends  
HostShellProcessAdapter{
        public void setAlive(boolean isAlive) {
                this.isAlive = isAlive;
        }
+
+       public void clearProcessBuffer() {
+               this.processStreamBuffer.outputLines.clear();
+               this.processStreamBuffer.errorLines.clear();
+       }
 }
diff --git 
a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/NewBitBakeFileRecipeWizardPage.java
 
b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/NewBitBakeFileRecipeWizardPage.java
index f45158f..eac1211 100644
--- 
a/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/NewBitBakeFileRecipeWizardPage.java
+++ 
b/plugins/org.yocto.bc.ui/src/org/yocto/bc/ui/wizards/NewBitBakeFileRecipeWizardPage.java
@@ -18,6 +18,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
+import java.util.regex.Pattern;
 
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IProject;
@@ -95,6 +96,8 @@ public class NewBitBakeFileRecipeWizardPage extends 
WizardPage {
        private static final String CONFIGURE_IN = "configure.in";
        private static final String CONFIGURE_AC = "configure.ac";
        private static final String AUTOTOOLS = "autotools";
+       private static final String md5Pattern = "^[0-9a-e]{32}$";
+       protected static final String sha256Pattern = "^[0-9a-e]{64}$";
        
        public NewBitBakeFileRecipeWizardPage(ISelection selection, IHost 
connection) {
                super("wizardPage");
@@ -302,14 +305,6 @@ public class NewBitBakeFileRecipeWizardPage extends 
WizardPage {
                                } catch (Exception e) {
                                        e.printStackTrace();
                                }
-//                             populateRecipeName(srcURI);
-//                             populateSrcUriChecksum(srcURI, monitor);
-//                             
-//                             URI extractDir = extractPackage(srcURI, 
monitor);
-//                             populateLicenseFileChecksum(extractDir, 
monitor);
-//                             updateSrcUri(createMirrorLookupTable(monitor), 
srcURI);
-//                             populateInheritance(extractDir, monitor);
-                               
                        } else {
                                String packageName = 
getSrcFileName(false).replace("-", "_");
                                fileText.setText(packageName + BB_RECIPE_EXT);
@@ -318,10 +313,7 @@ public class NewBitBakeFileRecipeWizardPage extends 
WizardPage {
                        }
                } catch (URISyntaxException e) {
                        e.printStackTrace();
-               } /*catch (MalformedURLException e) {
-                       e.printStackTrace();
-               }*/
-               
+               }
        }
        
        private void handleLocalPopulate(URI srcURI, IProgressMonitor monitor) {
@@ -330,6 +322,7 @@ public class NewBitBakeFileRecipeWizardPage extends 
WizardPage {
        }
 
        private void handleRemotePopulate(URI srcURI, IProgressMonitor monitor) 
throws Exception {
+               RemoteHelper.clearProcessBuffer(connection);
                populateRecipeName(srcURI);
                List<YoctoCommand> commands = new ArrayList<YoctoCommand>();
                
@@ -363,9 +356,12 @@ public class NewBitBakeFileRecipeWizardPage extends 
WizardPage {
                updateSrcUri(createMirrorLookupTable(monitor), srcURI);
                populateInheritance(extractDir, monitor);
                
-               md5sumText.setText(retrieveSum(md5YCmd));
-               sha256sumText.setText(retrieveSum(sha256YCmd));
-               checksumText.setText(RemoteHelper.createNewURI(extractDir, 
COPYING_FILE).toString() + ";md5=" + retrieveSum(licenseChecksumCmd));
+               String md5Val = retrieveSum(md5YCmd);
+               md5sumText.setText(Pattern.matches(md5Pattern,  md5Val) ? 
md5Val : "");
+               String sha256Val = retrieveSum(sha256YCmd);
+               sha256sumText.setText(Pattern.matches(sha256Pattern,  
sha256Val) ? sha256Val : "");
+               String checkSumVal =  retrieveSum(licenseChecksumCmd);
+               checksumText.setText(RemoteHelper.createNewURI(extractDir, 
COPYING_FILE).toString() + ";md5=" + (Pattern.matches(md5Pattern,  checkSumVal) 
? checkSumVal : ""));
        }
 
        private String retrieveSum(YoctoCommand cmd) {
@@ -409,6 +405,9 @@ public class NewBitBakeFileRecipeWizardPage extends 
WizardPage {
        
        private void populateInheritance(URI extractDir, IProgressMonitor 
monitor) {
                IHostFile[] hostFiles = 
RemoteHelper.getRemoteDirContent(connection, metaDirLoc.getPath(), "", 
IFileService.FILE_TYPE_FILES, monitor);
+               if (hostFiles == null)
+                       return;
+               
                for (IHostFile file: hostFiles) {
                        String fileName = file.getName();
                        if (fileName.equalsIgnoreCase(CMAKE_LIST)){
-- 
1.7.9.5

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

Reply via email to