Commit Graph

766 Commits

Author SHA1 Message Date
Conrad Ludgate
e2a4e9cf13
fix(stats): time now_local not working 2024-01-01 16:42:36 +00:00
Koichi Murase
c7db7838e3
refactor(bash): factorize __atuin_accept_line (#1476) 2024-01-01 15:20:16 +00:00
Koichi Murase
1350d3fd74
fix(bash): fix small issues of enter_accept for the plain Bash (#1467)
* 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
2024-01-01 14:26:02 +00:00
Ellie Huxtable
7fe152a8a7
fix(install): discord broken link 2023-12-31 19:15:44 +00:00
Ellie Huxtable
9d4fdf71d0
fix(docs): discord link expired 2023-12-31 19:14:24 +00:00
Koichi Murase
a4122f062a
fix(bash): improve the support for enter_accept with ble.sh (#1465)
* 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.
2023-12-28 20:08:45 +00:00
Ellie Huxtable
5401ff12b7
fix(clippy): ignore struct_field_names (#1466)
In these cases, I think that's a _little_ too pedantic.
2023-12-28 20:02:11 +00:00
Koichi Murase
be1f6fd5ca
fix(bash): fix loss of the last output line with enter_accept (#1463)
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`.
2023-12-28 19:34:34 +00:00
Eric Hodel
d52e576129
feat: Add TLS to atuin-server (#1457)
* 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
2023-12-27 14:15:48 +00:00
Ellie Huxtable
86f50e0356
feat: add semver checking to client requests (#1456)
* 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
2023-12-20 09:03:04 +00:00
dependabot[bot]
42ac150fe3
chore(deps): bump lukemathwalker/cargo-chef (#1425)
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>
2023-12-19 07:58:29 +00:00
Conrad Ludgate
7aeea1c050
chore(deps): uuidv7 stable (#1451) 2023-12-16 19:21:04 +00:00
Conrad Ludgate
ec131c7c96
update basically everything (#1452) 2023-12-16 19:20:40 +00:00
Ellie Huxtable
d58192ff55
docs(readme): use picture element for logo 2023-12-16 09:23:31 +00:00
Ellie Huxtable
206157dd23
docs(readme): fix light/dark mode logo 2023-12-16 09:20:57 +00:00
Ellie Huxtable
7fe96ff2b7
docs: correct link 2023-12-14 09:02:15 +00:00
Ellie Huxtable
1d0f05b6fb
docs: add fish install script (#1447) 2023-12-14 08:19:51 +00:00
Marcin Puc
a973697724
docs: add Void Linux install instruction (#1445)
* docs(readme): add Void Linux install instruction

* docs: add Void Linux install instruction to advanced-install.md
2023-12-14 08:19:42 +00:00
Ellie Huxtable
57b5b03c11
docs: align setup links in docs and readme (#1446) 2023-12-14 08:04:54 +00:00
Ellie Huxtable
1945c9fb3a
chore: remove issue template (#1444) 2023-12-12 23:46:41 +00:00
Ellie Huxtable
2d922d4069
docs: add link to forum 2023-12-12 23:42:14 +00:00
Ellie Huxtable
8a3834f9c8
docs(readme): add actuated linkback
Thanks again for the sponsorship @alexellis

ref: https://docs.actuated.dev/faq/#is-there-a-sponsored-subscription-for-open-source-projects
2023-12-12 15:33:19 +00:00
Dennis Trautwein
901459b805
fix(shell): respect ZSH's $ZDOTDIR environment variable (#1441) 2023-12-12 10:03:22 +00:00
Ellie Huxtable
7019697fae
Update README.md logo height 2023-12-12 09:43:22 +00:00
Ellie Huxtable
c77b749e62
Update README.md logo 2023-12-12 09:42:49 +00:00
sdr135284
218521226f
fix(history): disallow deletion if the '--limit' flag is present (#1436)
Co-authored-by: sdr13528 <sdr13528@users.noreply.github.com>
2023-12-11 20:20:31 +00:00
Ramses
edc495895a
fix(stats): don't require all fields under [stats] (#1437)
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.
2023-12-11 20:16:41 +00:00
Josef Friedrich
3c7f6991e3
fix(docs): fix typo (#1439) 2023-12-11 20:16:11 +00:00
Conrad Ludgate
9ca8f10bf3
fix blocking for #1381 (#1438) 2023-12-11 18:06:14 +00:00
Ellie Huxtable
04903bf526
chore(repo): remove issue config (#1433) 2023-12-10 13:26:19 +00:00
Ellie Huxtable
da2e58fbb1
chore(release): prepare for release v17.1.0 (#1432) 2023-12-10 13:00:59 +00:00
Ellie Huxtable
3db71f2c1c
chore: setup git cliff (#1431) 2023-12-10 12:26:28 +00:00
Ellie Huxtable
913c5a0d94
chore(readme): add contributor image to README (#1430) 2023-12-10 11:13:43 +00:00
Dennis Trautwein
bdd7fe661f
fix: respect ZSH's $ZDOTDIR environment variable (#942)
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>
2023-12-09 17:52:09 +00:00
Ellie Huxtable
de6221942a
chore: don't group deps (#1424) 2023-12-09 17:44:10 +00:00
Ellie Huxtable
f35ef7459b
chore: run dependabot weekly, not daily (#1423)
* chore: run dependabot weekly, not daily

* group it all
2023-12-09 17:41:51 +00:00
dependabot[bot]
70a283a194
Bump unicode-width from 0.1.10 to 0.1.11 (#1243)
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>
2023-12-09 17:40:54 +00:00
dependabot[bot]
afbd249fa4
Bump futures-util from 0.3.28 to 0.3.29 (#1344)
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>
2023-12-09 17:40:43 +00:00
dependabot[bot]
114a6a61af
Bump futures from 0.3.28 to 0.3.29 (#1345)
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>
2023-12-09 17:40:35 +00:00
dependabot[bot]
5ce2a4a677
Bump serde_json from 1.0.107 to 1.0.108 (#1363)
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>
2023-12-09 17:40:22 +00:00
dependabot[bot]
2d9c595c13
Bump lukemathwalker/cargo-chef (#1401)
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>
2023-12-09 17:40:00 +00:00
dependabot[bot]
407dca0802
Bump debian from bullseye-20231030-slim to bullseye-20231120-slim (#1406)
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>
2023-12-09 17:39:53 +00:00
Patrick Jackson
a52568be79
fix: reenable enter_accept for bash (#1408)
* fix: reenable enter_accept for bash

* fix: Fix the shellcheck warnings
2023-12-05 17:56:47 +00:00
Ellie Huxtable
839965a8d7
chore: update rusty_paseto and rusty_paserk (#1420) 2023-12-02 22:47:41 +00:00
Patrick Jackson
1ce88c9d17
fix(fish): accept multiline commands (#1418) 2023-12-02 11:14:56 +00:00
Ellie Huxtable
1c3d6c6ce8
chore: cargo update (#1419) 2023-12-02 11:12:14 +00:00
Ellie Huxtable
e55b34b816
chore: update to sqlx 0.7.3 (#1416) 2023-11-29 09:30:34 +00:00
Patrick Jackson
e09571153c
feat: allow spaces in stats prefixes (#1414) 2023-11-29 09:01:43 +00:00
Ellie Huxtable
b530d39c3f
docs: new stats config (#1412) 2023-11-23 09:59:56 +00:00
Ellie Huxtable
0c9d7367c6
feat: allow configuring stats prefix (#1411) 2023-11-23 09:48:43 +00:00