0.5.1 • Published 6 years ago
seline v0.5.1
seline
Tool for interactively selecting input lines
se(lect) line(s)
seline
is a command line tool for interactively selecting one (or more) lines from stdin
and passing them to stdout
. It is intended to be composed with other tools.
Installation
Via npm
npm install -g seline
Via yarn
yarn global add seline
CLI Examples
Here are some example applications that I have been using
Select and delete multiple git branches
$ git branch | seline -m | xargs git branch -D
Checking out a recent git branch.
$ git branch --sort=-committerdate | grep -v '*' | seline | xargs git checkout
Select a branch, then select commits to cherry-pick
git branch | seline | xargs git log --oneline | seline -m | awk '{print $1}' | tail -r | xargs git cherry-pick
Programmatic Examples
seline
can also be required and used programmatically. Results are returned as a promise.
seline(choices, options)
choices
required; an array of strings that are presented for selectionoptions
optional; a dict of configuration options
option | type | default | description |
---|---|---|---|
multiline | boolean | false | enable multiple line selection |
outputIndex | boolean | false | output line index instead of line |
hideNumbers | boolean | false | hide selection number prefix |
preserveOrder | boolean | false | output lines in order of selection |
compact | boolean | false | separate options by tabs instead of newlines |
skipBlanks | boolean | false | selection cursor skips empty lines |
skipChar | char | null | selection cursor skips line starting with char |
noColor | boolean | false | use extra characters to show state instead of color |
lockLines | boolean | false | prevent reordering lines with u and d |
const seline = require('seline');
async function main() {
const results = await seline(['a', 'b', 'c'], { multiline: true });
}