I'm attempting to use Grunt to make a directory in a project for new posts to a blog. It would essentially create a directory inside of a posts
directory that is named YYYYMMDDDD-PostNameInPascalCase
.
In order to do this, I'd have to prompt the user for post name each time that I execute the task. I know that grunt-init prompts users for creating projects from project templates, but I'm curious if there's a way to do this inside the Gruntfile.js
file for an already established project.
Any thoughts?
Call the function of the Batch script. In our example, we created a function named MYPING. On the notepad application, create a Batch script named TEST. Here is the script result. Congratulations! You are able to prompt a user for input using a Batch script function.
PowerShell offers the support of Read-Host cmdlet to prompt for user input in PowerShell. This post aims to describe the possible way to prompt user input in PowerShell. How to Prompt for User Input in PowerShell? PowerShell supports a wide range of cmdlets to automate various tasks. The Read-Host cmdlet is used to prompt user input in PowerShell.
User Input. Python allows for user input. That means we are able to ask the user for input. The method is a bit different in Python 3.6 than Python 2.7. Python 3.6 uses the input () method. Python 2.7 uses the raw_input () method.
It's been a while since this question was last asked, but there is a project on Github that attempts to do what the questioner was looking for. It's called grunt-prompt
and here's the url: https://github.com/dylang/grunt-prompt. It's basically a way to integrate prompts into the Gruntfile. From the project readme you would do something like:
grunt.initConfig({
prompt: {
target: {
options: {
questions: [
{
config: 'config.name', // arbitray name or config for any other grunt task
type: '<question type>', // list, checkbox, confirm, input, password
message: 'Question to ask the user',
default: 'value', // default value if nothing is entered
choices: 'Array|function(answers)',
validate: function(value), // return true if valid, error message if invalid
filter: function(value), // modify the answer
when: function(answers) // only ask this question when this function returns true
}
]
}
},
},
})
Yes, you can do something like this:
grunt.registerTask('makePost', 'Make a new post dir.', function(n) {
if (n == null) {
grunt.log.warn('Post name must be specified, like makePost:PostNameGoesHere.');
}
// Run other tasks here
grunt.task.run('foo:' + n, 'bar:' + n, 'baz:' + n);
});
For more infomation and source on how to pass some arguments look at the Grunt FAQ.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With