Commit Graph

142 Commits

Author SHA1 Message Date
Tobias Hunger
7e7dd63966
fish: Fix atuin init for the fish shell (#699) 2023-02-14 22:21:22 +00:00
Ellie Huxtable
1f7d3a34e7
Check before unwrapping in stats (#717)
Should fix the error @pdecat found!
2023-02-14 09:45:55 +00:00
Johannes Baiter
5cb43772dc
Add history_filter cfg to exclude commands from history (#515) (#716)
Adds a new `history_filter` setting through which users can specify a
list of regular expressions that match commands that should not be
recorded in the history.
2023-02-14 07:14:05 +00:00
Trygve Aaberge
2cec7ba677
Allow using existing key file on login (#688)
* Allow logging in without overwriting existing key file

If the given key on login in empty, keep the existing key file rather
than overwriting it with an empty file. This is useful if you log out
and want to log in again and still use the same key, or if you have
copied over the key file rather than providing it as input.

* Refuse logging in if key is empty

Before the previous commit, an empty key file would be created if key
wasn't specified, and after the previous commit, the key file would not
be created if the key wasn't specified and stay empty if it was empty.

Now the log command checks the key file if a key is not specified and
exits with an error message if either the key file couldn't be opened or
is empty. If a key is specified, the key file is just created with it as
before.

* Validate the key on login, create new if no exists

After reading the key either from an existing key file, or from the user
input, validate that the provided key is valid (rather than just
checking that it isn't empty). If no key file exists, create a new key
instead of erroring out.
2023-02-10 19:35:38 +00:00
Conrad Ludgate
deb7c19093
stats (#707) 2023-02-10 18:58:02 +00:00
Ellie Huxtable
2672f78dda
make update_needed check lazy (#706) 2023-02-10 18:14:48 +00:00
Conrad Ludgate
edda1b741a
crossterm support (#331)
* crossterm v2

* patch crossterm

* fix-version

* no more tui dependency

* lints
2023-02-10 17:25:43 +00:00
Conrad Ludgate
5611bc59f5
display mnemonic key (#694) 2023-02-06 19:22:58 +00:00
Ellie Huxtable
3abc96fafe
Try to make clippy happy 🥺 (#686)
* Try to make clippy happy 🥺

* Fmt

* I missed one (can't run clippy locally on airport wifi...)
2023-02-06 11:59:01 +00:00
Baptiste
893a395f12
feat(history): Add new flag to allow custom output format (#662)
* feat(history): Add new flag to allow custom output format

* more efficient formatting

* add user and host

* docs

Co-authored-by: Conrad Ludgate <conrad.ludgate@truelayer.com>
2023-01-26 10:57:52 +00:00
Ellie Huxtable
a8ed8f1325
Update contributors.rs
sorry @conradludgate 😭
2023-01-24 19:50:51 +00:00
Baptiste
582189336d
chore(#621): Exit atuin when pressing down arrow on most recent entry (#659)
Signed-off-by: Baptiste Roux <arte.but.posix@gmail.com>

Signed-off-by: Baptiste Roux <arte.but.posix@gmail.com>
2023-01-10 22:46:33 +00:00
Jamie Quigley
a5616aea8f
Rework atuin init (#652)
* Rework `atuin init`

This allows users to disable the CTRL-R and Up Arrow bindings,
independently from one another

* Document --disable-{ctrl-r,up-arrow}

* Apply suggestions from code review

Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>

Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
2022-12-24 17:18:44 +00:00
Patrick Decat
ed394afa82
Allow overriding filter and search modes from CLI (#635)
* Allow overriding filter and search modes from CLI arguments

* Use session filter mode for bash up key binding

* We precisely do not want to add quotes here so that all arguments are properly passed

* Add --shell-up-key-binding hidden command argument and filter_mode_shell_up_key_binding configuration option to allow customizing the filter mode used when atuin is invoked from a shell up-key binding

* Correct up binding for zsh

Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
2022-12-18 18:26:09 +00:00
Ellie Huxtable
4c6a287f4d
Switch to using ATUIN_LOG instead of RUST_LOG (#642)
* Switch to using ATUIN_LOG instead of RUST_LOG

* Stop clippy complaining

* I should know better - clippy is never happy :(
2022-12-16 18:37:45 +00:00
Patrick Jackson
5b22f29329
Fix session history (#620) 2022-12-16 17:15:27 +00:00
Patrick Decat
1d9ce94f96
Add support for some additional keys in interactive mode (#634)
* Ignore tab key in interactive mode

* Support home and end keys in interactive mode

* Support delete key in interactive mode
2022-12-03 10:51:15 +00:00
Patrick Jackson
478af1fa0f
Handle multiline commands in fish shell (#623) 2022-11-19 21:05:25 +00:00
Ellie Huxtable
f38ef12581
Release v12 (#599)
* Release v12

* Add new contributors
2022-11-06 15:30:21 +00:00
Sam Lanning
4768b16b74
Add setting for keeping typed query when exiting (#451)
* Add option for keeping typed query on escape

fixes #422

* chore: Address duplicate if statement blocks
2022-11-06 07:34:14 +00:00
Sam Lanning
d87abbd3dc
fix #596: Avoid drawing a command section beyond the width of the list (#597)
* fix #596: Avoid drawing a command section beyond the width  of the list

* chore: remove unneeded parentheses
2022-11-06 07:32:35 +00:00
Ellie Huxtable
e297b98f72
Add local event log storage (#390)
* Add event data structures

This adds the data structures required to start syncing events, rather
than syncing history directly.

Adjust event

Fix

Add event data structure to client

* Add server event table sql

* Add client event table migration

Adjust migration

* Insert into event table from client

* Add event merge function

Right now this just ensures we have the right amount of events given the
history we have

BUT it will also be used to merge CREATE/DELETE events, resulting in
history being deleted :)

* Make CI happy

* Adjust

* we don't limit history length any more

* Update atuin-client/src/database.rs

Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>

* fix usage

* Fix typo

* New Rust, new clippy stuff

Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
2022-11-04 09:08:20 +00:00
TymanWasTaken
6e3304b485
Exit with return code 1 when no results are found in atuin search command (#489)
* Exit with return code 1 when no results are found in `atuin search` command

* Remove random whitespace
2022-11-02 20:47:16 +00:00
Benjamin Vergnaud
8b9aae7076
docs: add more details about date parsing in the stats command (#579)
* docs: add more details about date parsing in the stats command

* chore: Replace chrono-english crate with interim
2022-10-21 20:21:14 +01:00
Patrick Jackson
90d089c73e
Respect fish shell's builtin private mode (#577) 2022-10-21 06:35:40 +01:00
Conrad Ludgate
5e2c438dab
Upgrade clap (#568) 2022-10-18 09:50:22 +01:00
Ellie Huxtable
f03f6e9ad7
Add automatic update checking (#555)
* Add automatic update checking

* Add setting to opt out of update checks

* Document options

* no

* no

* also no

* Make clippy happy

* Update atuin-client/src/settings.rs

Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>

* fix features

Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
Co-authored-by: Conrad Ludgate <conrad.ludgate@truelayer.com>
2022-10-14 10:59:21 +01:00
Jacob Evan Shreve
0f77f8ae72
Fix compatability with fish vi key bindings (#541)
PR #420 addressed the existence of pagination in a fish prompt by trying
to track when pagination was enabled and disabled. This introduced
atuin-specific bindings for common keys: `\t`, `\e`, `\r`, and `\n`
which exports a variable and informs the `_autiun_search` function to
not show the TUI.

Fish has a commandline function that will instead tell you whether
pagination is enabled so the user doesn't need to keep track of that
state. This PR uses this function, `commandline -P` to replace the prior
TUI supression scheme. Removing these extra function calls allows us to
remove the additional bindings which were breaking fish vi key bindings.

Replacing the value for `bind -M insert \e` completely breaks vi mode by
blocking the user from exiting insert mode. By removing these extra
binds, this PR restores fish vi mode compatability.
2022-10-07 20:31:30 -07:00
Ellie Huxtable
634b3e375f
Add contributors command (#550)
Inspired by the ClickHouse system contributors table, I thought this is
a nice extra way to say thank you to all those who put time and energy
into our project
2022-10-04 21:56:49 -07:00
c-14
f93da455a3
Clear RBUFFER when accepting output from atuin (#545)
Since we pass $BUFFER to atuin search, retaining RBUFFER (the part of
the buffer to the right of the cursor) probably doesn't make sense. The
advantage of setting RBUFFER and LBUFFER separately instead of setting
BUFFER is that the cursor is positioned after the end of LBUFFER instead
of remaining where it was before atuin was called.
2022-09-25 09:13:38 -07:00
c-14
045c87fbcd
Allow stateless commands to be run without config/database (#544)
* Allow stateless commands to be run without config/database

Fixes an issue where gen-completions fails trying to create a config
directory in restrained build environments/distribution.

* move non-db commands up to core subcommands

* re-add lost lines

* re-add lost lines

Co-authored-by: Conrad Ludgate <conrad.ludgate@truelayer.com>
2022-09-25 11:15:33 +01:00
Conrad Ludgate
db2a00f456
custom history list (#524)
* use custom list impl

* fmt

* segment

* clean up

* fix offsets

* fix scroll back space

* small touch ups
2022-09-12 20:39:41 +01:00
Conrad Ludgate
e8c8415278
update default layout (#523)
* update layouts

* add other duration changes

* fmt :(
2022-09-12 20:19:22 +01:00
Conrad Ludgate
702a644f68
better cursor search (#473)
* improve cursor code

* proper unicode support

* refactor and test

* fmt

* clippy

* move methods to state

* refactor search modules
2022-09-11 16:24:16 +01:00
Conrad Ludgate
474170fd90
hide errors for #516 (#518) 2022-09-01 09:07:10 +00:00
Jamie Quigley
aa556fa088
Fix atuin crashing on commands that start with -- (#509)
The use of `--` in the shell scripts prevents clap attempting to parse
the command name as a flag, in the case that it starts with `--`.
2022-08-23 17:26:42 +01:00
Frank Hamand
ab994e3c82
Batch key handling (#448)
* Batch input events and only query once they are finished

This simplifies the code a lot (no more bounded channel) and yields
the same performance improvement with scroll wheel spam while fixing copy/paste

* Clippy

* fmt

* Use blocking wait before emptying events channel

This was causing a busy loop

* Update query on filter mode change
2022-06-13 09:33:05 +01:00
Sam Edwards
e0ba60fc3c
Enhancements to bash init script (#445) 2022-06-07 21:28:06 +00:00
Frank Hamand
3f5350dee6
[feature] Add scroll wheel support to interactive history search (#435) 2022-06-04 10:16:12 +01:00
b3nj5m1n
9ac0c60cc4
Implement cursor (#412) 2022-05-24 20:44:12 +00:00
Satyarth Sampath
119ab9e007
Adds password prompt for register and login (#424)
* Adds the rpassword dependency

* Provides only a prompt based input for login and register with a hidden prompt for password

* Adds option based inputs for login and register commands

* Password can also be provided as an option

Co-authored-by: Satyarth <satyarth.sampath@gojek.com>
2022-05-24 14:25:48 +01:00
noyez
e5df809dd2
Noyez zsh histdb import (#393)
* Attempting to implement zsh-histdb import

Import compiles passes tests, but doesn't run b/c of async runtime.
zsh-histdb uses sqlite, and sqlx-rs is async, but import code is sync.

* More working on importing histdb

* Rewriting tests and using `Vec<u8>` instead of `String`

 - Rewriting tests to eliminate depencency on local file system
 - Using `Vec<u8>` for command strings instead of `String` to eliminate
   the utf8 errors i was seeing previously. Seems to be working.

* Running fmt

Co-authored-by: Bradley Noyes <b@noyes.dev>
2022-05-20 07:36:53 +01:00
Sam Lanning
b08e254343
Improve default fish keybindings (#420)
binding on "up" can conflict with the default fish keybindings as when
in tab-completion mode, you are supposed to be able to use arrow keys
to navigate the grid of suggestions, however pressing "up" will open
the tui instead.

This attempts to work around it by tracking when the user is probably in
a tab completion mode by setting a variable that we use to determine
whether to open atuin or perform the default fish up action
2022-05-20 07:25:36 +01:00
Jakub Jirutka
ab294cde34
Don't pollute shell environment - remove 'id' variable (#408) 2022-05-16 22:13:17 +01:00
Jakub Jirutka
14b30606a5
Allow to build atuin server without client (#404) 2022-05-13 06:57:27 +01:00
Conrad Ludgate
1d030b9d32
Importer V3 (#395)
* start of importer refactor

* fish

* resh

* zsh
2022-05-09 07:46:52 +01:00
Luke Baker
e9d2ec4bf7
Add ctrl-k and ctrl-j for up and down (#394) 2022-05-08 09:03:00 +01:00
Satyarth Sampath
4a839dab44
Adds stats summary (#384)
* stat command parsing is handled without subcommands

* Updates match clause based on PR review

Co-authored-by: Conrad Ludgate <oon@conradludgate.com>

* updates value returned by match based on PR review

* adds vscode to gitignore

* use an if statement instead of match

Co-authored-by: Satyarth <satyarth.sampath@gojek.com>
Co-authored-by: Conrad Ludgate <oon@conradludgate.com>
2022-05-03 15:49:27 +01:00
Jakob-Niklas See
9d2e9ea174
Search: Allow specifiying the limited of returned entries (#364)
This patch adds a new option to the search command, allowing to limit
the returned results from the database.
2022-04-28 18:54:16 +01:00
Jakub Panek
93ab4e7842
ignore JetBrains IDEs, tidy-up imports (#348)
* ignore JB IDEs

* tidy-up imports

* add rustfmt config
2022-04-28 18:53:59 +01:00