aboutsummaryrefslogtreecommitdiff
path: root/examples/list-devices.rs
diff options
context:
space:
mode:
authorRobin Krahl <robin.krahl@ireas.org>2020-01-14 18:11:02 +0100
committerRobin Krahl <robin.krahl@ireas.org>2020-01-14 18:11:02 +0100
commit62d37c8d4e7d1caca21f23978198b721efc5973b (patch)
treecae2b5f81bb1245caef37cba80f934878978878c /examples/list-devices.rs
parent528e56a0ff759ea81b61eea368cf53b5540dc89a (diff)
parent43664ca3c449008e2859feb94e3142db3fa98625 (diff)
downloadnitrokey-rs-62d37c8d4e7d1caca21f23978198b721efc5973b.tar.gz
nitrokey-rs-62d37c8d4e7d1caca21f23978198b721efc5973b.tar.bz2
Merge branch 'release-0.5.0'
Diffstat (limited to 'examples/list-devices.rs')
-rw-r--r--examples/list-devices.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/examples/list-devices.rs b/examples/list-devices.rs
new file mode 100644
index 0000000..9c14533
--- /dev/null
+++ b/examples/list-devices.rs
@@ -0,0 +1,26 @@
+// Copyright (C) 2020 Robin Krahl <robin.krahl@ireas.org>
+// SPDX-License-Identifier: CC-0
+
+//! Enumerates all connected Nitrokey devices and prints some information about them.
+
+use nitrokey::Device as _;
+
+fn main() -> Result<(), nitrokey::Error> {
+ let mut manager = nitrokey::take()?;
+ let device_infos = nitrokey::list_devices()?;
+ if device_infos.is_empty() {
+ println!("No Nitrokey device found");
+ } else {
+ println!("path\t\tmodel\tfirmware version\tserial number");
+ for device_info in device_infos {
+ let device = manager.connect_path(device_info.path.clone())?;
+ let model = device.get_model();
+ let status = device.get_status()?;
+ println!(
+ "{}\t{}\t{}\t\t\t{:08x}",
+ device_info.path, model, status.firmware_version, status.serial_number
+ );
+ }
+ }
+ Ok(())
+}