jesse
Version:
An advanced cryptocurrency trading framework for TypeScript
48 lines • 2.31 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ora_1 = __importDefault(require("ora"));
const exec_1 = __importDefault(require("./../utilities/exec"));
const download_git_repo_1 = __importDefault(require("download-git-repo"));
const tellUserFolderExists_1 = __importDefault(require("./../utilities/tellUserFolderExists"));
const loadNvm = 'export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \\. "$NVM_DIR/nvm.sh" && nvm use ';
function makeProject(projectName, branch, force = false) {
let projectDirectory = `${process.env.jesse_path}/${projectName}`;
tellUserFolderExists_1.default(projectDirectory, 'project folder', force).then(() => {
let hasNvm = '';
const spinner = ora_1.default();
spinner.start(`Creating ${projectName}`);
let startDownload = () => {
download_git_repo_1.default(`jesse-ai/jesse${typeof branch === 'string' ? `#${branch}` : ''}`, projectDirectory, function (err) {
if (err) {
spinner.fail('Failed to download jesse : ' + err.message.trim());
}
else {
exec_1.default(`cd ${projectDirectory} && cp .env.example .env && touch storage/db.sqlite`);
spinner.succeed(`Created ${projectName}`);
spinner.start('Running npm install.');
exec_1.default(`cd ${projectDirectory} && ${hasNvm ? `${loadNvm} &&` : ''} npm install`).then(() => {
spinner.succeed(`NPM modules installed.`);
spinner.succeed('Your instance of Jesse is ready. Happy trading!');
}, err => {
spinner.fail(err);
});
}
});
};
exec_1.default(`${loadNvm} command -v nvm`)
.then(result => {
if (result.trim() === 'nvm') {
hasNvm = `${loadNvm}`;
}
startDownload();
})
.catch(function (e) {
startDownload();
});
});
}
exports.default = makeProject;
//# sourceMappingURL=newProject.js.map