Minor fixes

This commit is contained in:
Ellie Huxtable 2021-02-13 20:54:35 +00:00
parent ccdaa21fc6
commit fbaeedbba4
5 changed files with 58 additions and 3 deletions

2
Cargo.lock generated
View file

@ -49,7 +49,7 @@ dependencies = [
[[package]] [[package]]
name = "atuin" name = "atuin"
version = "0.2.1" version = "0.2.2"
dependencies = [ dependencies = [
"chrono", "chrono",
"directories", "directories",

View file

@ -1,6 +1,6 @@
[package] [package]
name = "atuin" name = "atuin"
version = "0.2.1" version = "0.2.2"
authors = ["Ellie Huxtable <e@elm.sh>"] authors = ["Ellie Huxtable <e@elm.sh>"]
edition = "2018" edition = "2018"
license = "MIT" license = "MIT"

View file

@ -17,3 +17,51 @@ As well as the expected command, this stores
- hostname - hostname
- time - time
- a unique session ID - a unique session ID
## Install
`atuin` needs a recent version of Rust + Cargo! It's best to use rustup for.
```
cargo install atuin
```
and then add this to your ~/.zshrc
```
export ATUIN_SESSION=$(atuin uuid)
_atuin_preexec(){
id=$(atuin history start $1)
export ATUIN_HISTORY_ID="$id"
}
_atuin_precmd(){
local EXIT="$?"
[[ -z "${ATUIN_HISTORY_ID}" ]] && return
atuin history end $ATUIN_HISTORY_ID --exit $EXIT
}
add-zsh-hook preexec _atuin_preexec
add-zsh-hook precmd _atuin_precmd
```
We're not replacing anything here, so your default shell history file will still
be written to!
## Usage
### Import history
```
atuin import auto # detect shell, then import
atuin import zsh # specify shell
```
### List history
```
atuin history list
```

View file

@ -112,7 +112,7 @@ impl ImportCmd {
} }
} }
ImportCmd::Zsh => Ok(()), ImportCmd::Zsh => self.import_zsh(db),
} }
} }
} }

View file

@ -1,3 +1,4 @@
use std::env;
use std::path::PathBuf; use std::path::PathBuf;
use directories::ProjectDirs; use directories::ProjectDirs;
@ -84,5 +85,11 @@ impl Atuin {
fn main() -> Result<()> { fn main() -> Result<()> {
pretty_env_logger::init(); pretty_env_logger::init();
let session = env::var("ATUIN_SESSION");
if session.is_err() {
panic!("Please follow the atuin setup! Missing session.")
}
Atuin::from_args().run() Atuin::from_args().run()
} }