aboutsummaryrefslogtreecommitdiffstats
path: root/src/command/init.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/command/init.rs')
-rw-r--r--src/command/init.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/command/init.rs b/src/command/init.rs
new file mode 100644
index 00000000..37453f93
--- /dev/null
+++ b/src/command/init.rs
@@ -0,0 +1,36 @@
+use clap::Parser;
+
+#[derive(Parser)]
+pub enum Cmd {
+ /// Zsh setup
+ Zsh,
+ /// Bash setup
+ Bash,
+ /// Fish setup
+ Fish,
+}
+
+fn init_zsh() {
+ let full = include_str!("../shell/atuin.zsh");
+ println!("{}", full);
+}
+
+fn init_bash() {
+ let full = include_str!("../shell/atuin.bash");
+ println!("{}", full);
+}
+
+fn init_fish() {
+ let full = include_str!("../shell/atuin.fish");
+ println!("{}", full);
+}
+
+impl Cmd {
+ pub fn run(&self) {
+ match self {
+ Self::Zsh => init_zsh(),
+ Self::Bash => init_bash(),
+ Self::Fish => init_fish(),
+ }
+ }
+}