1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
//! checkline: checkbox line picker from stdin to stdout
//!
//! Example:
//!
//! ```sh
//! printf "%s\n%s\n%s\n" alpha bravo charlie > example.txt
//! cat example.txt | checkline
//! ```
//!
//! You should see each line with a checkbox and text:
//!
//! ```txt
//! [ ] alpha
//! [ ] bravo
//! [ ] charlie
//! ```
//!
//! Move up and down in the list by typing arrow keys.
//!
//! Check or uncheck any checkbox by typing space or return.
//!
//!
//! Check or uncheck any checkbox by typing space or return, such as:
//!
//! ```txt
//! [x] alpha
//! [ ] bravo
//! [x] charlie
//! ```
//!
//! Check each line that you want, then type ESC to finish.
//!
// The command outputs each line that you checked:
//!
//! ```txt
//! alpha
//! charlie
//! ```
//!
//!
//! ## Install
//!
//! Install checkline as a typical Rust crate:
//!
//! ```sh
//! cargo install checkline
//! ```
//!
// If people want other ways, such as with package managers, we welcome help to create these ways.
//!
//!
//! ## Purpose
//!
//! The purpose of this command is a simple picker, that is easy to use, and
//! that work wells in on the command line such as within a pipe.
//!
//! The purpose isn't intended to handle very long lines, or very long inputs.
//!
//!
//! ## Projects with similarities
//!
//! `markline` that's the same kind of tool plus markers:
//! <https://github.com/sixarm/markline>
//!
//! `vipe` that can pipe in and out of `$EDITOR`:
//! <https://github.com/juliangruber/vipe>
//!
//! `peco` simplistic interactive filtering tool:
//! <https://github.com/peco/peco>
//!
//! `percol` adds interactive selection to the traditional pipe concept.
//! <https://github.com/mooz/percol>
//!
//! `canything` interactive grep tools:
//! <https://github.com/keiji0/canything>
//!
//! `zaw` zsh-friendly interactive grep tool:
//! <https://github.com/zsh-users/zaw>
//!
//! `fzf` interactive grep tool written in Go language.
//! <https://github.com/junegunn/fzf>
//!
//!
//! ## Settings
//!
//! On some systems, you may need to set your localization environment variables.
//!
//! Example:
//!
//! ```sh
//! export LC_COLLATE="en_US.UTF-8"
//! export LC_CTYPE="en_US.UTF-8"
//! export LC_MESSAGES="en_US.UTF-8"
//! export LC_MONETARY="en_US.UTF-8"
//! export LC_NUMERIC="en_US.UTF-8"
//! export LC_TIME="en_US.UTF-8"
//! export LC_ALL="en_US.UTF-8"
//! ```
//!
//!
//! ## Feedback
//!
//! We welcome constructive criticism and ideas for improvements.
//!
//!
//! ## Tracking
//!
//! * Program: checkline
//! * Version: 1.1.3
//! * License: MIT OR BSD OR GPL-2.0 OR GPL-3.0
//! * Created: 2022-10-15T12:24:50Z
//! * Updated: 2024-06-07T17:43:21Z
//! * Website: https://github.com/sixarm/checkline
//! * Contact: Joel Parker Henderson (joel@joelparkerhenderson.com)