From 2c5a35d9b860b4fb5a5e510d83d5834019afd5b4 Mon Sep 17 00:00:00 2001 From: Elio Date: Thu, 9 Sep 2021 19:27:54 +0200 Subject: [PATCH] Windows fixes --- package-lock.json | 39 ++++++++++++++++++++++++++++++++++++--- package.json | 3 ++- src/commands/Folders.ts | 21 +++++++++++++++++++-- 3 files changed, 57 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8dffae71..b0dde401 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1185,6 +1185,17 @@ "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "cache-base": { @@ -1477,6 +1488,17 @@ "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "copy-descriptor": { @@ -3934,6 +3956,17 @@ "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "ms": { @@ -4992,9 +5025,9 @@ "dev": true }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" diff --git a/package.json b/package.json index d61920f9..63ae6aaf 100644 --- a/package.json +++ b/package.json @@ -391,7 +391,7 @@ "build:ext": "npm run clean && webpack --mode development", "dev:ext": "npm run clean && webpack --mode development --watch", "test-compile": "tsc -p ./", - "clean": "rm -rf dist", + "clean": "rimraf dist", "start:site": "cd ./docs && npm run dev" }, "devDependencies": { @@ -426,6 +426,7 @@ "react": "17.0.1", "react-dom": "17.0.1", "recoil": "^0.4.1", + "rimraf": "^3.0.2", "style-loader": "2.0.0", "tailwindcss": "^2.2.7", "ts-loader": "8.0.3", diff --git a/src/commands/Folders.ts b/src/commands/Folders.ts index a8f3a235..b068b63b 100644 --- a/src/commands/Folders.ts +++ b/src/commands/Folders.ts @@ -200,6 +200,7 @@ export class Folders { const config = SettingsHelper.getConfig(); const wsFolder = Folders.getWorkspaceFolder(); const folders: ContentFolder[] = config.get(SETTINGS_CONTENT_PAGE_FOLDERS) as ContentFolder[]; + return folders.map(folder => ({ title: folder.title, path: Folders.absWsFolder(folder, wsFolder) @@ -213,7 +214,7 @@ export class Folders { private static async update(folders: ContentFolder[]) { const config = SettingsHelper.getConfig(); const wsFolder = Folders.getWorkspaceFolder(); - await config.update(SETTINGS_CONTENT_PAGE_FOLDERS, folders.map(folder => ({ title: folder.title, path: Folders.absWsFolder(folder, wsFolder) }))); + await config.update(SETTINGS_CONTENT_PAGE_FOLDERS, folders.map(folder => ({ title: folder.title, path: Folders.relWsFolder(folder, wsFolder) }))); } /** @@ -223,6 +224,22 @@ export class Folders { * @returns */ private static absWsFolder(folder: ContentFolder, wsFolder?: Uri) { - return folder.path.replace(wsFolder?.fsPath || "", WORKSPACE_PLACEHOLDER) + const isWindows = process.platform === 'win32'; + let absPath = folder.path.replace(WORKSPACE_PLACEHOLDER, wsFolder?.fsPath || ""); + absPath = isWindows ? absPath.split('/').join('\\') : absPath; + return absPath; + } + + /** + * Generate relative folder path + * @param folder + * @param wsFolder + * @returns + */ + private static relWsFolder(folder: ContentFolder, wsFolder?: Uri) { + const isWindows = process.platform === 'win32'; + let absPath = folder.path.replace(wsFolder?.fsPath || "", WORKSPACE_PLACEHOLDER); + absPath = isWindows ? absPath.split('\\').join('/') : absPath; + return absPath; } } \ No newline at end of file