summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock2
-rw-r--r--Cargo.toml2
-rw-r--r--README.md48
-rw-r--r--src/command/import.rs2
-rw-r--r--src/main.rs7
5 files changed, 58 insertions, 3 deletions
diff --git a/Cargo.lock b/Cargo.lock
index bd8b3609..fbf0360b 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -49,7 +49,7 @@ dependencies = [
[[package]]
name = "atuin"
-version = "0.2.1"
+version = "0.2.2"
dependencies = [
"chrono",
"directories",
diff --git a/Cargo.toml b/Cargo.toml
index c4b67a8c..f3f71cdf 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "atuin"
-version = "0.2.1"
+version = "0.2.2"
authors = ["Ellie Huxtable <e@elm.sh>"]
edition = "2018"
license = "MIT"
diff --git a/README.md b/README.md
index 6739500a..b70820ad 100644
--- a/README.md
+++ b/README.md
@@ -17,3 +17,51 @@ As well as the expected command, this stores
- hostname
- time
- 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
+```
diff --git a/src/command/import.rs b/src/command/import.rs
index 5ce0e749..a593ef61 100644
--- a/src/command/import.rs
+++ b/src/command/import.rs
@@ -112,7 +112,7 @@ impl ImportCmd {
}
}
- ImportCmd::Zsh => Ok(()),
+ ImportCmd::Zsh => self.import_zsh(db),
}
}
}
diff --git a/src/main.rs b/src/main.rs
index 22c8b21d..86540a97 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,3 +1,4 @@
+use std::env;
use std::path::PathBuf;
use directories::ProjectDirs;
@@ -84,5 +85,11 @@ impl Atuin {
fn main() -> Result<()> {
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()
}