jbcarpanelli / spinnies

Node.js module to create and manage multiple spinners in command-line interface programs
MIT License
147 stars 32 forks source link

Spinner success message dublication on CI #22

Open ai opened 4 years ago

ai commented 4 years ago

I got strange dublication in the CLI log and locally with disableSpins option:

- Downloading https://github.com/logux/logux/archive/master.zip
- Downloading https://github.com/logux/logux/archive/master.zip
- Downloading https://github.com/logux/core/archive/master.zip
- Downloading https://github.com/logux/logux/archive/master.zip
- Downloading https://github.com/logux/core/archive/master.zip
- Downloading https://github.com/logux/server/archive/master.zip
- logux downloaded
- Downloading https://github.com/logux/core/archive/master.zip
- Downloading https://github.com/logux/server/archive/master.zip
- logux downloaded
- logux-core downloaded
- Downloading https://github.com/logux/server/archive/master.zip
- logux downloaded
- logux-core downloaded
- logux-server downloaded
- logux downloaded
- logux-core downloaded
- logux-server downloaded
- Converting guides
- logux downloaded
- logux-core downloaded
- logux-server downloaded
- Converting guides
- Generating JSDoc
- logux downloaded
- logux-core downloaded
- logux-server downloaded
- Guide converted
- Generating JSDoc
- logux downloaded
- logux-core downloaded
- logux-server downloaded
- Guide converted
- JSDoc generated
- logux downloaded
- logux-core downloaded
- logux-server downloaded
- Guide converted
- JSDoc generated
- Building guides HTML
- logux downloaded
- logux-core downloaded
- logux-server downloaded
- Guide converted
- JSDoc generated
- Building guides HTML
- Building API HTML
- logux downloaded
- logux-core downloaded
- logux-server downloaded
- Guide converted
- JSDoc generated
- Building guides HTML
- API HTML generated
- logux downloaded
- logux-core downloaded
- logux-server downloaded
- Guide converted
- JSDoc generated
- Guides HTML generated
- API HTML generated

But with spinners (locally without disableSpins) everything works good.

I strarted this spinners only (pseudocode):

await Promise.all(projects.map(async ([url, name]) => {
  spin.add(`download-${ name }`, { text: `Downloading ${ url }` })
  await donwload(name, url)
  spin.succeed(`download-${ name }`, { text: `${ name } downloaded` })
})
Promise.all([
  async () => {
    spin.add('process-guides', { text: 'Converting guides' })
    await process()
    spin.succeed('process-guides', { text: 'Guide converted' })
  }),
  async () => {
    spin.add(`jsdoc${ projects.join() }`, { text: 'Generating JSDoc' })
    await jsdoc()
    spin.succeed(`jsdoc${ projects.join() }`, { text: 'JSDoc generated' })
  })
])
Promise.all([
  async () => {
    spin.add('build-api', { text: 'Building API HTML' })
    await buildHTML('guide')
    spin.succeed('build-api', { text: 'API HTML generated' })
  }),
  async () => {
    spin.add('build-pages', { text: 'Building guides HTML' })
    await buildHTML('api')
    spin.succeed('build-pages', { text: 'Guides HTML generated' })
  })
])

Could be an dublicate for https://github.com/jcarpanelli/spinnies/issues/13

rafipiccolo commented 1 year ago

usually CI logs are not ncurse capable. therefore i guess spinners just adds lines to the log instead of rewriting current lines.