generate completions during build
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
shimun 2020-09-05 17:56:08 +02:00
parent ff509d75b0
commit 59ed4a5db1
Signed by: shimun
GPG Key ID: E81D8382DC2F971B
8 changed files with 46 additions and 11 deletions

4
.gitignore vendored
View File

@ -2,3 +2,7 @@
**/*.rs.bk **/*.rs.bk
.idea/ .idea/
*.iml *.iml
fido2luks.bash
fido2luks.elv
fido2luks.fish
fido2luks.zsh

View File

@ -25,6 +25,15 @@ serde_json = "1.0.51"
serde_derive = "1.0.106" serde_derive = "1.0.106"
serde = "1.0.106" serde = "1.0.106"
[build-dependencies]
ctap_hmac = { version="0.4.2", features = ["request_multiple"] }
hex = "0.3.2"
ring = "0.13.5"
failure = "0.1.5"
rpassword = "4.0.1"
libcryptsetup-rs = "0.4.1"
structopt = "0.3.2"
[profile.release] [profile.release]
lto = true lto = true
opt-level = 'z' opt-level = 'z'
@ -38,6 +47,7 @@ build-depends = "libclang-dev, libcryptsetup-dev"
extended-description = "Decrypt your LUKS partition using a FIDO2 compatible authenticator" extended-description = "Decrypt your LUKS partition using a FIDO2 compatible authenticator"
assets = [ assets = [
["target/release/fido2luks", "usr/bin/", "755"], ["target/release/fido2luks", "usr/bin/", "755"],
["fido2luks.bash", "usr/share/bash-completion/completions/fido2luks", "644"],
["initramfs-tools/keyscript.sh", "/lib/cryptsetup/scripts/fido2luks", "755" ], ["initramfs-tools/keyscript.sh", "/lib/cryptsetup/scripts/fido2luks", "755" ],
["initramfs-tools/hook/fido2luks.sh", "etc/initramfs-tools/hooks/", "755" ], ["initramfs-tools/hook/fido2luks.sh", "etc/initramfs-tools/hooks/", "755" ],
["initramfs-tools/fido2luks.conf", "etc/", "644"], ["initramfs-tools/fido2luks.conf", "etc/", "644"],

View File

@ -17,10 +17,9 @@ pkgver() {
build() { build() {
cargo build --release --locked --all-features --target-dir=target cargo build --release --locked --all-features --target-dir=target
./target/release/fido2luks completions bash target
} }
package() { package() {
install -Dm 755 target/release/${pkgname} -t "${pkgdir}/usr/bin" install -Dm 755 target/release/${pkgname} -t "${pkgdir}/usr/bin"
install -Dm 644 target/fido2luks.bash "${pkgdir}/usr/share/bash-completion/completions/fido2luks" install -Dm 644 fido2luks.bash "${pkgdir}/usr/share/bash-completion/completions/fido2luks"
} }

24
build.rs Normal file
View File

@ -0,0 +1,24 @@
#![allow(warnings)]
#[macro_use]
extern crate failure;
extern crate ctap_hmac as ctap;
#[path = "src/cli_args/mod.rs"]
mod cli_args;
#[path = "src/error.rs"]
mod error;
#[path = "src/util.rs"]
mod util;
use cli_args::Args;
use std::env;
use std::str::FromStr;
use structopt::clap::Shell;
use structopt::StructOpt;
fn main() {
// generate completion scripts, zsh does panic for some reason
for shell in Shell::variants().iter().filter(|shell| **shell != "zsh") {
Args::clap().gen_completions(env!("CARGO_PKG_NAME"), Shell::from_str(shell).unwrap(), ".");
}
}

View File

@ -3,7 +3,6 @@ use crate::luks::{Fido2LuksToken, LuksDevice};
use crate::util::sha256; use crate::util::sha256;
use crate::*; use crate::*;
use cli_args::*; use cli_args::*;
use config::*;
use structopt::clap::Shell; use structopt::clap::Shell;
use structopt::StructOpt; use structopt::StructOpt;
@ -22,9 +21,6 @@ use std::time::SystemTime;
pub use cli_args::Args; pub use cli_args::Args;
mod cli_args;
mod config;
fn read_pin(ap: &AuthenticatorParameters) -> Fido2LuksResult<String> { fn read_pin(ap: &AuthenticatorParameters) -> Fido2LuksResult<String> {
if let Some(src) = ap.pin_source.as_ref() { if let Some(src) = ap.pin_source.as_ref() {
let mut pin = String::new(); let mut pin = String::new();

View File

@ -1,10 +1,12 @@
use crate::cli::config::*; use std::fmt::{Display, Error, Formatter};
use crate::*; use std::path::PathBuf;
use std::str::FromStr;
use structopt::clap::AppSettings; use structopt::clap::AppSettings;
use structopt::StructOpt; use structopt::StructOpt;
use std::fmt::{Display, Error, Formatter}; mod config;
use std::str::FromStr;
pub use config::*;
#[derive(Debug, Eq, PartialEq, Clone)] #[derive(Debug, Eq, PartialEq, Clone)]
pub struct HexEncoded(pub Vec<u8>); pub struct HexEncoded(pub Vec<u8>);

View File

@ -7,10 +7,10 @@ use crate::cli::*;
use crate::device::*; use crate::device::*;
use crate::error::*; use crate::error::*;
use std::io; use std::io;
use std::path::PathBuf;
use std::process::exit; use std::process::exit;
mod cli; mod cli;
pub mod cli_args;
mod device; mod device;
mod error; mod error;
mod luks; mod luks;