[yocto] [PATCHv2 1/1][eclipse-poky] systemtap: add button to browse to build folder

Zhang, Jessica jessica.zhang at intel.com
Thu Aug 15 16:34:13 PDT 2013


Hi Adrian,

Sorry for the delay, the patch is merged to eclipse-poky-juno master.  Also,
we're splitting eclipse-poky-juno and eclipse-poky-kepler, can you port the
change to eclipse-poky-kepler?

Thanks,
Jessica

-----Original Message-----
From: Adrian Dudau [mailto:adrian.dudau at enea.com] 
Sent: Thursday, July 18, 2013 7:12 AM
To: Zhang, Jessica
Cc: yocto at yoctoproject.org; Adrian Dudau
Subject: [PATCHv2 1/1][eclipse-poky] systemtap: add button to browse to
build folder

[Yocto #4223]
Signed-off-by: Adrian Dudau <adrian.dudau at enea.com>
---
 .../src/org/yocto/remote/utils/ShellSession.java   |    6 +++--
 .../src/org/yocto/sdk/remotetools/Messages.java    |    1 +
 .../sdk/remotetools/actions/SystemtapHandler.java  |    3 ++-
 .../sdk/remotetools/actions/SystemtapModel.java    |    6 +++--
 .../actions/SystemtapSettingDialog.java            |   28
++++++++++++++++++++
 .../org/yocto/sdk/remotetools/messages.properties  |    1 +
 6 files changed, 40 insertions(+), 5 deletions(-)

diff --git
a/plugins/org.yocto.remote.utils/src/org/yocto/remote/utils/ShellSession.jav
a
b/plugins/org.yocto.remote.utils/src/org/yocto/remote/utils/ShellSession.jav
a
index 4ac8001..0922824 100644
---
a/plugins/org.yocto.remote.utils/src/org/yocto/remote/utils/ShellSession.jav
a
+++ b/plugins/org.yocto.remote.utils/src/org/yocto/remote/utils/ShellSes
+++ sion.java
@@ -46,6 +46,7 @@ public class ShellSession {
 	private String shellPath = null;
 	private final String initCmd;
 	private final File root;
+	private final File builddir;
 
 	private OutputStreamWriter out;
 
@@ -68,8 +69,9 @@ public class ShellSession {
 		return sb.toString();
 	}
 
-	public ShellSession(int shellType, File root, String initCmd,
OutputStream out) throws IOException {
+	public ShellSession(int shellType, File root, File builddir, String 
+initCmd, OutputStream out) throws IOException {
 		this.root = root;
+		this.builddir = builddir;
 		this.initCmd  = initCmd;
 		if (out == null) {
 			this.out = new OutputStreamWriter(null); @@ -93,7
+95,7 @@ public class ShellSession {
 		}
 
 		if (initCmd != null) {
-			execute("source " + initCmd);
+			execute("source " + initCmd + " " +
builddir.getAbsolutePath());
 		}
 	}
 
diff --git
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/Messages.j
ava
b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/Messages.j
ava
index 66ba62b..cbf2b05 100644
---
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/Messages.j
ava
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/Me
+++ ssages.java
@@ -40,6 +40,7 @@ public class Messages extends NLS {
 	public static String TerminalViewer_text;
 	//public static String Systemtap_KO_Text;
 	public static String Metadata_Location;
+	public static String Builddir_Location;
 	public static String User_ID;
 	public static String Remote_Host;
 	public static String Systemtap_Script; diff --git
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Sy
stemtapHandler.java
b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Sy
stemtapHandler.java
index 184582a..f5d34d8 100644
---
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Sy
stemtapHandler.java
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/ac
+++ tions/SystemtapHandler.java
@@ -37,12 +37,13 @@ public class SystemtapHandler extends AbstractHandler {
 		if(setting.open() == BaseSettingDialog.OK) {
 
 			String metadata_location =
((SystemtapSettingDialog)setting).getMetadataLocation();
+			String builddir_location = 
+((SystemtapSettingDialog)setting).getBuilddirLocation();
 			String remote_host =
((SystemtapSettingDialog)setting).getRemoteHost();
 			String user_id =
((SystemtapSettingDialog)setting).getUserID();
 			String systemtap_script =
((SystemtapSettingDialog)setting).getSystemtapScript();
 			String systemtap_args =
((SystemtapSettingDialog)setting).getSystemtapArgs();
 			IProgressService progressService =
PlatformUI.getWorkbench().getProgressService();
-			SystemtapModel op = new
SystemtapModel(metadata_location,remote_host, user_id, systemtap_script,
+			SystemtapModel op = new
SystemtapModel(metadata_location, 
+builddir_location, remote_host, user_id, systemtap_script,
 
systemtap_args,window.getShell().getDisplay());
 			try {
 				progressService.busyCursorWhile(op);
diff --git
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Sy
stemtapModel.java
b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Sy
stemtapModel.java
index f443e00..bb2fa2d 100644
---
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Sy
stemtapModel.java
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/ac
+++ tions/SystemtapModel.java
@@ -29,6 +29,7 @@ public class SystemtapModel extends BaseModel {
 
 	protected MessageConsole sessionConsole;
 	private String metadata_location;
+	private String builddir_location;
 	private String remote_host;
 	private String user_id;
 	private String systemtap_script;
@@ -36,9 +37,10 @@ public class SystemtapModel extends BaseModel {
 
 	Display display;
 	
-	public SystemtapModel(String metadata_location, String remote_host,
String user_id, String systemtap_script, String systemtap_args, Display
display) {
+	public SystemtapModel(String metadata_location, String 
+builddir_location, String remote_host, String user_id, String 
+systemtap_script, String systemtap_args, Display display) {
 		super(null, TASK_NAME, "", "");
 		this.metadata_location = metadata_location;
+		this.builddir_location = builddir_location;
 		this.remote_host = remote_host;
 		this.user_id = user_id;
 		this.systemtap_script = systemtap_script; @@ -70,7 +72,7 @@
public class SystemtapModel extends BaseModel {
 			throws InvocationTargetException,
InterruptedException {
 		try {
 			ShellSession shell = new
ShellSession(ShellSession.SHELL_TYPE_BASH, 
-
new File(this.metadata_location),
+
new File(this.metadata_location), new 
+File(this.builddir_location),
 
DEFAULT_INIT_SCRIPT, sessionConsole.newOutputStream());
 			boolean acceptedKey =
shell.ensureKnownHostKey(user_id, remote_host);
 			if (acceptedKey) {
diff --git
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Sy
stemtapSettingDialog.java
b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Sy
stemtapSettingDialog.java
index c447569..760715c 100644
---
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Sy
stemtapSettingDialog.java
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/ac
+++ tions/SystemtapSettingDialog.java
@@ -37,18 +37,21 @@ public class SystemtapSettingDialog extends Dialog {
 	static protected String TITLE="Systemtap Crosstap";
 	protected String title;
 	protected String metadata_location;
+	protected String builddir_location;
 	protected String systemtap_script;
 	protected String user_id;
 	protected String remote_host;
 	protected String systemtap_args;
 	protected boolean okPressed;
 	protected Button metadataLocationBtn;
+	protected Button builddirLocationBtn;
 	protected Button systemtapScriptBtn;
 	protected Text userIDText;
 	protected Text remoteHostText;
 	protected Text systemtapArgsText;
 	protected Text systemtapScriptText;
 	protected Text metadataLocationText;
+	protected Text builddirLocationText;
 	
 	protected SystemtapSettingDialog(Shell parentShell, String title) {
 		super(parentShell);
@@ -75,6 +78,10 @@ public class SystemtapSettingDialog extends Dialog {
 		return metadata_location;
 	}
 	
+	public String getBuilddirLocation() {
+		return builddir_location;
+	}
+
 	public String getRemoteHost() {
 		return remote_host;
 	}
@@ -119,6 +126,14 @@ public class SystemtapSettingDialog extends Dialog {
 		metadataLocationBtn = addDirSelectButton(textContainer,
metadataLocationText);
 		
 		label = new Label(projComp, SWT.NONE);
+		label.setText(Messages.Builddir_Location);
+		textContainer = new Composite(projComp, SWT.NONE);
+		textContainer.setLayout(new GridLayout(2, false));
+		textContainer.setLayoutData(new GridData(SWT.FILL,
SWT.CENTER, true, false));
+		builddirLocationText = (Text)addTextControl(textContainer,
builddir_location);
+		builddirLocationBtn = addDirSelectButton(textContainer, 
+builddirLocationText);
+
+		label = new Label(projComp, SWT.NONE);
 		label.setText(Messages.User_ID);
 		userIDText = new Text(projComp, SWT.SINGLE | SWT.BORDER);
 		
@@ -219,6 +234,19 @@ public class SystemtapSettingDialog extends Dialog {
 			CommonHelper.showErrorDialog("SystemTap Error",
null, "The specified metadata location is not a directory!");
 			return;
 		}
+		builddir_location = builddirLocationText.getText();
+		if ( (builddir_location == null) ||
builddir_location.isEmpty()) {
+			CommonHelper.showErrorDialog("SystemTap Error",
null, "Please specify your builddir location!");
+			return;
+		}
+		File builddir_dir = new File(builddir_location);
+		if (!builddir_dir.exists()) {
+			CommonHelper.showErrorDialog("SystemTap Error",
null, "The specified builddir location does not exist!");
+		}
+		if (!metadata_dir.isDirectory()) {
+			CommonHelper.showErrorDialog("SystemTap Error",
null, "The specified builddir location is not a directory!");
+			return;
+		}
 		user_id = userIDText.getText();
 		if ( (user_id == null) || user_id.isEmpty()) {
 			CommonHelper.showErrorDialog("SystemTap Error",
null, "Please specify remote user id!"); diff --git
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/messages.p
roperties
b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/messages.p
roperties
index 7bbf987..2d6d8af 100644
---
a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/messages.p
roperties
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/me
+++ ssages.properties
@@ -35,6 +35,7 @@ Powertop_ShowPid_Text=show pids in wakeups list
TerminalViewer_text=This view is dedicated to Yocto Remote tools. Please use
the "Yocto Remote Tools" menu to open the view.
 //Systemtap_KO_Text=Kernel Module:
 Metadata_Location=Metadata Location:
+Builddir_Location=Build dir Location:
 User_ID=User ID:
 Remote_Host=Remote Host:
 Systemtap_Script=Systemtap Script:
--
1.7.9.5

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 9626 bytes
Desc: not available
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20130815/1e5c7b47/attachment.bin>


More information about the yocto mailing list