seline
v0.5.1
Published
Tool for interactively selecting input lines
Readme
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 selineVia yarn
yarn global add selineCLI Examples
Here are some example applications that I have been using
Select and delete multiple git branches
$ git branch | seline -m | xargs git branch -DChecking out a recent git branch.
$ git branch --sort=-committerdate | grep -v '*' | seline | xargs git checkoutSelect 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-pickProgrammatic Examples
seline can also be required and used programmatically. Results are returned as a promise.
seline(choices, options)
choicesrequired; an array of strings that are presented for selectionoptionsoptional; 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 });
}