Commit graph

131 commits

Author SHA1 Message Date
Jakob Schrettenbrunner
e8f7aaccef
Add compact mode (#288) 2022-04-04 20:59:01 -07:00
Ellie Huxtable
d270798277
Update config-rs (#280)
* Update config-rs

Also fix our call to current_dir

This should resolve #195

Thanks @conradludgate for the upstream fix!

* Format
2022-03-17 21:26:57 +00:00
Lucas Burns
7f587418da
Fix history list --cwd errors (#278) 2022-03-13 19:53:49 +00:00
Patrick Jackson
e117b622fe
Update fish bindings. (#265) 2022-02-15 23:21:28 +00:00
Sandro
4223ac6943
Restore bash 4.2 compatibility, only add hook once (#271) 2022-02-15 22:54:25 +00:00
Sandro
7651f89261
Add support for blesh (#267)
* Fix intendation

* Add support for blesh

See https://github.com/akinomyoga/ble.sh/wiki/Manual-%C2%A71-Introduction#user-content-fn-blehook for more details
2022-01-25 18:33:25 +00:00
Ellie
7fa3e1c0f4
Do not crash if the history timestamp is in the future (#250)
Resolve #189

We were throwing an OutOfRangeError. This occurs when you attempt to
convert to a duration, and your input is <0. A value in the future would
have done this. This is especially noticeable during DST...
2021-12-20 05:52:07 +00:00
Mat Jones
133971179e
Add Alt+backspace and Ctrl+u keybinds for deleting by word and by line, respectively (#243)
* remove unused environment var loading entire history into an env var

* Add Alt+backspace and Ctrl+u keybinds for deleting by word and by line, respectively
2021-12-17 12:14:45 +00:00
Mat Jones
059e858a00
remove unused environment var loading entire history into an env var (#242) 2021-12-16 19:45:05 +00:00
Orhun Parmaksız
079d8037ab
Enable help messages for command line arguments (#239) 2021-12-11 22:29:47 +00:00
Conrad Ludgate
87df7d80ec
Fish importing (#234)
* make a start on fish

* fix

* test

* enable fish

* fmt

* update histpath

set up fish init script

* update readme

* cover edge case

* fmt

* fix session variables

Co-authored-by: PJ <me@panekj.dev>

* respect NOBIND

Co-authored-by: PJ <me@panekj.dev>

* fix env var setting

Co-authored-by: PJ <me@panekj.dev>

* fix whitespace

Co-authored-by: PJ <me@panekj.dev>

* add fish to supported shells

Co-authored-by: PJ <me@panekj.dev>
2021-12-11 09:48:53 +00:00
Orhun Parmaksız
0abd063e01
Support generating shell completions (#235)
* Add gen-completions subcommand for generating shell completions

* Update documentation about generating shell completions

* Include the shell completions in release tarball
2021-12-10 23:59:39 +00:00
Conrad Ludgate
4bdf4c40c2
feat: login/register no longer blocking (#216) 2021-12-08 13:37:49 +00:00
Conrad Ludgate
f539f60ae4
chore: add more eyre contexts (#200)
* chore: add more eyre contexts

* chore: rustfmt
2021-11-17 11:50:34 +00:00
Conrad Ludgate
8f91b1410c
chore: some new linting (#201)
* chore: some new linting

* chore: some more linting

* chore: rustfmt
2021-11-13 22:40:24 +00:00
Jannik
27d3d81afe
feat: allow input of credentials from stdin (#185)
* feat: allow credential input from stdin for registration

This changes the options for register to be optional. If arguments are
not given, the program will ask for them interactively.

* feat: allow credential input from stdin for login

* style: apply cargo fmt
2021-09-24 16:24:59 +00:00
Jannik
446ffb88c7
Resolve clippy warnings (#187)
* refactor: nest or patterns

* refactor: fix clippy lint names

* refactor: remove unnecessary wraps

* style: apply cargo fmt
2021-09-24 16:03:37 +00:00
Ellie Huxtable
f55d5cf0bf
Ignore commands beginning with a space, resolve #114 (#123) 2021-05-14 08:31:29 +01:00
Ian Smith
a127408e93
run shellcheck (#97)
* run shellcheck

* Update .github/workflows/shellcheck.yml

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

* shellcheck fixes in which i am highly confident

* shellcheck fixes in which I am less confident - not executing this is fine, right?

* SC2155

In src/shell/atuin.bash line 1:
export ATUIN_SESSION=$(atuin uuid)
       ^-----------^ SC2155: Declare and assign separately to avoid masking return values.

* shellcheck doesn't support zsh, per https://github.com/koalaman/shellcheck/wiki/SC1071

* yaml fix

* gotta checkout our code, too

* yaml fix

* action spelling

* exclude .zsh

* Shellcheck doesn't support zsh, per

https://github.com/koalaman/shellcheck/wiki/SC1071, and the ignore: param
in ludeeus/action-shellcheck only supports _directories_, not _files_.
So instead, we manually add any error the shellcheck step finds in the
file to the above line ...

* comment all the ignores

* Update src/shell/atuin.bash

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

* new zsh plugin shellcheck errors

* new zsh plugin shellcheck errors, pt 2

Co-authored-by: Conrad Ludgate <oon@conradludgate.com>
Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
2021-05-14 08:31:15 +01:00
Ellie Huxtable
d3059af815
Release v0.7.0 (#103)
* Release v0.7.0

- Update all the crate versions
- Update the demo gif
- Write a changelog
- Adjust the title of the search screen (has the old name still)
- Adjust the colours of the quick-jump numbers (sadly invisible on some
  colour schemes as dark grey :/)

* Update README, default config file, docs

* Link usernames

* Trigger release workflow upon release creation, as well as tags
2021-05-10 21:28:07 +01:00
Yuvi Panda
c02934d184
Implement 'quick access' via Alt-<n> (#79)
* Implement 'quick access' via numbers

Puts numbers 0-9 next to commands *above* current selection.
Ctrl-<number> should activate them - but since Ctrl-<num> are
reserved by terminal, this does not currently work. Need to
find different sets of keyboard shortcuts.

Numbers are *above* current selection, since the user must use
the arrow keys to go over the commands below current selection
before reaching selection.

* Use Alt+<n> to select last nth command

* Don't print Opt+0

Same as <Enter>

* Run rustfmt

* Simplify code

- Use ? operator for getting selected item
- Use RangeInclusive to check if character pressed is a number
2021-05-10 12:55:29 +01:00
Yuvi Panda
f0463326fa
Use format! instead of string concat (#94)
Cleaner
2021-05-09 22:33:57 +01:00
Conrad Ludgate
de2e34ac50
some changes 🤷 (#83)
* make everything a cow

* fmt + clippy
2021-05-09 21:17:24 +01:00
Ellie Huxtable
e43e5ce74a
Add logout, only login if not already logged in (#91)
Also:
- Ensures that a key is generated as soon as a user registers!
- Ensures that "atuin key" will generate a key if needed, and doesn't
  double base64 encode data

And a few other little fixes :)

Resolves #85
Resolves #86
2021-05-09 20:11:17 +01:00
Will Fancher
623df9064e
Add Emacs style ctrl-g, ctrl-n, and ctrl-p (#77) 2021-05-09 18:43:55 +00:00
Conrad Ludgate
4b9ff801a6
fix some bugs (#90)
* fix some bugs

* format
2021-05-09 19:12:41 +01:00
Ellie Huxtable
bd4db1fa03
Allow listing or searching with only the command as output (#89)
Should be useful for using other tools, such as FZF
2021-05-09 18:01:21 +00:00
Ellie Huxtable
d39e3cb479
Fix bash integration to set the session (#88) 2021-05-09 18:47:41 +01:00
Conrad Ludgate
090120a834
Generic Importer Trait (#71)
* initial importer trait

* appease linters

* improve file handling. fixes #66

* use size hint

* format + comment

* update serde rename mess

* tested 😎 🚀

* small formatting
2021-05-09 18:34:15 +01:00
Jamie Quigley
725ea9b16b
Fix resh importer, and change error handling method (#82) 2021-05-09 15:20:39 +01:00
Yuvi Panda
c69f6ee3f9
Run shellcheck on bash file (#81)
Ref #64
2021-05-09 13:12:09 +01:00
Yuvi Panda
a04865d9d8
Use an enum for dialect (#80) 2021-05-09 11:39:39 +01:00
Yuvi Panda
19bd00f620
Support fulltext search of commands (#75) 2021-05-09 08:33:56 +01:00
Ellie Huxtable
07c5461013
Retain the query entered into the TUI (#76)
If no results are found, and the user presses enter, keep the query!

Resolves #73
2021-05-08 22:10:40 +01:00
Jamie Quigley
bb086808b1
Add importer for resh_history file (#69)
* Added resh history importer

* Silence trivial clippy warnings for the PR CI
2021-05-08 17:29:46 +01:00
Jamie Quigley
2e5f16a6a3
Add Ctrl-d as a way of exiting the TUI (#65) 2021-05-08 14:04:33 +00:00
Ellie Huxtable
8bd4d12cfa
Add ATUIN_NOBIND (#62)
* Add ATUIN_NOBIND

* Update docs/key-binding.md

`<kbd>`, what magic

Co-authored-by: bl-ue <54780737+bl-ue@users.noreply.github.com>

Co-authored-by: bl-ue <54780737+bl-ue@users.noreply.github.com>
2021-05-08 14:17:22 +01:00
Ellie Huxtable
99f26ff383
Allow using Ctrl-c to exit (#53) 2021-05-08 00:02:39 +01:00
Ellie Huxtable
4df77c5201 Release v0.6.4
- Fix version
- Only build for two targets
2021-04-26 18:36:19 +01:00
Ellie Huxtable
646fec893e Fix pipeline
Lol no more committing to main for me
2021-04-26 12:05:20 +01:00
Ellie Huxtable
7b5c3d543d Support bash, resolves #3 2021-04-26 11:57:30 +01:00
Ellie Huxtable
156893d774
Update docs, unify on SQLx, bugfixes (#40)
* Begin moving to sqlx for local too

* Stupid scanners should just have a nice cup of tea

Random internet shit searching for /.env or whatever

* Remove diesel and rusqlite fully
2021-04-25 17:21:52 +00:00
Ellie Huxtable
4a50ce3666 Bugfixes, show time ago, perf improvements
Also allow unique listing and more ergonomic cwd usage
2021-04-21 21:26:44 +01:00
Ellie Huxtable
a21737e2b7
Use cargo workspaces (#37)
* Switch to Cargo workspaces

Breaking things into "client", "server" and "common" makes managing the
codebase much easier!

client - anything running on a user's machine for adding history
server - handles storing/syncing history and running a HTTP server
common - request/response API definitions, common utils, etc

* Update dockerfile
2021-04-20 20:53:07 +00:00
Ellie Huxtable
34888827f8
Switch to Warp + SQLx, use async, switch to Rust stable (#36)
* Switch to warp + sql, use async and stable rust

* Update CI to use stable
2021-04-20 16:07:11 +00:00
Ellie Huxtable
f6de558070
Optimise docker (#34)
* Smaller dockerfile, better error handling

* Add config dir
2021-04-14 17:40:50 +00:00
Ellie Huxtable
9c8d426184
Add dockerfile (#32) 2021-04-13 21:31:41 +00:00
Ellie Huxtable
5751463942
Add history sync, resolves #13 (#31)
* Add encryption

* Add login and register command

* Add count endpoint

* Write initial sync push

* Add single sync command

Confirmed working for one client only

* Automatically sync on a configurable frequency

* Add key command, key arg to login

* Only load session if it exists

* Use sync and history timestamps for download

* Bind other key code

Seems like some systems have this code for up arrow? I'm not sure why,
and it's not an easy one to google.

* Simplify upload

* Try and fix download sync loop

* Change sync order to avoid uploading what we just downloaded

* Multiline import fix

* Fix time parsing

* Fix importing history with no time

* Add hostname to sync

* Use hostname to filter sync

* Fixes

* Add binding

* Stuff from yesterday

* Set cursor modes

* Make clippy happy

* Bump version
2021-04-13 19:14:07 +01:00
Ellie Huxtable
9f16f76bd8 Update config 2021-04-09 12:40:21 +01:00
dependabot[bot]
b5845bc3a1
Bump rusqlite from 0.24.2 to 0.25.0 (#30)
* Bump rusqlite from 0.24.2 to 0.25.0

Bumps [rusqlite](https://github.com/rusqlite/rusqlite) from 0.24.2 to 0.25.0.
- [Release notes](https://github.com/rusqlite/rusqlite/releases)
- [Changelog](https://github.com/rusqlite/rusqlite/blob/master/Changelog.md)
- [Commits](https://github.com/rusqlite/rusqlite/compare/v0.24.2...v0.25.0)

Signed-off-by: dependabot[bot] <support@github.com>

* Fixes for new rusqlite (mostly the new Params trait)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ellie Huxtable <e@elm.sh>
2021-04-06 10:59:07 +00:00
Ellie Huxtable
c9579cb9ca
Implement server (#23)
* Add initial database and server setup

* Set up all routes, auth, etc

* Implement sessions, password auth, hashing with argon2, and history storage
2021-03-21 20:04:39 +00:00
Ellie Huxtable
716c7722cd
Add TUI, resolve #19, #17, #16 (#21) 2021-03-20 00:50:31 +00:00
Ellie Huxtable
61607e023f
Add config file support (#15) 2021-03-10 21:24:08 +00:00
Ellie Huxtable
a342dc58bb BUFFER -> LBUFFER 2021-02-16 21:34:33 +00:00
Ellie Huxtable
41f072a8b4
Add init command (#12)
* Add init command

This makes setting up the shell part of A'tuin much easier. Eval the
output of "atuin init".

* Update readme, add up binding
2021-02-15 23:33:30 +00:00
Ellie Huxtable
e980973ba0 Satisfy clippy 2021-02-15 21:36:07 +00:00
Ellie Huxtable
ba086f909d Allow listing by current directory and/or session 2021-02-15 21:30:19 +00:00
Ellie Huxtable
48198cdfe9 Fix import message 2021-02-15 20:33:39 +00:00
Conrad Ludgate
68c5ca9ece
use database trait instead of sqlite impl (#10)
small improvements
2021-02-15 09:07:49 +00:00
Ellie Huxtable
b10d302e57 Bump version 2021-02-14 22:33:22 +00:00
Ellie Huxtable
851285225f
Add stats command (#9)
* Add stats command

For example

atuin stats day yesterday
atuin stats day last friday
atuin stats day 01/01/21

* Output tables, fix import blanks
2021-02-14 22:12:35 +00:00
Conrad Ludgate
6636f5878a
zsh bin is sometimes /usr/bin/zsh or might be elsewhere too (#8)
zsh also uses ~/.zsh_history

get better errors for not found history file
2021-02-14 18:40:51 +00:00
Ellie Huxtable
3323b3079a Add test for extended parsing 2021-02-14 18:10:56 +00:00
Conrad Ludgate
bae59474ee
a few more tiny touch ups (#7)
* a few more tiny touch ups

* all praise clippy
2021-02-14 18:00:41 +00:00
Conrad Ludgate
72c5ea7914
tidy some stuff (#6) 2021-02-14 17:18:02 +00:00
Ellie Huxtable
8af0034ae0
Neaten the history listing code (#5)
I'd like to reduce the amount of SQL in the database code. Make it as
generic as possible, and later on perhaps expose a generic "execute"
function.

This function can be used by analysis commands, and the SQL can live
there - rather than database.rs being a huge bag of SQL.
2021-02-14 16:53:18 +00:00
Ellie Huxtable
660edfefed Make pedantic clippy happy 2021-02-14 15:35:08 +00:00
Ellie Huxtable
d128297e67 Make clippy annoying asf + add server 2021-02-14 13:28:01 +00:00
Ellie Huxtable
8697aceb72 Fix clippy issues 2021-02-13 23:20:16 +00:00
Ellie Huxtable
e7d234e305 Remove panic 2021-02-13 22:58:31 +00:00
Ellie Huxtable
d8aacb4a80 Add fuzzy history search and distinct arg 2021-02-13 22:06:27 +00:00
Ellie Huxtable
fbaeedbba4 Minor fixes 2021-02-13 20:55:06 +00:00
Ellie Huxtable
440c4fc233 Add sessions 2021-02-13 20:24:22 +00:00
Ellie Huxtable
099afe66ec Implement history import 2021-02-13 19:37:31 +00:00
Ellie Huxtable
7e60ace610 Record command exit code and duration 2021-02-13 17:02:52 +00:00
Ellie Huxtable
50ebe68d9f Begin import 2021-02-13 13:20:39 +00:00
Ellie Huxtable
07aceb3dd4 Rename 2021-02-13 12:58:40 +00:00
Conrad Ludgate
7dd2d02238
fix: help text 2020-10-05 17:34:28 +01:00
Conrad Ludgate
28287a6303
feat: use directories project data dir
chore: clean up some things
2020-10-05 17:20:48 +01:00
Conrad Ludgate
34038f6aaa
chore: use structopt wrapper instead of building clap by hand 2020-10-05 11:52:03 +01:00
Ellie Huxtable
27b9a94305 Initial commit
Currently writing shell history to a sqlite db :)

Could do with:

1) store exit code
2) store duration
3) tidy up main
4) ...remote stuff
2020-10-05 00:59:28 +01:00