Skip to content
/ seline Public

Tool for interactively selecting input lines

Notifications You must be signed in to change notification settings

madbook/seline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 

Repository files navigation

seline

Tool for interactively selecting input lines

Gif showing seline in use

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 selection
  • options 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 });
}

About

Tool for interactively selecting input lines

Resources

Stars

Watchers

Forks

Packages

No packages published