Commit 32ece509 authored by nanahira's avatar nanahira

tar path

parent c4768d23
......@@ -58,9 +58,20 @@ export class AppsService {
map: Map<string, string> = new Map();
connections = new Map<App, Connection>();
maotama: Promise<ChildProcess>;
readonly tarPath = process.platform === 'win32' ?
path.join(process.env['NODE_ENV'] === 'production' ? process.resourcesPath! : '', 'bin', 'bsdtar.exe')
: 'bsdtar';
private systemBinPath(executableName: string) {
return path.join(process.env['NODE_ENV'] === 'production' ? process.resourcesPath! : '', 'bin', executableName);
}
private get tarPath() {
if (process.platform === 'linux') {
return 'tar';
} else if (process.platform === 'win32') {
return this.systemBinPath('bsdtar.exe');
} else {
return this.systemBinPath('gtar');
}
}
private apps: Map<string, App>;
constructor(private http: Http, private settingsService: SettingsService, private ref: ApplicationRef,
......@@ -991,8 +1002,12 @@ export class AppsService {
extract(file: string, dir: string): Observable<string> {
return Observable.create((observer: Observer<string>) => {
Logger.info('Start to extract... Command Line: ' + this.tarPath, file, dir);
let tarProcess = child_process.spawn(this.tarPath, ['xvf', file, '-C', dir]);
const tarArgs = ['-xvf', file, '-C', dir];
if(process.platform === 'darwin') {
tarArgs.unshift(`--use-compress-program=${this.systemBinPath('zstd')}`)
}
Logger.info('Start to extract... Command Line: ' + this.tarPath, tarArgs.join(' '));
let tarProcess = child_process.spawn(this.tarPath, tarArgs);
let rl = readline.createInterface({
input: <ReadableStream>tarProcess.stderr,
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment