Skip to content

Commit 313898f

Browse files
committed
Merge pull request #22 from araad/master
FileUtilities.separator prevents from building file paths using windo…
2 parents 2679a59 + 30960b6 commit 313898f

File tree

5 files changed

+22
-15
lines changed

5 files changed

+22
-15
lines changed

raspberrypi-intellij.iml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<module type="PLUGIN_MODULE" version="4">
33
<component name="DevKit.ModuleBuildProperties" url="file://$MODULE_DIR$/META-INF/plugin.xml" />
4-
<component name="NewModuleRootManager" inherit-compiler-output="true">
4+
<component name="NewModuleRootManager" inherit-compiler-output="false">
5+
<output url="file:///production/raspberrypi-intellij" />
6+
<output-test url="file:///test/raspberrypi-intellij" />
57
<content url="file://$MODULE_DIR$">
68
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
79
<sourceFolder url="file://$MODULE_DIR$/Resources" type="java-resource" />

src/com/atsebak/raspberrypi/project/PIJavaModuleBuilder.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,15 @@ public void run() {
9393
addJarFiles(libPath, rootModel.getModule());
9494
String[] directorysToMake = packageName.split(Pattern.quote("."));
9595
for (String directory : directorysToMake) {
96-
VfsUtil.createDirectories(srcPath + File.separator + directory);
97-
srcPath += File.separator + directory;
96+
VfsUtil.createDirectories(srcPath + FileUtilities.separator + directory);
97+
srcPath += FileUtilities.separator + directory;
9898
}
9999
} catch (IOException e) {
100100

101101
}
102102
Template.builder().name("main.ftl")
103103
.classContext(this.getClass())
104-
.outputFile(srcPath + File.separator + "Main.java")
104+
.outputFile(srcPath + FileUtilities.separator + "Main.java")
105105
.data(new HashMap<String, Object>() {{
106106
put("packagename", packageName);
107107
}})
@@ -211,12 +211,12 @@ protected void setupModule(Module module) throws ConfigurationException {
211211
} else {
212212
try {
213213
//download library
214-
File pi4jZip = new File(System.getProperty("java.io.tmpdir") + File.separator + PI4J_FILENAME);
214+
File pi4jZip = new File(System.getProperty("java.io.tmpdir") + FileUtilities.separator + PI4J_FILENAME);
215215
if (!pi4jZip.exists()) {
216-
UrlDownloader.saveUrl(System.getProperty("java.io.tmpdir") + File.separator + PI4J_FILENAME, PI4J_DOWNLOAD + PI4J_FILENAME);
216+
UrlDownloader.saveUrl(System.getProperty("java.io.tmpdir") + FileUtilities.separator + PI4J_FILENAME, PI4J_DOWNLOAD + PI4J_FILENAME);
217217
}
218218
//unzip to temp
219-
String output = System.getProperty("java.io.tmpdir") + File.separator + "pi4j";
219+
String output = System.getProperty("java.io.tmpdir") + FileUtilities.separator + "pi4j";
220220
File pi4jUnziped = new File(output);
221221
if (!pi4jUnziped.exists()) {
222222
FileUtilities.unzip(pi4jZip.getPath(), output);
@@ -243,7 +243,7 @@ private void addJarFiles(String outputPath, Module module) {
243243
//todo fix
244244
// for (final File fileEntry : jarsToAdd) {
245245
// if (!fileEntry.isDirectory() && Files.getFileExtension(fileEntry.getName()).contains("jar")) {
246-
// String jarLocation = outputPath + File.separator;
246+
// String jarLocation = outputPath + FileUtilities.separator;
247247
// FileUtils.copyFile(fileEntry, new File(jarLocation + fileEntry.getName()));
248248
// }
249249
// }

src/com/atsebak/raspberrypi/protocol/ssh/SSHHandlerTarget.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.atsebak.raspberrypi.console.PIConsoleView;
55
import com.atsebak.raspberrypi.localization.PIBundle;
66
import com.atsebak.raspberrypi.runner.data.RaspberryPIRunnerParameters;
7+
import com.atsebak.raspberrypi.utils.FileUtilities;
78
import com.intellij.execution.configurations.RuntimeConfigurationException;
89
import com.intellij.execution.ui.ConsoleViewContentType;
910
import com.intellij.notification.Notification;
@@ -38,8 +39,9 @@ public class SSHHandlerTarget {
3839
*/
3940
public void uploadAndRunJavaApp(@NotNull final File compileOutput, @NotNull final String cmd)
4041
throws IOException, ClassNotFoundException, RuntimeConfigurationException {
41-
final String remoteDir = File.separator + "home" + File.separator + piRunnerParameters.getUsername() + File.separator + OUTPUT_LOCATION;
42-
String deploymentPath = remoteDir + File.separator + consoleView.getProject().getName();
42+
final String remoteDir = FileUtilities.separator + "home" + FileUtilities.separator
43+
+ piRunnerParameters.getUsername() + FileUtilities.separator + OUTPUT_LOCATION;
44+
String deploymentPath = remoteDir + FileUtilities.separator + consoleView.getProject().getName();
4345
genericUpload(deploymentPath, compileOutput);
4446
consoleView.print(PIBundle.getString("pi.deployment.finished") + NEW_LINE, ConsoleViewContentType.SYSTEM_OUTPUT);
4547
runJavaApp(deploymentPath, cmd);

src/com/atsebak/raspberrypi/utils/FileUtilities.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
public class FileUtilities {
1717

18+
public static String separator = "/";
19+
1820
/**
1921
* Unzips a file all into one directory
2022
*
@@ -38,7 +40,7 @@ public static void unzip(String zipFile, String outputFolder) {
3840
continue;
3941
}
4042
fileName = new File(fileName).getName();
41-
File newFile = new File(outputFolder + File.separator + fileName);
43+
File newFile = new File(outputFolder + FileUtilities.separator + fileName);
4244
new File(newFile.getParent()).mkdirs();
4345

4446
FileOutputStream fos = new FileOutputStream(newFile);
@@ -111,7 +113,7 @@ public static File createClasspathArchive(Collection<File> classpathEntries, Pro
111113
private static void writeClassPath(LinkedList<String> pathElements, File entry, TarArchiveOutputStream archiveOutputStream) throws IOException {
112114
if (entry.isFile()) {
113115
archiveOutputStream.setLongFileMode(TarArchiveOutputStream.LONGFILE_GNU);
114-
archiveOutputStream.putArchiveEntry(new TarArchiveEntry(entry, getPath(pathElements) + File.separator + entry.getName()));
116+
archiveOutputStream.putArchiveEntry(new TarArchiveEntry(entry, getPath(pathElements) + FileUtilities.separator + entry.getName()));
115117
copy(entry, archiveOutputStream);
116118
archiveOutputStream.closeArchiveEntry();
117119
} else {
@@ -152,7 +154,7 @@ public static String getPath(LinkedList<String> pathElements) {
152154
StringBuilder buf = new StringBuilder();
153155
for (int i = 0; i < pathElements.size(); i++) {
154156
if (i != 0) {
155-
buf.append(File.separator);
157+
buf.append(FileUtilities.separator);
156158
}
157159
buf.append(pathElements.get(i));
158160
}

test/com/atsebak/raspberrypi/protocol/ssh/SSHHandlerTargetTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.atsebak.raspberrypi.console.PIConsoleView;
44
import com.atsebak.raspberrypi.runner.data.RaspberryPIRunnerParameters;
5+
import com.atsebak.raspberrypi.utils.FileUtilities;
56
import com.intellij.execution.configurations.RuntimeConfigurationException;
67
import com.intellij.notification.Notifications;
78
import com.intellij.openapi.project.Project;
@@ -101,7 +102,7 @@ public void verifyUploadToTarget() throws RuntimeConfigurationException, IOExcep
101102
Mockito.when(project.getName()).thenReturn("untitled");
102103
target.uploadAndRunJavaApp(sampleFile, "java -jar");
103104
Mockito.verify(sftpClient).put(any(FileSystemFile.class),
104-
eq(File.separator + "home" + File.separator + "ahmad" + File.separator + "IdeaProjects" + File.separator + "untitled"));
105+
eq(FileUtilities.separator + "home" + FileUtilities.separator + "ahmad" + FileUtilities.separator + "IdeaProjects" + FileUtilities.separator + "untitled"));
105106
Mockito.verify(sshClient).disconnect();
106107
Mockito.verify(sshClient, times(2)).startSession();
107108

@@ -113,7 +114,7 @@ public void verifyUploadToTarget() throws RuntimeConfigurationException, IOExcep
113114

114115
@Test
115116
public void verifyJavaCommands() throws IOException, RuntimeConfigurationException, ClassNotFoundException {
116-
final String path = File.separator + "home" + File.separator + "ahmad" + File.separator + "IdeaProjects" + File.separator + "untitled";
117+
final String path = FileUtilities.separator + "home" + FileUtilities.separator + "ahmad" + FileUtilities.separator + "IdeaProjects" + FileUtilities.separator + "untitled";
117118
final String commandToBeExecuted = "mkdir -p " + path + "; " + "cd " + path + "; rm -rf *;";
118119
Mockito.when(sshClient.isAuthenticated()).thenReturn(true);
119120
Mockito.when(project.getName()).thenReturn("untitled");

0 commit comments

Comments
 (0)