diff --git a/src/cli.js b/src/cli.js index 1bb0476f61f593881c20227e9658ca2eae9cda81..41d46871f92162571facf7da2bfd9e1ed3bcd3ff 100644 --- a/src/cli.js +++ b/src/cli.js @@ -20,8 +20,20 @@ function getApplicationPath() { } } -const portableDataName = product.portable || `${product.applicationName}-portable-data`; -const portableDataPath = path.join(path.dirname(getApplicationPath()), portableDataName); +function getPortableDataPath() { + if (process.env['VSCODE_PORTABLE']) { + return process.env['VSCODE_PORTABLE']; + } + + if (process.platform === 'win32' || process.platform === 'linux') { + return path.join(getApplicationPath(), 'data'); + } else { + const portableDataName = product.portable || `${product.applicationName}-portable-data`; + return path.join(path.dirname(getApplicationPath()), portableDataName); + } +} + +const portableDataPath = getPortableDataPath(); const isPortable = fs.existsSync(portableDataPath); const portableTempPath = path.join(portableDataPath, 'tmp'); const isTempPortable = isPortable && fs.existsSync(portableTempPath); diff --git a/src/main.js b/src/main.js index 2fc84ae20fd6a0f89ad8df2344a1ff20a4de2b32..624bf52f0c1d18fe9c041c022bb840e64e96edd5 100644 --- a/src/main.js +++ b/src/main.js @@ -27,8 +27,20 @@ function getApplicationPath() { } } -const portableDataName = product.portable || `${product.applicationName}-portable-data`; -const portableDataPath = process.env['VSCODE_PORTABLE'] || path.join(path.dirname(getApplicationPath()), portableDataName); +function getPortableDataPath() { + if (process.env['VSCODE_PORTABLE']) { + return process.env['VSCODE_PORTABLE']; + } + + if (process.platform === 'win32' || process.platform === 'linux') { + return path.join(getApplicationPath(), 'data'); + } else { + const portableDataName = product.portable || `${product.applicationName}-portable-data`; + return path.join(path.dirname(getApplicationPath()), portableDataName); + } +} + +const portableDataPath = getPortableDataPath(); const isPortable = fs.existsSync(portableDataPath); const portableTempPath = path.join(portableDataPath, 'tmp'); const isTempPortable = isPortable && fs.existsSync(portableTempPath);