Skip to content

Commit

Permalink
Unifying icons for logging
Browse files Browse the repository at this point in the history
  • Loading branch information
fdodino committed Jan 28, 2024
1 parent 9ed2529 commit db685ea
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 9 deletions.
11 changes: 4 additions & 7 deletions src/commands/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { Server, Socket } from 'socket.io'
import { Environment, link, Name, Package, parse, RuntimeObject, WollokException } from 'wollok-ts'
import interpret, { Interpreter } from 'wollok-ts/dist/interpreter/interpreter'
import natives from 'wollok-ts/dist/wre/wre.natives'
import { ENTER, buildEnvironmentForProject, failureDescription, handleError, isImageFile, publicPath, readPackageProperties, serverError, stackTrace, successDescription, validateEnvironment, valueDescription } from '../utils'
import { ENTER, buildEnvironmentForProject, buildEnvironmentIcon, failureDescription, folderIcon, gameIcon, handleError, isImageFile, programIcon, publicPath, readPackageProperties, serverError, stackTrace, successDescription, validateEnvironment, valueDescription } from '../utils'
import { buildKeyPressEvent, canvasResolution, Image, queueEvent, visualState, VisualState, wKeyCode } from './extrasGame'
import { getDataDiagram } from '../services/diagram-generator'
import { logger as fileLogger } from '../logger'
Expand All @@ -35,27 +35,24 @@ type DynamicDiagramClient = {
onReload: () => void,
}

const programIcon = 'πŸš€'
const gameIcon = 'πŸ‘Ύ'

export default async function (programFQN: Name, options: Options): Promise<void> {
const { project, game } = options
const timeMeasurer = new TimeMeasurer()
try {
logger.info(`${programIcon} Running program ${valueDescription(programFQN)} ${runner(game)} on ${valueDescription(project)}`)
logger.info(`${game ? gameIcon : programIcon} Running program ${valueDescription(programFQN)} ${runner(game)} on ${valueDescription(project)}`)
options.assets = game ? getAssetsFolder(options) : ''
if (game) {
const logGameFinished = (exitCode: any) => {
fileLogger.info({ message: `${gameIcon} Game executed ${programFQN} on ${project}`, timeElapsed: timeMeasurer.elapsedTime(), exitCode })
process.exit(exitCode)
}
logger.info(`πŸ—‚οΈ Assets folder ${join(project, options.assets)}`)
logger.info(`${folderIcon} Assets folder ${join(project, options.assets)}`)
Array.from(['exit', 'SIGINT', 'SIGUSR1', 'SIGUSR2', 'SIGTERM', 'SIGHUP', 'uncaughtException']).forEach((eventType: string) => {
process.on(eventType, logGameFinished)
})
}

logger.info(`🌏 Building environment for ${valueDescription(programFQN)}...${ENTER}`)
logger.info(`${buildEnvironmentIcon} Building environment for ${valueDescription(programFQN)}...${ENTER}`)
const environment = await buildEnvironmentForProgram(options)
const debug = logger.getLevel() <= logger.levels.DEBUG
if (debug) time(successDescription('Run initiated successfully'))
Expand Down
6 changes: 4 additions & 2 deletions src/commands/test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { Entity, Environment, Node, Test } from 'wollok-ts'
import { is, match, when } from 'wollok-ts/dist/extensions'
import interpret from 'wollok-ts/dist/interpreter/interpreter'
import natives from 'wollok-ts/dist/wre/wre.natives'
import { buildEnvironmentForProject, failureDescription, successDescription, valueDescription, validateEnvironment, handleError, ENTER, stackTrace } from '../utils'
import { buildEnvironmentForProject, failureDescription, successDescription, valueDescription, validateEnvironment, handleError, ENTER, stackTrace, buildEnvironmentIcon, testIcon } from '../utils'
import { logger as fileLogger } from '../logger'
import { TimeMeasurer } from '../time-measurer'

Expand Down Expand Up @@ -46,9 +46,11 @@ export default async function (filter: string | undefined, options: Options): Pr

const timeMeasurer = new TimeMeasurer()
const { project, skipValidations } = options
const runAllTestsDescription = `πŸ§ͺ Running all tests ${filter ? `matching ${valueDescription(filter)} ` : ''}on ${valueDescription(project)}`
const runAllTestsDescription = `${testIcon} Running all tests ${filter ? `matching ${valueDescription(filter)} ` : ''}on ${valueDescription(project)}`

logger.info(runAllTestsDescription)

logger.info(`${buildEnvironmentIcon} Building environment for ${valueDescription(project)}...${ENTER}`)
const environment = await buildEnvironmentForProject(project)
validateEnvironment(environment, skipValidations)

Expand Down
9 changes: 9 additions & 0 deletions src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,15 @@ const { time, timeEnd } = console

export const ENTER = '\n'

// ══════════════════════════════════════════════════════════════════════════════════════════════════════════════════
// ICONS
// ══════════════════════════════════════════════════════════════════════════════════════════════════════════════════
export const programIcon = 'πŸš€'
export const gameIcon = 'πŸ‘Ύ'
export const testIcon = 'πŸ§ͺ'
export const buildEnvironmentIcon = '🌏'
export const folderIcon = 'πŸ—‚οΈ'

// ══════════════════════════════════════════════════════════════════════════════════════════════════════════════════
// FILE / PATH HANDLING
// ══════════════════════════════════════════════════════════════════════════════════════════════════════════════════
Expand Down

0 comments on commit db685ea

Please sign in to comment.