diff --git a/.chezmoi.toml.tmpl b/.chezmoi.toml.tmpl index ae6655d..fbc5076 100644 --- a/.chezmoi.toml.tmpl +++ b/.chezmoi.toml.tmpl @@ -35,3 +35,6 @@ encryption = "age" [age] identity = "/home/xevion/key.txt" recipient = "age1s3ctpj9lafl6qwyvd89sn448us7gdzd53d8yyhsc7zny78c0k4sqerrkze" + +[hooks.read-source-state.pre] + command = ".local/share/chezmoi/.install-password-manager.sh" diff --git a/.install-password-manager.sh b/.install-password-manager.sh new file mode 100644 index 0000000..a2dcfa1 --- /dev/null +++ b/.install-password-manager.sh @@ -0,0 +1,31 @@ +#!/bin/sh + +type rbw >/dev/null 2>&1 && exit + +install_cargo_binstall() { + # Test if cargo binstall is installed + cargo binstall + if [ $? -eq 0 ]; then + return + fi + curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash + + # Test again + cargo binstall + if [ $? -ne 0 ]; then + echo "Failed to install cargo binstall" + exit 1 + fi +} + +install_rbw() { + # Test if rbw is installed + command -v rbw >/dev/null 2>&1 && return + cargo binstall rbw + + # Test again + command -v rbw >/dev/null 2>&1 +} + +install_cargo_binstall +install_rbw