Compare commits
8 Commits
pin_source
...
0.2.13
Author | SHA1 | Date | |
---|---|---|---|
03ef5721e0
|
|||
008e644024
|
|||
e1f762ddc9
|
|||
![]() |
2266754a95 | ||
8811cff6d1
|
|||
99787b614c
|
|||
ee28f87148
|
|||
196356fe3b
|
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -377,7 +377,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "fido2luks"
|
||||
version = "0.2.11"
|
||||
version = "0.2.13"
|
||||
dependencies = [
|
||||
"ctap_hmac",
|
||||
"failure",
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "fido2luks"
|
||||
version = "0.2.11"
|
||||
version = "0.2.13"
|
||||
authors = ["shimunn <shimun@shimun.net>"]
|
||||
edition = "2018"
|
||||
|
||||
|
26
PKGBUILD
Normal file
26
PKGBUILD
Normal file
@@ -0,0 +1,26 @@
|
||||
# Maintainer: shimunn <shimun@shimun.net>
|
||||
pkgname=fido2luks
|
||||
pkgver=0.2.12
|
||||
pkgrel=1
|
||||
makedepends=('rust' 'cargo' 'cryptsetup' 'clang')
|
||||
depends=('cryptsetup')
|
||||
arch=('i686' 'x86_64' 'armv6h' 'armv7h')
|
||||
pkgdesc="Decrypt your LUKS partition using a FIDO2 compatible authenticator"
|
||||
url="https://github.com/shimunn/fido2luks"
|
||||
license=('MPL-2.0')
|
||||
|
||||
pkgver() {
|
||||
# Use tag version if possible otherwise concat project version and git ref
|
||||
git describe --exact-match --tags HEAD 2> /dev/null || \
|
||||
echo "$(cargo pkgid | cut -d'#' -f2).$(git describe --always)"
|
||||
}
|
||||
|
||||
build() {
|
||||
cargo build --release --locked --all-features --target-dir=target
|
||||
./target/release/fido2luks completions bash target
|
||||
}
|
||||
|
||||
package() {
|
||||
install -Dm 755 target/release/${pkgname} -t "${pkgdir}/usr/bin"
|
||||
install -Dm 644 target/fido2luks.bash "${pkgdir}/usr/share/bash-completion/completions/fido2luks"
|
||||
}
|
23
src/cli.rs
23
src/cli.rs
@@ -1,6 +1,7 @@
|
||||
use crate::error::*;
|
||||
use crate::*;
|
||||
|
||||
use structopt::clap::{AppSettings, Shell};
|
||||
use structopt::StructOpt;
|
||||
|
||||
use ctap::{FidoCredential, FidoErrorKind};
|
||||
@@ -75,7 +76,7 @@ pub struct Credentials {
|
||||
#[derive(Debug, StructOpt)]
|
||||
pub struct AuthenticatorParameters {
|
||||
/// Request a PIN to unlock the authenticator
|
||||
#[structopt(short = "P", long = "pin", env = "FIDO2LUKS_PIN")]
|
||||
#[structopt(short = "P", long = "pin")]
|
||||
pub pin: bool,
|
||||
|
||||
/// Location to read PIN from
|
||||
@@ -303,6 +304,14 @@ pub enum Command {
|
||||
#[structopt(name = "connected")]
|
||||
Connected,
|
||||
Token(TokenCommand),
|
||||
/// Generate bash completion scripts
|
||||
#[structopt(name = "completions", setting = AppSettings::Hidden)]
|
||||
GenerateCompletions {
|
||||
/// Shell to generate completions for: bash, fish
|
||||
#[structopt(possible_values = &["bash", "fish"])]
|
||||
shell: String,
|
||||
out_dir: PathBuf,
|
||||
},
|
||||
}
|
||||
|
||||
///LUKS2 token related operations
|
||||
@@ -725,5 +734,17 @@ pub fn run_cli() -> Fido2LuksResult<()> {
|
||||
Ok(())
|
||||
}
|
||||
},
|
||||
Command::GenerateCompletions { shell, out_dir } => {
|
||||
Args::clap().gen_completions(
|
||||
env!("CARGO_PKG_NAME"),
|
||||
match shell.as_ref() {
|
||||
"bash" => Shell::Bash,
|
||||
"fish" => Shell::Fish,
|
||||
_ => unreachable!("structopt shouldn't allow us to reach this point"),
|
||||
},
|
||||
&out_dir,
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -21,10 +21,7 @@ mod util;
|
||||
fn main() -> Fido2LuksResult<()> {
|
||||
match run_cli() {
|
||||
Err(e) => {
|
||||
#[cfg(debug_assertions)]
|
||||
eprintln!("{:?}", e);
|
||||
#[cfg(not(debug_assertions))]
|
||||
eprintln!("{}", e);
|
||||
exit(e.exit_code())
|
||||
}
|
||||
_ => exit(0),
|
||||
|
Reference in New Issue
Block a user