[yocto] [PATCH 3/3][eclipse-poky][kepler] systemtap: Add button to browse to build folder.
Jose Lamego
jose.a.lamego at linux.intel.com
Wed Mar 9 15:25:31 PST 2016
From: Adrian Dudau <adrian.dudau at enea.com>
Fixes [Yocto 4423]
Porting commit a80114b5d1c8d774fd9271da48a38654321d4817 from
the Juno branch.
Signed-off-by: Jose Lamego <jose.a.lamego at linux.intel.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 | 5 ++--
.../actions/SystemtapSettingDialog.java | 28 ++++++++++++++++++++++
.../org/yocto/sdk/remotetools/messages.properties | 3 ++-
6 files changed, 40 insertions(+), 6 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..2a4dbf5 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/ShellSession.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.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/Messages.java
index 093118d..16f5dc8 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/Messages.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_User_ID;
public static String Remote_Host;
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 79048aa..86c963f 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/actions/SystemtapHandler.java
@@ -53,6 +53,7 @@ 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();
@@ -66,7 +67,7 @@ public class SystemtapHandler extends AbstractHandler {
if (terminalSubSystem != null) {
TerminalsUI terminalsUI = TerminalsUI.getInstance();
TerminalViewer terminalViewer = terminalsUI.activateTerminalsView();
- 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 {
op.setHost(host);
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 c769574..2a76bbd 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/actions/SystemtapModel.java
@@ -37,6 +37,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;
@@ -44,7 +45,7 @@ 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.remote_host = remote_host;
@@ -89,7 +90,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 2b90727..5c14c9a 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/actions/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);
@@ -74,6 +77,10 @@ public class SystemtapSettingDialog extends Dialog {
public String getMetadataLocation() {
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.Remote_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 bc065b9..173897a 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/messages.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_User_ID=Remote User ID:
Remote_Host=Remote Host:
@@ -46,4 +47,4 @@ LocalJob_Title=Launching local application
ErrorLocalJob=Failed in launching local application
RemoteShellExec_1=Executing {0} {1}
-RemoteShellExec_2=Could not create the hostShellProcess.\n
\ No newline at end of file
+RemoteShellExec_2=Could not create the hostShellProcess.\n
--
1.9.1
More information about the yocto
mailing list