38 lines
875 B
TypeScript
38 lines
875 B
TypeScript
import * as os from 'os';
|
|
import { execSync } from 'child_process';
|
|
import * as fse from 'fs-extra';
|
|
|
|
export class DefaultFolder {
|
|
static downloads(): string {
|
|
switch (os.platform()) {
|
|
case 'win32':
|
|
return `${process.env.USERPROFILE}/Downloads`;
|
|
case 'darwin':
|
|
return `${process.env.HOME}/Downloads`;
|
|
case 'linux': {
|
|
let dir: Buffer;
|
|
try {
|
|
dir = execSync('xdg-user-dir DOWNLOAD', { stdio: [0, 3, 3] });
|
|
} catch (_) {}
|
|
|
|
if (dir) {
|
|
return dir.toString('utf-8');
|
|
}
|
|
|
|
let stat: fse.Stats;
|
|
const homeDownloads = `${process.env.HOME}/Downloads`;
|
|
try {
|
|
stat = fse.statSync(homeDownloads);
|
|
} catch (_) {}
|
|
if (stat) {
|
|
return homeDownloads;
|
|
}
|
|
return '/tmp/';
|
|
}
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|