File Prompt
An interactive prompt for files inspired by git add -i. By supplying a filter and a base directory and calling the fileprompt
function you can interactively select from a list of matching files in a number of ways intended to speed up typing time trying to guess and remember paths. This tool can be used with Gulp to send a list of files to gulp.src
.
Installation
Using npm:
$ npm install expect
Usage
In ES6:
import fileprompt from 'fileprompt'
fileprompt({ basedir: process.cwd(), filter: '*.js' })
.then((files) => {
})
.catch((e) => {
})
In ES5:
var fileprompt = require('fileprompt');
fileprompt({ basedir: process.cwd(), filter: '*.js' })
.then((files) => {
})
.catch((e) => {
})
Input
The following methods of input are currently supposed:
Main Menu
- {int} id - Number of the menu item to access
- {string} name - Must uniquely identify the beginning of a menu item
Files
- {string} * - Adds all files from the current page
- {string} -* - Removes all files from the current page
- {int} id - Number of the menu item to access
- {string} name - Must uniquely identify the beginning of a file name
- {string} n-n - Supports numeric ranges like 1-5
- {string} -n-n - Supports removing files within the given range
You can also supply multiple arguments like 4 5-10 -8
and it will do the following:
- Selected item # 4
- Select items # 5 through 10
- Unselect file # 8
Supported Features
Currently the following features are supported
Browing Directories
Lets you add files by entering directories and selecting files. Pressing <enter>
will return to the main menu.
Files
Lists all levels of files matching the supplied filter. Pressing <enter>
will return to the main menu.
Glob
Asks for a glob string such as **/*.js
. If matches are found it will allow you to select from the list of matching files. Pressing <enter>
will return to the main menu.
Changed Files
Executes git diff --name-only
to get a list of files changed since the last git commit. Pressing <enter>
will return to the main menu.
Credits
This tool was lovingly made for use at VenueBook.
License
BSD-3-Clause (c) 2015 VenueBook, Inc. (https://venuebook.com)