| Commit message (Collapse) | Author |
|
There are still the `clippy` warnings, but they are for a future date.
|
|
|
|
This commit also remove another load of unneeded features.
|
|
They will not be marked by rustc/cargo as unused, and as atuin doesn't
expose an API all of them _should_ be `pub(crate)`
|
|
That helps remove duplicated code and rustc/cargo will now also show
dead code correctly.
|
|
|
|
|
|
|
|
(#3234)
It feels much, much nicer this way. This has also been asked for pretty
consistently since we made inline rendering the default. Now we can have
everything :)
Maintains a shadow vt100 renderer so that we can restore the terminal
state upon popup close. This happens on a background thread, so our
impact on terminal performance should still be super minimal, if
anything
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
|
A combined binary was an early dev decision, when I thought most users
would be self hosting. It is now clear that in actual fact, most users
do not self host. So let's avoid forcing every user to have a copy of
the server literally linked in, and let's stop building server deps over
and over.
The deployment for this shouldn't change. `dist` will build a binary for
this automatically, and will also add it to the installer. The latter is
perhaps something we should explore changing too!
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
|
This adds PowerShell support š
I built this script around @lzybkr's
[prototype](https://github.com/atuinsh/atuin/issues/84#issuecomment-1689168533),
so I added him as co-author (I hope that's ok). I wouldn't know where to
start without his contribution.
I'm not a PowerShell expert, so this was a nice opportunity to learn
some stuff. I think it's ok, but I would appreciate if someone more
knowledgeable in the matter could review this though.
It would be nice if other PowerShell users could test this with their
configs and report any issues. I wouldn't be surprised if there are some
remaining bugs or missing features.
Fixes #84
## Installation
If you'd like to test this, you can install the `atuin` from this PR by
running:
```powershell
cargo install --git https://github.com/ltrzesniewski/atuin.git --branch powershell-pr
```
Then, add the following to your PowerShell profile file (whose path is
in `$PROFILE`) and restart the shell:
```powershell
atuin init powershell | Out-String | Invoke-Expression
```
This requires `atuin` to be in the path and the
[PSReadLine](https://github.com/PowerShell/PSReadLine) module to be
installed, which is the case by default.
## Tests
I tested this on the following:
- PowerShell 7.4.6 / PSReadLine 2.3.5 / Windows (the latest one)
- PowerShell 7.5.1 / PSReadLine 2.3.6 / Windows (the latest one)
- PowerShell 5.1.22621.4391 / PSReadLine 2.0.0 / Windows (the one
shipped with Windows)
- PowerShell 7.4.6 / PSReadLine 2.3.5 / Ubuntu WSL (strangely, it didn't
behave exactly like the Windows version)
- PowerShell 7.5.1 / PSReadLine 2.3.6 / Ubuntu WSL
I also tested this with and without my custom [Oh My
Posh](https://ohmyposh.dev/) prompt. It works fine in both cases,
~except that since my OMP config contains `"newline": true`, my prompt
is multiline and shifts downwards by a single line on each `atuin search
-i` invocation. This can be adjusted with the
`$env:ATUIN_POWERSHELL_PROMPT_OFFSET` environment variable (e.g. I set
mine to `-1` to account for the additional prompt line).~ (this variable
is now auto-initialized).
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
---------
Co-authored-by: Jason Shirk <jasonsh@microsoft.com>
|
|
* Run 'atuin-<subcmd>' if present when a given subcommand is not recognized
* Send errors to stderr
* Use String instead of OsString for external subcommands
* Remove unused import
* Move external subcommand handling up a level
* Clippy
|
|
I'd like to tidy up the root a little, and it's nice to have all the
rust crates in one place
|
|
|
|
* feat: support syncing aliases
This is definitely not yet finished, but works for zsh right now.
TODO:
1. Support other shells
2. Cache the alias generation, so we don't have to do a bunch of work at
shell init time
* correct imports
* fix clippy errors
* fix tests
* add the other shells
* support xonsh
* add delete
* update rust, then make clippy happy once more
* omfg fmt too
|
|
* fix(windows): disables unix specific stuff for windows (windows has this on by default iirc)
* refactor: use windows not target_family
|
|
This ensures no other user can read shell history data
Resolves #1250
|
|
* Stop running triggers on history delete
* Move to account management dir
* Alter trigger function to only run for inserts
* wip
* Add atuin account subcommands, and re-org delete
* Clarify docs
* Delete silly dupe migration
* Um where did this come from
* Oops, insert only plz
|
|
* Try different workspace structure
Move main crate (atuin) to be on the same level with other crates in
this workspace
* extract common dependencies to the workspace definition
* fix base64 v0.21 deprecation warning
* questionable: update deps & fix chrono deprecations
possible panic sites are unchanged, they're just more visible now
* Revert "questionable: update deps & fix chrono deprecations"
This reverts commit 993e60f8dea81a1625a04285a617959ad09a0866.
|
|
* Add uuid_v7
* Actually use the new uuid
* Add a test to ensure all uuids are unique, even in a tight loop
* Make clippy happy
|
|
* 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>
|
|
|
|
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
|
|
* 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>
|
|
|
|
* start of importer refactor
* fish
* resh
* zsh
|
|
* use feature flags
* fmt
* fix features
* update ci
* fmt
Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
|
|
* refactor commands for better separation
* fmt
|
|
|
|
|
|
|
|
* Add gen-completions subcommand for generating shell completions
* Update documentation about generating shell completions
* Include the shell completions in release tarball
|
|
|
|
* chore: add more eyre contexts
* chore: rustfmt
|
|
* chore: some new linting
* chore: some more linting
* chore: rustfmt
|
|
* 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
|
|
* refactor: nest or patterns
* refactor: fix clippy lint names
* refactor: remove unnecessary wraps
* style: apply cargo fmt
|
|
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
|
|
Should be useful for using other tools, such as FZF
|
|
|
|
|
|
* 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
|
|
Also allow unique listing and more ergonomic cwd usage
|
|
* 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
|
|
* Switch to warp + sql, use async and stable rust
* Update CI to use stable
|
|
* 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
|
|
* Add initial database and server setup
* Set up all routes, auth, etc
* Implement sessions, password auth, hashing with argon2, and history storage
|
|
|
|
|
|
* 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
|