From 40f23bd10f917a70639c8241c2d48c2f293b46b9 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 24 Jun 2024 09:28:53 +0100 Subject: [PATCH 1/5] fix: directory logic --- .../lib/project-manager-shim/src/projectManagement.ts | 10 ++++++++-- build.sbt | 3 ++- .../enso/desktopenvironment/WindowsDirectories.java | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/ide-desktop/lib/project-manager-shim/src/projectManagement.ts b/app/ide-desktop/lib/project-manager-shim/src/projectManagement.ts index 52f184f78fbc..02490b9b33be 100644 --- a/app/ide-desktop/lib/project-manager-shim/src/projectManagement.ts +++ b/app/ide-desktop/lib/project-manager-shim/src/projectManagement.ts @@ -371,10 +371,16 @@ export function getProjectRoot(subtreePath: string): string | null { /** Get the directory that stores Enso projects. */ export function getProjectsDirectory(): string { const documentsPath = desktopEnvironment.DOCUMENTS + const userHomeProjects = pathModule.join(os.homedir(), 'enso', 'projects') if (documentsPath === undefined) { - return pathModule.join(os.homedir(), 'enso', 'projects') + return userHomeProjects } else { - return pathModule.join(documentsPath, 'enso-projects') + const documentsProjects = pathModule.join(documentsPath, 'enso-projects') + if (fs.lstatSync(documentsProjects).isDirectory()) { + return documentsProjects + } else { + return userHomeProjects + } } } diff --git a/build.sbt b/build.sbt index 2aac1d07449b..0df60e8c6ae7 100644 --- a/build.sbt +++ b/build.sbt @@ -347,7 +347,8 @@ lazy val enso = (project in file(".")) `benchmark-java-helpers`, `benchmarks-common`, `bench-processor`, - `ydoc-server` + `ydoc-server`, + `desktop-environment` ) .settings(Global / concurrentRestrictions += Tags.exclusive(Exclusive)) .settings( diff --git a/lib/java/desktop-environment/src/main/java/org/enso/desktopenvironment/WindowsDirectories.java b/lib/java/desktop-environment/src/main/java/org/enso/desktopenvironment/WindowsDirectories.java index 195a2b7d0f77..d4f49d944535 100644 --- a/lib/java/desktop-environment/src/main/java/org/enso/desktopenvironment/WindowsDirectories.java +++ b/lib/java/desktop-environment/src/main/java/org/enso/desktopenvironment/WindowsDirectories.java @@ -11,7 +11,7 @@ final class WindowsDirectories implements Directories { new String[] { "reg", "query", - "\"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ShellFolders\"", + "\"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\"", "/v", "personal" }; From 19cd9202ff6f0011c0c679d4a64c440d5b27f42b Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 24 Jun 2024 10:25:36 +0100 Subject: [PATCH 2/5] update: gui logic --- .../lib/project-manager-shim/src/desktopEnvironment.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/ide-desktop/lib/project-manager-shim/src/desktopEnvironment.ts b/app/ide-desktop/lib/project-manager-shim/src/desktopEnvironment.ts index 760a8dd942bd..568641d7e000 100644 --- a/app/ide-desktop/lib/project-manager-shim/src/desktopEnvironment.ts +++ b/app/ide-desktop/lib/project-manager-shim/src/desktopEnvironment.ts @@ -65,7 +65,7 @@ function getWindowsDocumentsPath(): string | undefined { 'reg', [ 'query', - '"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ShellFolders"', + '"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"', '/v', 'personal', ], @@ -76,6 +76,6 @@ function getWindowsDocumentsPath(): string | undefined { return } else { const stdoutString = out.stdout.toString() - return stdoutString.split('\\s\\s+')[4] + return stdoutString.split(/\s\s+/)[4]?.trim() } } From 81713a6e9c98030b40b0991c5fb119c39c79ceff Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 24 Jun 2024 13:23:49 +0100 Subject: [PATCH 3/5] fix: reg query --- .../lib/project-manager-shim/src/desktopEnvironment.ts | 4 ++-- .../java/org/enso/desktopenvironment/WindowsDirectories.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/ide-desktop/lib/project-manager-shim/src/desktopEnvironment.ts b/app/ide-desktop/lib/project-manager-shim/src/desktopEnvironment.ts index 568641d7e000..8590a9d87da1 100644 --- a/app/ide-desktop/lib/project-manager-shim/src/desktopEnvironment.ts +++ b/app/ide-desktop/lib/project-manager-shim/src/desktopEnvironment.ts @@ -65,7 +65,7 @@ function getWindowsDocumentsPath(): string | undefined { 'reg', [ 'query', - '"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"', + 'HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders', '/v', 'personal', ], @@ -76,6 +76,6 @@ function getWindowsDocumentsPath(): string | undefined { return } else { const stdoutString = out.stdout.toString() - return stdoutString.split(/\s\s+/)[4]?.trim() + return stdoutString.split(/\s\s+/)[4] } } diff --git a/lib/java/desktop-environment/src/main/java/org/enso/desktopenvironment/WindowsDirectories.java b/lib/java/desktop-environment/src/main/java/org/enso/desktopenvironment/WindowsDirectories.java index d4f49d944535..3ca2c8917070 100644 --- a/lib/java/desktop-environment/src/main/java/org/enso/desktopenvironment/WindowsDirectories.java +++ b/lib/java/desktop-environment/src/main/java/org/enso/desktopenvironment/WindowsDirectories.java @@ -11,7 +11,7 @@ final class WindowsDirectories implements Directories { new String[] { "reg", "query", - "\"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\"", + "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", "/v", "personal" }; From 4d11afc6ab35e4beae51690d298e0d8ee7fd6377 Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 24 Jun 2024 14:49:14 +0100 Subject: [PATCH 4/5] revert: projectManagement --- .../lib/project-manager-shim/src/projectManagement.ts | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/app/ide-desktop/lib/project-manager-shim/src/projectManagement.ts b/app/ide-desktop/lib/project-manager-shim/src/projectManagement.ts index 02490b9b33be..52f184f78fbc 100644 --- a/app/ide-desktop/lib/project-manager-shim/src/projectManagement.ts +++ b/app/ide-desktop/lib/project-manager-shim/src/projectManagement.ts @@ -371,16 +371,10 @@ export function getProjectRoot(subtreePath: string): string | null { /** Get the directory that stores Enso projects. */ export function getProjectsDirectory(): string { const documentsPath = desktopEnvironment.DOCUMENTS - const userHomeProjects = pathModule.join(os.homedir(), 'enso', 'projects') if (documentsPath === undefined) { - return userHomeProjects + return pathModule.join(os.homedir(), 'enso', 'projects') } else { - const documentsProjects = pathModule.join(documentsPath, 'enso-projects') - if (fs.lstatSync(documentsProjects).isDirectory()) { - return documentsProjects - } else { - return userHomeProjects - } + return pathModule.join(documentsPath, 'enso-projects') } } From b2195039262036694cbfd738853035fbd083d3ba Mon Sep 17 00:00:00 2001 From: Dmitry Bushev Date: Mon, 24 Jun 2024 14:53:30 +0100 Subject: [PATCH 5/5] misc: disable Windows test --- .../org/enso/desktopenvironment/DirectoriesTest.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/java/desktop-environment/src/test/java/org/enso/desktopenvironment/DirectoriesTest.java b/lib/java/desktop-environment/src/test/java/org/enso/desktopenvironment/DirectoriesTest.java index 19810f8d65cc..cefb3d44bb80 100644 --- a/lib/java/desktop-environment/src/test/java/org/enso/desktopenvironment/DirectoriesTest.java +++ b/lib/java/desktop-environment/src/test/java/org/enso/desktopenvironment/DirectoriesTest.java @@ -23,8 +23,11 @@ public void getUserHome() { @Test public void getDocuments() throws IOException { - var documents = directories.getDocuments(); - Assert.assertTrue( - "User documents is not a directory" + documents, Files.isDirectory(documents)); + // getDocuments fails on Windows CI + if (!Platform.isWindows()) { + var documents = directories.getDocuments(); + Assert.assertTrue( + "User documents is not a directory" + documents, Files.isDirectory(documents)); + } } }