use anyhow::Result;
// use clap::Parser;
// use indoc::printdoc;
// use sd_crypto::header::file::FileHeader;
// use std::path::PathBuf;
// use tokio::fs::File;

// #[derive(Parser)]
// struct Args {
// 	#[arg(help = "the file path to get details for")]
// 	path: PathBuf,
// }

#[tokio::main]
async fn main() -> Result<()> {
	// let args = Args::parse();

	// let mut reader = File::open(args.path).await.context("unable to open file")?;
	// let (header, aad) = FileHeader::from_reader(&mut reader).await?;
	// print_crypto_details(&header, &aad);

	Ok(())
}

// fn print_crypto_details(header: &FileHeader, aad: &[u8]) {
// 	printdoc! {"
//         Header version: {version}
//         Encryption algorithm: {algorithm}
//         AAD (hex): {hex}
//     ",
// 		version = header.version,
// 		algorithm = header.algorithm,
// 		hex = hex::encode(aad)
// 	};

// 	header.keyslots.iter().enumerate().for_each(|(i, k)| {
// 		printdoc! {"
//             Keyslot {index}:
//               Version: {version}
//               Algorithm: {algorithm}
//               Hashing algorithm: {hashing_algorithm}
//               Salt (hex): {salt}
//               Master Key (hex, encrypted): {master}
//               Master key nonce (hex): {nonce}
//         ",
// 			index = i + i,
// 			version = k.version,
// 			algorithm = k.algorithm,
// 			hashing_algorithm = k.hashing_algorithm,
// 			salt = hex::encode(&*k.salt),
// 			master = hex::encode(&*k.master_key),
// 			nonce = hex::encode(k.nonce)
// 		};
// 	});

// 	header.metadata.iter().for_each(|m| {
// 		printdoc! {"
//             Metadata:
//               Version: {version}
//               Algorithm: {algorithm}
//               Encrypted size: {size}
//               Nonce (hex): {nonce}
//         ",
// 			version = m.version,
// 			algorithm = m.algorithm,
// 			size = m.metadata.len(),
// 			nonce = hex::encode(m.metadata_nonce)
// 		}
// 	});

// 	header.preview_media.iter().for_each(|p| {
// 		printdoc! {"
//             Preview Media:
//               Version: {version}
//               Algorithm: {algorithm}
//               Encrypted size: {size}
//               Nonce (hex): {nonce}
//         ",
// 			version = p.version,
// 			algorithm = p.algorithm,
// 			size = p.media.len(),
// 			nonce = hex::encode(p.media_nonce)
// 		};
// 	});
// }
