chore: Add color to the install script

- This will only work on terminals setup to use color
This commit is contained in:
LaraClara 2023-06-12 13:48:43 +10:00 committed by Danny Avila
parent 4c340fd0ba
commit e726e42cb5
2 changed files with 25 additions and 6 deletions

14
config/color-console.js Normal file
View file

@ -0,0 +1,14 @@
/**
* Console changes
* This allows us to give the console some colour when running in a terminal
*/
console.orange = (msg) => console.log('\x1b[33m%s\x1b[0m', msg);
console.green = (msg) => console.log('\x1b[32m%s\x1b[0m', msg);
console.red = (msg) => console.log('\x1b[31m%s\x1b[0m', msg);
console.blue = (msg) => console.log('\x1b[34m%s\x1b[0m', msg);
console.purple = (msg) => console.log('\x1b[35m%s\x1b[0m', msg);
console.cyan = (msg) => console.log('\x1b[36m%s\x1b[0m', msg);
console.yellow = (msg) => console.log('\x1b[33m%s\x1b[0m', msg);
console.white = (msg) => console.log('\x1b[37m%s\x1b[0m', msg);
console.gray = (msg) => console.log('\x1b[90m%s\x1b[0m', msg);

View file

@ -4,6 +4,7 @@
const fs = require('fs'); const fs = require('fs');
const readline = require('readline'); const readline = require('readline');
const { exit } = require('process'); const { exit } = require('process');
require('./color-console');
// Save the original console.log function // Save the original console.log function
const originalConsoleWarn = console.warn; const originalConsoleWarn = console.warn;
@ -45,7 +46,7 @@ const askQuestion = (query) => {
}); });
return new Promise((resolve) => return new Promise((resolve) =>
rl.question(query, (ans) => { rl.question("\x1b[34m" + query + "\n> " + "\x1b[0m", (ans) => {
rl.close(); rl.close();
resolve(ans); resolve(ans);
}) })
@ -73,8 +74,11 @@ const askQuestion = (query) => {
exit(0); exit(0);
} }
console.log('Welcome to the ChatGPT Clone install script!'); // Lets colour the console
console.log('Please answer the following questions to setup your environment.'); console.purple('=== LibreChat First Install ===');
console.cyan('Note: Leave blank to use the default value.');
console.log(''); // New line
// Ask for the app title // Ask for the app title
const title = await askQuestion( const title = await askQuestion(
'Enter the app title (default: "LibreChat"): ' 'Enter the app title (default: "LibreChat"): '
@ -104,14 +108,15 @@ const askQuestion = (query) => {
env['MONGO_URI'] = mongodb || 'mongodb://127.0.0.1:27017/LibreChat'; env['MONGO_URI'] = mongodb || 'mongodb://127.0.0.1:27017/LibreChat';
// Very basic check to make sure they entered a url // Very basic check to make sure they entered a url
if (!env['MONGO_URI'].includes('://')) { if (!env['MONGO_URI'].includes('://')) {
console.warn('Warning: Your mongodb url looks incorrect, please double check it in the `.env` file.'); console.orange('Warning: Your mongodb url looks incorrect, please double check it in the `.env` file.');
} }
// Update the env file // Update the env file
loader.writeEnvFile(rootEnvPath, env); loader.writeEnvFile(rootEnvPath, env);
// We can ask for more here if we want // We can ask for more here if we want
console.log(''); // New line
console.log('Environment setup complete.'); console.green('Success! Please read our docs if you need help setting up the rest of the app.');
console.log(''); // New line
})(); })();