From 7a8c30139290d37d28923b4c581badbf9e23ffc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=BCbleitner?= Date: Mon, 26 Aug 2019 23:10:07 +0200 Subject: [PATCH] going out --- src/backend/UpdateManger.ts | 79 +++++++++++++++++++++++-------------- 1 file changed, 50 insertions(+), 29 deletions(-) diff --git a/src/backend/UpdateManger.ts b/src/backend/UpdateManger.ts index a0a5e52..402b9bc 100644 --- a/src/backend/UpdateManger.ts +++ b/src/backend/UpdateManger.ts @@ -141,10 +141,9 @@ export abstract class FSExtension extends Extension{ @@ -157,69 +156,91 @@ export class NPMExtension extends FSExtension{ public async status(): Promise { - const files = await fs.readdir(this.localPrefix) - const empty: boolean = files.length === 0 - if(empty){ - return { exists: true, empty: true, name: this.name, location: this.localPrefix }; - } + const empty = this.isEmpty() + const exists = this.exists() + const i = this.isInstalled() + const o = this.isOutdated() + const n = this.name + const p = this.p - const { _error, _stdout, _stderr } = await exec('npm outdated --prefix ' + this.localPrefix + " --json" + ' ' + this.name) - const { error, stdout, stderr } = await exec('npm info --prefix ' + this.localPrefix + ' ' + this.name + " version") + + return {name: this.name,} + + return { + name: n, + prefix: p, + installed: i, + outdated: o, + exists: exists, + empty: empty, + }; + + //const { _error, _stdout, _stderr } = await exec('npm outdated --prefix ' + this.prefix + " --json" + ' ' + this.name) + //const { error, stdout, stderr } = await exec('npm info --prefix ' + this.prefix + ' ' + this.name + " version") - if(_error | error){ + /*if(_error | error){ logger.warn( _stderr, stderr) + return { + name: this.name, + prefix: this.prefix, + installed: false, + outdated: false, + exists: true, + empty: false + }; return {exists: true, empty: false, name: this.name, location: this.localPrefix} } const statusJson:{latest:string, location: string, wanted:string} = JSON.parse(_stdout) return { exists: true, empty: false, name: this.name, location: this.localPrefix, version: stdout, latest: statusJson.latest, wanted: statusJson.wanted } + + */ } public async install(): Promise { - logger.info("npm install", this.name, 'to', path.resolve(this.localPrefix, this.name)) - await fs.mkdir(this.localPrefix, {recursive: true}) - const { error, stdout, stderr } = await exec('npm install --prefix '+ this.localPrefix + ' ' + this.name) + logger.info("npm install", this.name, 'to', path.resolve(this.prefix, this.name)) + const { error, stdout, stderr } = await exec('npm install --prefix '+ this.prefix + ' ' + this.name) if (error !== null) { - logger.warn('npm install', this.name, 'from prefix', this.localPrefix, 'stderr:', stderr) + logger.warn('npm install', this.name, 'from prefix', this.prefix, 'stderr:', stderr) return false } else { - logger.info('npm install', this.name, 'from prefix', this.localPrefix, 'stdout:', stdout) + logger.info('npm install', this.name, 'from prefix', this.prefix, 'stdout:', stdout) return true } } public async uninstall(): Promise { - logger.info("npm uninstall", this.name, 'from', path.resolve(this.localPrefix, this.name)) - const { error, stdout, stderr } = await exec('npm uninstall --prefix '+ this.localPrefix + ' ' + this.name) + logger.info("npm uninstall", this.name, 'from', path.resolve(this.prefix, this.name)) + const { error, stdout, stderr } = await exec('npm uninstall --prefix '+ this.prefix + ' ' + this.name) if (error !== null) { - logger.warn('npm uninstall', this.name, 'from prefix', this.localPrefix, 'stderr:', stderr) + logger.warn('npm uninstall', this.name, 'from prefix', this.prefix, 'stderr:', stderr) return false } else { - logger.info('npm uninstall', this.name, 'from prefix', this.localPrefix, 'stdout:', stdout) + logger.info('npm uninstall', this.name, 'from prefix', this.prefix, 'stdout:', stdout) return true } } public async update(): Promise { - logger.info("npm update", path.resolve(this.localPrefix, this.name)) - const { error, stdout, stderr } = await exec('npm update --prefix '+ this.localPrefix + ' ' + this.name) + logger.info("npm update", path.resolve(this.prefix, this.name)) + const { error, stdout, stderr } = await exec('npm update --prefix '+ this.prefix + ' ' + this.name) if (error !== null) { - logger.warn('npm update', this.name, 'from prefix', this.localPrefix, 'stderr:', stderr) + logger.warn('npm update', this.name, 'from prefix', this.prefix, 'stderr:', stderr) return false } else { - logger.info('npm update', this.name, 'from prefix', this.localPrefix, 'stdout:', stdout) + logger.info('npm update', this.name, 'from prefix', this.prefix, 'stdout:', stdout) return true } } public async isOutdated(): Promise { //TODO - logger.info("npm outdated", path.resolve(this.localPrefix, this.name)) - const { error, stdout, stderr } = await exec('npm list --prefix '+ this.localPrefix + ' --depth=0 | grep ' + this.name) + logger.info("npm outdated", path.resolve(this.prefix, this.name)) + const { error, stdout, stderr } = await exec('npm list --prefix '+ this.prefix + ' --depth=0 | grep ' + this.name) if (error !== null) { - logger.warn('npm outdated', this.name, 'from prefix', this.localPrefix, 'stderr:', stderr) + logger.warn('npm outdated', this.name, 'from prefix', this.prefix, 'stderr:', stderr) return false } else { - logger.info('npm outdated', this.name, 'from prefix', this.localPrefix, 'stdout:', stdout) + logger.info('npm outdated', this.name, 'from prefix', this.prefix, 'stdout:', stdout) return true } }