[yocto] [PATCH 1/1][eclipse-poky] systemtap: add button to browse to build folder
Zhang, Jessica
jessica.zhang at intel.com
Wed Jun 26 10:44:36 PDT 2013
Hi Adrian,
Without changing ShellSession signature, the statement:
+ this.builddir = builddir;
Is meaningless, also, you should get an eclipse build error for this line.
Thanks,
Jessica
-----Original Message-----
From: Adrian Dudau [mailto:adrian.dudau at enea.com]
Sent: Monday, June 17, 2013 5:38 AM
To: Zhang, Jessica
Cc: yocto at yoctoproject.org; Adrian Dudau
Subject: [PATCH 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 | 4 ++-
.../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, 39 insertions(+), 4 deletions(-)
diff --git a/plugins/org.yocto.remote.utils/src/org/yocto/remote/utils/ShellSession.java b/plugins/org.yocto.remote.utils/src/org/yocto/remote/utils/ShellSession.java
index 4ac8001..10cdf94 100644
--- a/plugins/org.yocto.remote.utils/src/org/yocto/remote/utils/ShellSession.java
+++ 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;
@@ -70,6 +71,7 @@ public class ShellSession {
public ShellSession(int shellType, File root, 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.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/Messages.java
index 66ba62b..cbf2b05 100644
--- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/Messages.java
+++ 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/SystemtapHandler.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/SystemtapHandler.java
index 9d27e5a..9f45d05 100644
--- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/SystemtapHandler.java
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/ac
+++ tions/SystemtapHandler.java
@@ -34,6 +34,7 @@ public class SystemtapHandler extends AbstractHandler {
);
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();
@@ -41,7 +42,7 @@ public class SystemtapHandler extends AbstractHandler {
if(setting.open() == BaseSettingDialog.OK) {
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/SystemtapModel.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/SystemtapModel.java
index f443e00..bb2fa2d 100644
--- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/SystemtapModel.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/SystemtapSettingDialog.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/SystemtapSettingDialog.java
index c447569..760715c 100644
--- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/SystemtapSettingDialog.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.properties b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/messages.properties
index 7bbf987..2d6d8af 100644
--- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/messages.properties
+++ 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
More information about the yocto
mailing list