aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
* fix(bash,zsh): fix quirks on search cancel (#1483)Koichi Murase2024-01-02
| | | | | | | | | | | | | | | * fix(bash): preserve the line content on search cancel In the current implementation for Bash, the line content is lost when the user cancels the atuin search by pressing ESC, C-g, or Down at the bottom line. This is because the line content is set to the empty string returned by atuin on the cancellation of the search. In the integrations for other shells, zsh and fish, the empty output is properly handled so that the line content is preserved. This patch makes the behavior in Bash consistent with that in zsh and fish, i.e., we do nothing when the atuin search returns an empty output. * fix(zsh): ignore confusing line `__atuin_accept__:*` on search cancel
* refactor(bash): refactor and optimize `__atuin_accept_line` (#1482)Koichi Murase2024-01-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix(bash): prefix "__atuin_" to avoid variable conflicts Because the function "__atuin_history" executes an arbitary user command for "enter_accept", the local variable names should be carefully chosen. A local variable can shadow a global variable that the user wants to use when there is a name conflict. To avoid such a situation we try to namespace the variables used by atuin by prefixing "__atuin_". * fix(bash): work around "shopt -s xpg_echo" * refactor(bash): simplify the rendering of the prompt * perf(bash): avoid extra evaluation of PS1 * refactor(bash): count \n by wc We can simply use "wc -l" to count the number of newline characters. In the POSIX standard, a line in a text stream is defined as characters terminated by a newline character, so the unterminated line is not counted by "wc -l". As a result, "wc -l" actually counts the number of newline characters. * refactor(bash): rename localvar `HISTORY => __atuin_command` This patch renames the local variable `HISTORY` in __atuin_accept_line to `__atuin_command`. The name of the global variable `HISTORY` set by `__atuin_history` is kept.
* docs: update logo (#1481)Ellie Huxtable2024-01-01
|
* docs: remove stray character from READMEEllie Huxtable2024-01-01
|
* docs: add docs for zsh-autosuggestion integration (#1480)Ellie Huxtable2024-01-01
| | | | I've added an integrations page to the docs. We can maintain a list of such integrations
* feat: integrate with zsh-autosuggestions (#1479)Ellie Huxtable2024-01-01
| | | | | | | | | | | | | | | | | * feat: integrate with zsh-autosuggestions * Update atuin/src/shell/atuin.zsh Co-authored-by: Patrick Jackson <patrick@jackson.dev> * Update atuin/src/shell/atuin.zsh Co-authored-by: Patrick Jackson <patrick@jackson.dev> * feedback --------- Co-authored-by: Patrick Jackson <patrick@jackson.dev>
* fix(stats): time now_local not working Conrad Ludgate2024-01-01
|
* refactor(bash): factorize `__atuin_accept_line` (#1476)Koichi Murase2024-01-01
|
* fix(bash): fix small issues of `enter_accept` for the plain Bash (#1467)Koichi Murase2024-01-01
| | | | | | | | | | | | | | | | | | | | | | | * fix(bash): history should be updated before preexec * fix(bash): properly execute "--" With the current implementation, the user command "--" would not be executed even if it were the intended one. This is because it would be confused as an option by the "eval" builtin. We can specify "--" to tell "eval" that the later arguments should be literally treated as the command. * fix(bash): correctly restore $? and $_ * fix(bash): fix the use of preexec_ret_value The exit status of preexec_ret_value is used to suppress the execution of the corresponding command in the extdebug mode. The current implementation somehow tries to set $? before the call of stty, which does not have any effect. Instead, we can manually turn off the execution of the user command when the condition matches. * feat(bash): support array PROMPT_COMMAND of Bash >= 5.1
* fix(install): discord broken linkEllie Huxtable2023-12-31
|
* fix(docs): discord link expiredEllie Huxtable2023-12-31
|
* fix(bash): improve the support for `enter_accept` with `ble.sh` (#1465)Koichi Murase2023-12-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat(bash): check version of ble.sh blehooks are only supported in ble.sh >= 0.4, so we require the ble.sh version to be larger or equal to 0.4. We also describe the version requirement in README.md. * fix(bash): use ble.sh's contrib/integration/bash-preexec ble.sh provides module "contrib/integration/bash-preexec", which can be used with the same interface as bash-preexec. This module provides "preexec_functions" and "precmd_functions" without requiring bash-preexec. This module also properly handles it when both ble.sh and bash-preexec are loaded; the module resolves the conflicts between ble.sh and bash-preexec, and the module also tries to support bash-preexec in the detached state of ble.sh. * fix(bash): use ble.sh's accept-line widget for enter_accept In ble.sh, one can directly call the widget "accept-line" from a shell script. The widget "accept-line" is the actual widget that reserves the command execution in ble.sh, so calling "accept-line" is equivalent to the normal execution. It includes all the necessary adjustments and processing including stty and history. In addition, the command will be executed at the top-level context instead in a function scope. For example, without ble.sh, running "declare -A dict=()" through enter_accept will create an associative array in the function scope unexpectedly. With ble.sh, since the command is executed at the top-level context, such a problem does not happen. When ble.sh is in a detached state, we fall back to the manual execution of the command. In this case, we cannot assume the existence of the shell function "__bp_set_ret_value", so we always use __atuin_set_ret_value.
* fix(clippy): ignore struct_field_names (#1466)Ellie Huxtable2023-12-28
| | | In these cases, I think that's a _little_ too pedantic.
* fix(bash): fix loss of the last output line with enter_accept (#1463)Koichi Murase2023-12-28
| | | | | | | | | | With a single-line prompt, the last line of the output of the previous command is overwritten by the prompt on the enter_accept. In this situation, `tput cuu` receives 0 as the argument, but `tput cuu 0` emits the control sequence `\e[0A`, which moves the cursor above by one line unexpectedly. This is because the parameter 0 for CUU means the default value, 1. In this patch, to avoid moving the cursor when the prompt offset is 0, we check the offset value before running `tput cuu`.
* feat: Add TLS to atuin-server (#1457)Eric Hodel2023-12-27
| | | | | | | | | | | | | | | | | | | | * Add TLS to atuin-server atuin as a project already includes most of the dependencies necessary for server-side TLS. This allows `atuin server start` to use a TLS certificate when self-hosting in order to avoid the complication of wrapping it in a TLS-aware proxy server. Configuration is handled similar to the metrics server with its own struct and currently accepts only the private key and certificate file paths. Starting a TLS server and a TCP server are divergent because the tests need to bind to an arbitrary port to avoid collisions across tests. The API to accomplish this for a TLS server is much more verbose. * Fix clippy, fmt * Add TLS section to self-hosting
* feat: add semver checking to client requests (#1456)Ellie Huxtable2023-12-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: add semver checking to client requests This enforces that the client and the server run the same major version in order to sync successfully. We're using the `Atuin-Version` http header to transfer this information If the user is not on the same MAJOR, then they will see an error like this > Atuin version mismatch! In order to successfully sync, the client and the server must run the same *major* version > Client: 17.1.0 > Server: 18.1.0 > Error: could not sync records due to version mismatch This change means two things 1. We will now only increment major versions if there is a breaking change for sync 2. We can now add breaking changes to sync, for any version >17.1.0. Clients will fail in a meaningful way. * lint, fmt, etc * only check for client newer than server * Add version header to client too
* chore(deps): bump lukemathwalker/cargo-chef (#1425)dependabot[bot]2023-12-19
| | | | | | | | | | | | Bumps lukemathwalker/cargo-chef from latest-rust-1.74.0-buster to latest-rust-1.74.1-buster. --- updated-dependencies: - dependency-name: lukemathwalker/cargo-chef dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): uuidv7 stable (#1451)Conrad Ludgate2023-12-16
|
* update basically everything (#1452)Conrad Ludgate2023-12-16
|
* docs(readme): use picture element for logoEllie Huxtable2023-12-16
|
* docs(readme): fix light/dark mode logoEllie Huxtable2023-12-16
|
* docs: correct linkEllie Huxtable2023-12-14
|
* docs: add fish install script (#1447)Ellie Huxtable2023-12-14
|
* docs: add Void Linux install instruction (#1445)Marcin Puc2023-12-14
| | | | | * docs(readme): add Void Linux install instruction * docs: add Void Linux install instruction to advanced-install.md
* docs: align setup links in docs and readme (#1446)Ellie Huxtable2023-12-14
|
* chore: remove issue template (#1444)Ellie Huxtable2023-12-12
|
* docs: add link to forumEllie Huxtable2023-12-12
|
* docs(readme): add actuated linkbackEllie Huxtable2023-12-12
| | | | | Thanks again for the sponsorship @alexellis ref: https://docs.actuated.dev/faq/#is-there-a-sponsored-subscription-for-open-source-projects
* fix(shell): respect ZSH's $ZDOTDIR environment variable (#1441)Dennis Trautwein2023-12-12
|
* Update README.md logo heightEllie Huxtable2023-12-12
|
* Update README.md logoEllie Huxtable2023-12-12
|
* fix(history): disallow deletion if the '--limit' flag is present (#1436)sdr1352842023-12-11
| | | Co-authored-by: sdr13528 <sdr13528@users.noreply.github.com>
* fix(stats): don't require all fields under [stats] (#1437)Ramses2023-12-11
| | | | | | | | | | | | | | | | | | | Before this change, when configuring only `common_subcommands` and not `common_prefix` (so it would take its default value), atuin produces an error message: ``` Error: could not load client settings Caused by: failed to deserialize: missing field `common_prefix` Location: atuin-client/src/settings.rs:456:26 Error: could not load client settings Caused by: failed to deserialize: missing field `common_prefix` Location: atuin-client/src/settings.rs:456:26 Error:: command not found ``` With this change, the fields can be specified separately and missing fields will take their default values.
* fix(docs): fix typo (#1439)Josef Friedrich2023-12-11
|
* fix blocking for #1381 (#1438)Conrad Ludgate2023-12-11
|
* chore(repo): remove issue config (#1433)Ellie Huxtable2023-12-10
|
* chore(release): prepare for release v17.1.0 (#1432)Ellie Huxtable2023-12-10
|
* chore: setup git cliff (#1431)Ellie Huxtable2023-12-10
|
* chore(readme): add contributor image to README (#1430)Ellie Huxtable2023-12-10
|
* fix: respect ZSH's $ZDOTDIR environment variable (#942)Dennis Trautwein2023-12-09
| | | | | | | | | ZSH reads its configuration by default relative to a path that's set via $ZDOTDIR. If $ZDOTDIR is not set, then the value of $HOME is used; this is the usual case. Source: https://zsh.sourceforge.io/Intro/intro_3.html#IDX11 Also $HOME is save to use, because "The system shall initialize this variable at the time of login to be a pathname of the user's home directory". Source: https://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html Lastly, the shell parameter expansion syntax is save to use generically: https://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02 Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
* chore: don't group deps (#1424)Ellie Huxtable2023-12-09
|
* chore: run dependabot weekly, not daily (#1423)Ellie Huxtable2023-12-09
| | | | | * chore: run dependabot weekly, not daily * group it all
* Bump unicode-width from 0.1.10 to 0.1.11 (#1243)dependabot[bot]2023-12-09
| | | | | | | | | | | | | | Bumps [unicode-width](https://github.com/unicode-rs/unicode-width) from 0.1.10 to 0.1.11. - [Commits](https://github.com/unicode-rs/unicode-width/compare/v0.1.10...v0.1.11) --- updated-dependencies: - dependency-name: unicode-width dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump futures-util from 0.3.28 to 0.3.29 (#1344)dependabot[bot]2023-12-09
| | | | | | | | | | | | | | | | Bumps [futures-util](https://github.com/rust-lang/futures-rs) from 0.3.28 to 0.3.29. - [Release notes](https://github.com/rust-lang/futures-rs/releases) - [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.28...0.3.29) --- updated-dependencies: - dependency-name: futures-util dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump futures from 0.3.28 to 0.3.29 (#1345)dependabot[bot]2023-12-09
| | | | | | | | | | | | | | | | Bumps [futures](https://github.com/rust-lang/futures-rs) from 0.3.28 to 0.3.29. - [Release notes](https://github.com/rust-lang/futures-rs/releases) - [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.28...0.3.29) --- updated-dependencies: - dependency-name: futures dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump serde_json from 1.0.107 to 1.0.108 (#1363)dependabot[bot]2023-12-09
| | | | | | | | | | | | | | | Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.107 to 1.0.108. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.107...v1.0.108) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump lukemathwalker/cargo-chef (#1401)dependabot[bot]2023-12-09
| | | | | | | | | | | | Bumps lukemathwalker/cargo-chef from latest-rust-1.73.0-buster to latest-rust-1.74.0-buster. --- updated-dependencies: - dependency-name: lukemathwalker/cargo-chef dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump debian from bullseye-20231030-slim to bullseye-20231120-slim (#1406)dependabot[bot]2023-12-09
| | | | | | | | | | | | Bumps debian from bullseye-20231030-slim to bullseye-20231120-slim. --- updated-dependencies: - dependency-name: debian dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix: reenable enter_accept for bash (#1408)Patrick Jackson2023-12-05
| | | | | * fix: reenable enter_accept for bash * fix: Fix the shellcheck warnings
* chore: update rusty_paseto and rusty_paserk (#1420)Ellie Huxtable2023-12-02
|