aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-03-03Increase version v0.3.0 -> v0.4.0v0.4.0Teddy Wing
2018-03-03Update copyright yearsTeddy Wing
2018-03-03Merge branch 'release-script'Teddy Wing
2018-03-03Makefile: Add a `release` targetTeddy Wing
Script the release process to make it easier to build a tar containing the executable, Bash completion, and the man page.
2018-03-03Merge branch 'create-man-page'Teddy Wing
2018-03-03Merge branch 'invisible-password'Teddy Wing
2018-03-03Makefile: Clean up man page bold literal transformationTeddy Wing
Instead of the messy variables we were using, which caused `passextract.1.txt.tmp` and `passextract.1` files to be generated at the root of the project, create a few new targets to do the "`"` to "*" transformation and build the man page from a temporary file.
2018-03-03passextract.1: Make literals boldTeddy Wing
To more clearly identify literals in "`literal`" blocks in the man page, make them bold by doing a simple text replacement on them. Note that this Makefile makes a `passextract.1` file at the root of the project. Need to fix that.
2018-03-03Add man pageTeddy Wing
Provide a man page for in situ documentation. Use AsciiDoc to generate the man page. Yay, my first man page! Resources: - https://github.com/BurntSushi/ripgrep/blob/fe9be65/build.rs - https://github.com/BurntSushi/ripgrep/blob/f5411b9/doc/rg.1.txt.tpl - http://www.methods.co.nz/asciidoc/asciidoc.1.txt - https://github.com/git/git/blob/23f8239/Documentation/git-clean.txt - https://github.com/git/git/blob/8a8f121049fdd881981799755a041b3f81449805/Documentation/asciidoctor-extensions.rb - http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/ - https://github.com/git/git/commit/5945717009cbd07fc303939452df6475ac342fe7
2018-03-03When `-i`, replace password with '*'sTeddy Wing
Previously, when the "invisible" flag was activated, we wouldn't print anything except the "p: " prefix on a password line. This made it difficult to verify the password, and if you for some reason had multiple passwords, you wouldn't know which one to pick unless you knew the order. This at least gives you a visual cue about your password.
2018-03-02Merge branch 'add-changelog'Teddy Wing
2018-03-02Add CHANGELOGTeddy Wing
Copy over our Git tag messages with: $ git tag -n99 Reformat them and put them in reverse chronological order.
2018-03-01Clean up condition for getting file path from argumentTeddy Wing
Instead of the convoluted hard-to-read `hide_password &&` nonsense, give ourselves a way to express the condition in terms of the argument _not_ being one of our accepted options (only `-i`). This ensures that we either capture the filename in the last argument or use STDIN.
2018-03-01Use `-i` argument to hide passwordsTeddy Wing
Connect the `-i` argument flag to the renderer. If the arg was passed, hide passwords, otherwise show them. Change `args.first()` to `args.get(1)` because the actual first element is the command executable. Not happy with the condition I'm using here to grab the password file or the STDIN `-`. It doesn't read well at all. It all does work, but this part I want to rewrite to make it easier to read.
2018-03-01Try to match `-i` argumentTeddy Wing
Turn on a `hide_password` boolean variable if an `-i` argument is passed in (haven't tested this yet). This tells us whether the user wants us to hide the password in the selection interface.
2018-02-24Make password line invisibleTeddy Wing
Instead of rendering the password string, hide it while allowing it to be copied. It is identified by the "p: " prefix, but nothing follows that. This allows you to run `passextract` without having to worry about others peering over your shoulder or about screen capture or recording hacks. I'll be adding a command line flag to force you to opt in to this feature, while keeping the old functionality the same.
2018-02-24Recompile with Rust 1.24.0Teddy Wing
$ rustc --version rustc 1.24.0 (4d90ac38c 2018-02-12)
2016-11-14Merge branch 'flush-clipboard-on-quit'v0.3.0Teddy Wing
2016-11-14Cargo: Increase version v0.2.0 -> v0.3.0Teddy Wing
2016-11-14README: Add a note about the clipboard being cleared on quitTeddy Wing
2016-11-14Clear clipboard on quitTeddy Wing
The last thing copied from Passextract will stick around in your clipboard, potentially opening up your password to accidental pasting or a clipboard exploit. Pass deals with this in a nice way, by restoring your clipboard back to what was copied before after a set time delay. Here that same functionality is more difficult to achieve because the Clipboard crate can only deal with strings. So if for example you've copied a file, an image, a program's proprietary type, or some other binary data, it can't be restored with the Clipboard crate. Pass is able to do this because it uses the OS X `pbcopy`/`pbpaste` commands under the hood, which do support binary data. We could do that here I suppose, but it's easier and cross-platform to leverage a library. My heavy-handed solution to the problem of clipboard insecurity is to just overwrite the clipboard with an empty string when Passextract quits. The solution is not ideal because it doesn't preserve your past clipboard entry, and it forces you to keep the Passextract menu open until you paste the copied entry, but it's better than nothing when it comes to keeping the clipboard secure. If there's an error writing to the clipboard, Passextract will refuse to quit.
2016-11-14Cargo.lock: Upgrade to Rust 1.13.0Teddy Wing
Rebuild the program with the latest stable version of Rust.
2016-08-17README: Add information about `g` & `G` mappingsv0.2.0Teddy Wing
2016-08-17Cargo: Increase version v0.1.1 -> v0.2.0Teddy Wing
2016-08-17Merge branch 'g-jump-mappings'Teddy Wing
2016-08-17Add support for `g` and `G` movementsTeddy Wing
`g`: moves the selection to the first option `G`: moves the selection to the last option This allows for faster selection if there are more than 2–3 options. Using `g` still allows `gg` to work since doubling the command doesn't change its meaning.
2016-08-06Cargo: Update version v0.1.0 -> v0.1.1v0.1.1Teddy Wing
2016-08-06Merge branch 'fix-passwords-containing-colon-space'Teddy Wing
2016-08-06strip_key: Fix for values that contain ": "Teddy Wing
Values that contained ": " would not be parsed correctly for copying to the clipboard. If, for example, a password contained ": ", those characters and any following them wouldn't be copied. This change allows such passwords to be copied correctly.
2016-08-06Cargo: Increase version v0.0.1 -> v0.1.0v0.1.0Teddy Wing
2016-08-06README.md: Add usage instructions within the TUITeddy Wing
Enumerate the commands available in the interactive interface and describe what they do.
2016-08-06Add screencastTeddy Wing
Include a Gif screencast displayed in the README.
2016-08-06Add READMETeddy Wing
Include a description of the program, how to use it, install and uninstall instructions, and license information. A placeholder Demo section is also written in where a short screencast is expected to be inserted.
2016-08-06Add license (GPLv3+)Teddy Wing
Also include brief notices in the source files. Not a fan of the huge blocks of text that the FSF recommends.
2016-08-06Add Bash completionTeddy Wing
Create a Bash completion file that refers to the `_pass_complete_entries` function from the `pass` Bash completion file. The same completion options are given as when using `pass show`.
2016-08-06Merge branch 'call-pass'Teddy Wing
2016-08-06parse_options: Add a short sentence of documentationTeddy Wing
2016-08-06Extract options from both `pass` and STDINTeddy Wing
Get option extraction/parsing working both for STDIN and for calls to `pass show`. If no argument is passed to the executable or the first argument is "-", options are read from STDIN. Otherwise, the first argument is passed to `pass show`, the output of which is parsed as options.
2016-08-06Call `pass show` with the given argument and run Passextract on resultTeddy Wing
Temporarily comment out code that deals with STDIN to get this feature working. It complicated things to leave it in right now. Given an argument that isn't "-" (STDIN), we pass that argument to `pass show`. Users correctly get a password prompt from `pass`, and the output from the command gets sent to the Passextract TUI for display in the menu and copying.
2016-08-06Add documentation for `strip_key`v0.0.1Teddy Wing
2016-08-06Make selection arrow movement code DRYTeddy Wing
Remove the duplication of these lines for the `j` and `k` commands by extracting them to a function.
2016-08-06Set window title in knockout textTeddy Wing
Make the title appear in white-on-black knockout text.
2016-08-06Remove unused variable in getchar pattern matchTeddy Wing
Use `_` for the default/general case. Do nothing in this case, just continue looping.
2016-08-06Remote the "test" lineTeddy Wing
Delete this line from the TUI display and adjust the real output lines to be one line higher.
2016-08-06Remove `set_cursor` callsTeddy Wing
Don't move the cursor when the selection is changed. It was flickering, which looked rather distracting. Removing the cursor makes the interface look more fluid and snappy.
2016-08-06Add a test file that can be piped to the programTeddy Wing
2016-08-06Parse options from STDINTeddy Wing
Read STDIN and get all lines that start with "e: ", "u: ", and "p: ". If none are found, exit. These lines get added to the `options` vector which then gets displayed in the TUI. Since the contents of the vector are different from our hard-coded one, use a borrow on the clipboard write call.
2016-08-06Handle `Result` on clipboard `set_contents`Teddy Wing
Change the colour of the selection arrow to red if there's an error and green if the clipboard was written to successfully. The colour only lasts for 100 milliseconds because that's the refresh rate of the loop. This seems to be a nice way to briefly offer a visual notification and automatically return the interface to normal right afterward.
2016-08-06knockout_cell: Use name instead of hex code byteTeddy Wing
Better readability and it's the same. It looked a little darker than white, that's why I changed it, but they're the same.
2016-08-06Copy line value to clipboard when Enter key is pressedTeddy Wing