Skip to content

Commit

Permalink
update system update api with promise
Browse files Browse the repository at this point in the history
  • Loading branch information
lizheming committed Mar 4, 2018
1 parent cb6652f commit 4979ca1
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 19 deletions.
49 changes: 31 additions & 18 deletions src/admin/controller/api/system.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,35 +70,48 @@ module.exports = class extends Base {
/** 下载文件 */
case '1':
default:
return request({uri: 'http://firekylin.org/release/v1/latest.tar.gz'})
return new Promise((resolve, reject) => {
request({uri: 'http://firekylin.org/release/v1/latest.tar.gz'})
.pipe(fs.createWriteStream(path.join(think.RESOURCE_PATH, 'latest.tar.gz')))
.on('close', () => this.success())
.on('error', err => this.fail(err));
.on('close', resolve)
.on('error', reject)
}).then(
() => this.success(),
({message}) => this.fail(message)
);

/** 解压覆盖,删除更新文件 */
case '2':
return exec(`
return new Promise((resolve, reject) => {
exec(`
cd ${think.RESOURCE_PATH};
tar zvxf latest.tar.gz;
cp -r firekylin/* ../;
rm -rf firekylin latest.tar.gz`, error => {
if(error) {
this.fail(error);
}

this.success();
});
if(error) {
reject(error);
}
resolve();
});
}).then(
() => this.success(),
({message}) => this.fail(message)
);

/** 安装依赖 */
case '3':
let registry = think.config('registry') || 'https://registry.npm.taobao.org';
return exec(`npm install --registry=${registry}`, error => {
if(error) {
this.fail(error);
}

this.success();
});
const registry = think.config('registry') || 'https://registry.npm.taobao.org';
return new Promise((resolve, reject) => {
exec(`npm install --registry=${registry}`, error => {
if(error) {
reject(error);
}
resolve();
});
}).then(
() => this.success(),
({message}) => this.fail(message)
);

/** 重启服务 */
case '4':
Expand Down
2 changes: 1 addition & 1 deletion www/static/src/admin/store/system.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export default Reflux.createStore({
},
onUpdateSystem(step) {
let url = '/admin/api/system?method=update&step='+step;
let req = superagent.get(url);
let req = superagent.post(url);
return firekylin.request(req).then(
() => this.trigger(null, 'updateSystem')
);
Expand Down

0 comments on commit 4979ca1

Please sign in to comment.