muggleout
Version:
Transform muggles into terminal wizards / 비개발자를 터미널 마법사로 만들어주는 도구
142 lines (125 loc) • 4.91 kB
JavaScript
import chalk from 'chalk';
import boxen from 'boxen';
// 터미널 미리보기 표시
export function showTerminalPreview() {
console.log('\n🖼️ 설치하면 터미널이 이렇게 바뀝니다:\n');
// Before
console.log(chalk.bold('지금 (기본 터미널):'));
console.log(boxen(
'Last login: Mon Jan 27 10:30:21 on ttys000\n' +
'user@MacBook-Pro ~ % ls\n' +
'Applications Desktop Documents Downloads\n' +
'Library Movies Music Pictures\n' +
'user@MacBook-Pro ~ % cd projects\n' +
'user@MacBook-Pro projects % git status\n' +
'On branch main\n' +
'Your branch is up to date with \'origin/main\'.\n' +
'user@MacBook-Pro projects % ',
{
padding: 1,
borderStyle: 'round',
borderColor: 'gray',
title: '😐 Before',
titleAlignment: 'center'
}
));
console.log(''); // 공백
// After
console.log(chalk.bold('설치 후 (iTerm2 + Oh My Zsh + Powerlevel10k):'));
console.log(boxen(
chalk.blue('╭─') + ' 🏠 ' + chalk.cyan('user@MacBook-Pro') + ' ' +
chalk.blue('~/projects') + ' ' +
chalk.yellow('git:') + chalk.red('main') + ' ' +
chalk.green('✓') + '\n' +
chalk.blue('╰─') + chalk.green('$') + ' ' + chalk.gray('ls') + '\n' +
chalk.blue('📁 ') + 'src ' + chalk.blue('📁 ') + 'tests ' +
chalk.green('📄 ') + 'README.md ' + chalk.yellow('📄 ') + 'package.json\n\n' +
chalk.blue('╭─') + ' 🏠 ' + chalk.cyan('user@MacBook-Pro') + ' ' +
chalk.blue('~/projects') + ' ' +
chalk.yellow('git:') + chalk.red('main') + ' ' +
chalk.green('✓') + ' ' + chalk.gray('[10:30:45]') + '\n' +
chalk.blue('╰─') + chalk.green('$') + ' ' + chalk.gray('git st') +
chalk.dim('atus') + chalk.gray(' (자동완성)') + '\n' +
chalk.green('✓') + ' Your branch is up to date\n' +
chalk.yellow('📝') + ' 2 files modified\n\n' +
chalk.dim('추가 기능:') + '\n' +
chalk.dim('• 명령어 자동완성 (탭 키)') + '\n' +
chalk.dim('• 문법 하이라이팅') + '\n' +
chalk.dim('• Git 상태 실시간 표시') + '\n' +
chalk.dim('• 실행 시간 표시'),
{
padding: 1,
borderStyle: 'round',
borderColor: 'green',
title: '🤩 After',
titleAlignment: 'center'
}
));
}
// Oh My Zsh 미리보기
export function showOhMyZshPreview() {
console.log('\n🖼️ Oh My Zsh 설치 효과:\n');
console.log(chalk.bold('주요 기능:'));
console.log(boxen(
'1. ' + chalk.cyan('명령어 자동완성') + '\n' +
' cd pro' + chalk.gray('jects/') + ' (탭 키로 자동완성)\n\n' +
'2. ' + chalk.yellow('명령어 추천') + '\n' +
' gti status → ' + chalk.green('git status로 자동 수정') + '\n\n' +
'3. ' + chalk.green('유용한 단축키') + '\n' +
' ll = ls -la (파일 목록 자세히)\n' +
' .. = cd .. (상위 폴더로)\n' +
' - = cd - (이전 폴더로)\n\n' +
'4. ' + chalk.magenta('플러그인 200개+') + '\n' +
' git, docker, npm 등 자동 설정',
{
padding: 1,
borderStyle: 'round',
borderColor: 'cyan'
}
));
}
// Powerlevel10k 미리보기
export function showP10kPreview() {
console.log('\n🖼️ Powerlevel10k 테마 미리보기:\n');
console.log(chalk.bold('설정 마법사에서 선택 가능한 스타일:'));
// Lean 스타일
console.log('\n' + chalk.gray('1. Lean (깔끔한 스타일)'));
console.log(boxen(
chalk.green('❯') + ' ~/projects ' + chalk.blue('main') + ' ' + chalk.gray('10:30:45') + '\n' +
chalk.green('❯') + ' npm install',
{ padding: { left: 2, right: 2, top: 0, bottom: 0 }, borderStyle: 'single' }
));
// Classic 스타일
console.log('\n' + chalk.gray('2. Classic (아이콘 포함)'));
console.log(boxen(
'╭─ ' + chalk.cyan('user@mac') + ' in ' + chalk.blue('~/projects') + ' on ' +
chalk.yellow('⎇ main') + '\n' +
'╰─' + chalk.green('λ') + ' npm install',
{ padding: { left: 2, right: 2, top: 0, bottom: 0 }, borderStyle: 'single' }
));
// Rainbow 스타일
console.log('\n' + chalk.gray('3. Rainbow (화려한 스타일)'));
console.log(boxen(
chalk.bgBlue.white(' user ') + chalk.bgCyan.black(' ~/projects ') +
chalk.bgYellow.black(' main ') + chalk.bgGreen.black(' ✓ ') + '\n' +
chalk.blue('▶') + ' npm install',
{ padding: { left: 2, right: 2, top: 0, bottom: 0 }, borderStyle: 'single' }
));
}
// 도구별 미리보기
export function showToolPreview(toolName) {
switch(toolName) {
case 'terminal-beautify':
showTerminalPreview();
break;
case 'oh-my-zsh':
showOhMyZshPreview();
break;
case 'p10k':
showP10kPreview();
break;
default:
// 다른 도구들은 나중에 추가
break;
}
}