aboutsummaryrefslogtreecommitdiffstats
path: root/crates/turtle/src/command/mod.rs (unfollow)
Commit message (Collapse)Author
33 hourschore(treewide): Remove `cargo` warnings to 0Benedikt Peetz
There are still the `clippy` warnings, but they are for a future date.
41 hourschore(treewide): Cleanup themesBenedikt Peetz
2 daysfeat(server): Really make users stateless (with tests)Benedikt Peetz
This commit also remove another load of unneeded features.
3 dayschore: Remove all `pub`sBenedikt Peetz
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)`
3 dayschore: Move everything into one big crateBenedikt Peetz
That helps remove duplicated code and rustc/cargo will now also show dead code correctly.
3 dayschore: Turn all `allow`s into into `expect`sBenedikt Peetz
6 daysfeat: Capture command output + expose to new `atuin_output` tool (#3510)Michelle Tilley
2026-05-11chore: Rename 'atuin hex' to 'atuin pty-proxy' (#3473)Michelle Tilley
2026-03-09feat: use pty proxy for rendering tui popups without clearing the terminal ↵Ellie Huxtable
(#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
2026-01-28feat: move atuin-server to its own binary (#3112)Ellie Huxtable
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
2025-10-23feat Add PowerShell support (#2543)Lucas Trzesniewski
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>
2025-04-02feat: Binaries as subcommands (#2661)Michelle Tilley
* 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
2024-04-18chore: move crates into crates/ dir (#1958)Ellie Huxtable
I'd like to tidy up the root a little, and it's nice to have all the rust crates in one place
2024-02-29feat(nushell): add nushell completion generation (#1791)Remmy Cat Stock
2024-02-15feat: support syncing aliases (#1721)Ellie Huxtable
* 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
2024-01-14fix(windows): disables unix specific stuff for windows (#1557)YummyOreo
* fix(windows): disables unix specific stuff for windows (windows has this on by default iirc) * refactor: use windows not target_family
2024-01-12fix(perm): set umask 077 (#1554)Ellie Huxtable
This ensures no other user can read shell history data Resolves #1250
2023-05-17Restructure account commands to account subcommand (#984)Ellie Huxtable
* 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
2023-04-14Workspace reorder (#868)Vladislav Stepanov
* 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.
2023-04-11Switch to uuidv7 (#864)Ellie Huxtable
* 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
2022-12-24Rework `atuin init` (#652)Jamie Quigley
* 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-10-18Upgrade clap (#568)Conrad Ludgate
2022-10-04Add contributors command (#550)Ellie Huxtable
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-09-25Allow stateless commands to be run without config/database (#544)c-14
* 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-05-13Allow to build atuin server without client (#404)Jakub Jirutka
2022-05-09Importer V3 (#395)Conrad Ludgate
* start of importer refactor * fish * resh * zsh
2022-04-22feature-flags (#328)Conrad Ludgate
* use feature flags * fmt * fix features * update ci * fmt Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
2022-04-21refactor commands for better separation (#313)Conrad Ludgate
* refactor commands for better separation * fmt
2022-04-12goodbye warp, hello axum (#296)Conrad Ludgate
2022-04-07Update to clap 3.1.x (#289)Jamie Quigley
2021-12-11Enable help messages for command line arguments (#239)Orhun Parmaksız
2021-12-10Support generating shell completions (#235)Orhun Parmaksız
* Add gen-completions subcommand for generating shell completions * Update documentation about generating shell completions * Include the shell completions in release tarball
2021-12-08feat: login/register no longer blocking (#216)Conrad Ludgate
2021-11-17chore: add more eyre contexts (#200)Conrad Ludgate
* chore: add more eyre contexts * chore: rustfmt
2021-11-13chore: some new linting (#201)Conrad Ludgate
* chore: some new linting * chore: some more linting * chore: rustfmt
2021-09-24feat: allow input of credentials from stdin (#185)Jannik
* 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-24Resolve clippy warnings (#187)Jannik
* refactor: nest or patterns * refactor: fix clippy lint names * refactor: remove unnecessary wraps * style: apply cargo fmt
2021-05-09Add logout, only login if not already logged in (#91)Ellie Huxtable
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-09Allow listing or searching with only the command as output (#89)Ellie Huxtable
Should be useful for using other tools, such as FZF
2021-05-09Support fulltext search of commands (#75)Yuvi Panda
2021-04-26Support bash, resolves #3Ellie Huxtable
2021-04-25Update docs, unify on SQLx, bugfixes (#40)Ellie Huxtable
* 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-21Bugfixes, show time ago, perf improvementsEllie Huxtable
Also allow unique listing and more ergonomic cwd usage
2021-04-20Use cargo workspaces (#37)Ellie Huxtable
* 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-20Switch to Warp + SQLx, use async, switch to Rust stable (#36)Ellie Huxtable
* Switch to warp + sql, use async and stable rust * Update CI to use stable
2021-04-13Add history sync, resolves #13 (#31)Ellie Huxtable
* 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-03-21Implement server (#23)Ellie Huxtable
* Add initial database and server setup * Set up all routes, auth, etc * Implement sessions, password auth, hashing with argon2, and history storage
2021-03-20Add TUI, resolve #19, #17, #16 (#21)Ellie Huxtable
2021-03-10Add config file support (#15)Ellie Huxtable
2021-02-15Add init command (#12)Ellie Huxtable
* 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