feat(http): add default values for --bits and --profile

with a expanded profiles length check that is more accurate
This commit is contained in:
Addy Bryant 2022-04-05 12:05:27 -04:00
parent bbcbb6aa74
commit a0d44bbb61
2 changed files with 9 additions and 7 deletions

View File

@ -59,16 +59,18 @@ pub enum InitializationError {
pub fn init( pub fn init(
ipfs_path: &Path, ipfs_path: &Path,
bits: NonZeroU16, bits: NonZeroU16,
profiles: Vec<Profile>, mut profiles: Vec<Profile>,
) -> Result<String, InitializationError> { ) -> Result<String, InitializationError> {
use multibase::Base::Base64Pad; use multibase::Base::Base64Pad;
use prost::Message; use prost::Message;
use std::fs::OpenOptions; use std::fs::OpenOptions;
use std::io::{BufWriter, Write}; use std::io::{BufWriter, Write};
if profiles.len() != 1 { match profiles.len() {
unimplemented!("Multiple profiles are currently unsupported!") 0 => profiles.push(Profile::Default),
} 1 => {}
_ => unimplemented!("Multiple profiles are currently unsupported!"),
};
let bits = bits.get(); let bits = bits.get();

View File

@ -15,13 +15,13 @@ enum Options {
/// with two arguments by default, `--bits 1024` and `--profile test`. /// with two arguments by default, `--bits 1024` and `--profile test`.
Init { Init {
/// Generated key length /// Generated key length
#[structopt(long)] #[structopt(long, default_value = "2048")]
bits: NonZeroU16, bits: NonZeroU16,
/// List of configuration profiles to apply. Currently only the `Test` and `Default` /// List of configuration profiles to apply. Currently only the `Test` and `Default`
/// profiles are supported. /// profiles are supported.
/// ///
/// `Test` uses ephemeral ports (necessary for conformance tests), `Default` uses `4004`. /// `Test` uses ephemeral ports (necessary for conformance tests), `Default` uses `4004`.
#[structopt(long, use_delimiter = true)] #[structopt(long, use_delimiter = true, default_value = "default")]
profile: Vec<config::Profile>, profile: Vec<config::Profile>,
}, },
/// Start the IPFS node in the foreground (not detaching from parent process). /// Start the IPFS node in the foreground (not detaching from parent process).
@ -95,7 +95,7 @@ fn main() {
std::process::exit(1); std::process::exit(1);
} }
Err(config::InitializationError::InvalidRsaKeyLength(bits)) => { Err(config::InitializationError::InvalidRsaKeyLength(bits)) => {
eprintln!("Error: --bits out of range [1024, 16384]: {}", bits); eprintln!("Error: --bits out of range [2048, 16384]: {}", bits);
eprintln!("This is a fake version of ipfs cli which does not support much"); eprintln!("This is a fake version of ipfs cli which does not support much");
std::process::exit(1); std::process::exit(1);
} }