Published at
Updated at
Reading time
This post is part of my Today I learned series in which I share all my web development learnings.

Recently, we released a new CLI tool to migrate data in Contentful. It's currently in beta and we'll work on it to make it better.

Last week we received a question in our community forum. A user asked if he could use the CLI programmatically. He had the problem that the CLI asks at some point for confirmation and this makes it hard to run in a CI environment.

? Do you want to apply the migration? (Y/n)

How could you answer this question when it's not you running this command but a potential CI environment.

My colleage Stephan had a cool solution. He responded that the unix command yes could help out here. yes? What kind of command is that?

The man page for yes is not giving much information but according to [Wikipedia]( this is what it does:

By itself, the yes command outputs 'y' or whatever is specified as an argument, followed by a newline repeatedly until stopped by the user or otherwise killed; when piped into a command, it will continue until the pipe breaks (i.e., the program completes its execution).

When you execute yes sunshine this is what you'll get:

$ yes sunshine

A lot of sunshine! ☀️

Use it to combine yes with other CLI commands and auto-respond to confirmations.

$ yes Y | contentful-migration --space-id xxx migration.js

There is another way to answer confirmation in a CLI automatically, though. It turns out, you can also echo and pipe a string into another command.

$ echo yes | contentful-migration --space-id xxx migration.js

I think that's pretty cool stuff and it will definitely help me for my next automation tasks!

Was this TIL post helpful?
Yes? Cool! You might want to check out Web Weekly for more quick learnings. The last edition went out 8 days ago.
Stefan standing in the park in front of a green background

About Stefan Judis

Frontend nerd with over ten years of experience, freelance dev, "Today I Learned" blogger, conference speaker, and Open Source maintainer.

Related Topics

Related Articles