jec-cli
Version:
CLI tool for managing JEC projects.
76 lines (70 loc) • 2.75 kB
text/typescript
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
//
// Copyright 2016-2018 Pascal ECHEMANN.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import {Command, CliLogger, ConsoleCliLogger} from "jec-tool-cli";
import {GlassCatLoader} from "./tools/install/GlassCatLoader";
import {GlassCatExtractor} from "./tools/install/GlassCatExtractor";
import {GlassCatNpmInstaller} from "./tools/install/GlassCatNpmInstaller";
import {GlassCatInstallCleaner} from "./tools/install/GlassCatInstallCleaner";
/**
* The <code>GlassCatInstall</code> command allows to install a new GlassCat
* server instance.
*/
export class GlassCatInstall implements Command {
//////////////////////////////////////////////////////////////////////////////
// Constructor function
//////////////////////////////////////////////////////////////////////////////
/**
* Creates a new <code>GlassCatInstall</code> instance.
*/
constructor() {}
//////////////////////////////////////////////////////////////////////////////
// Public methods
//////////////////////////////////////////////////////////////////////////////
/**
* @inheritDoc
*/
public run(argv:any):void {
const CFG:any = require("../../../config/glasscat-install-config.json");
const loader:GlassCatLoader = new GlassCatLoader();
const logger:CliLogger = ConsoleCliLogger.getInstance();
const version:string = CFG.version;
let extractor:GlassCatExtractor = null;
let installer:GlassCatNpmInstaller = null;
let cleaner:GlassCatInstallCleaner = null;
logger.action(`Installing GlassCat ${version}.`);
loader.download(
version,
()=> {
extractor = new GlassCatExtractor();
extractor.move(
()=> {
installer = new GlassCatNpmInstaller();
installer.install(
()=> {
cleaner = new GlassCatInstallCleaner();
cleaner.clean(
()=> {
logger.action("Server successfully installed.");
}
);
}
);
}
);
}
);
}
}