diff options
| author | a14m <[email protected]> | 2021-04-06 20:36:15 +0200 |
|---|---|---|
| committer | a14m <[email protected]> | 2021-04-06 20:36:57 +0200 |
| commit | a6df4673a6f7de11231ae08238d25519db68d765 (patch) | |
| tree | 87fb613574c5502d2c7eff63731e69cec7de3dbc /CLI | |
| parent | a604a6dbf0779c001d145297eb1fb1a1164882f9 (diff) | |
Fix URL parsing to only support http (as curl lib)
Diffstat (limited to 'CLI')
| -rw-r--r-- | CLI/rust/Cargo.lock | 101 | ||||
| -rw-r--r-- | CLI/rust/Cargo.toml | 1 | ||||
| -rw-r--r-- | CLI/rust/src/game_of_life/generators/input.rs | 4 |
3 files changed, 104 insertions, 2 deletions
diff --git a/CLI/rust/Cargo.lock b/CLI/rust/Cargo.lock index 07cfd26..0b6c5ff 100644 --- a/CLI/rust/Cargo.lock +++ b/CLI/rust/Cargo.lock @@ -33,6 +33,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" [[package]] +name = "cc" +version = "1.0.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" + +[[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -72,10 +78,41 @@ dependencies = [ ] [[package]] +name = "curl" +version = "0.4.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a872858e9cb9e3b96c80dd78774ad9e32e44d3b05dc31e142b858d14aebc82c" +dependencies = [ + "curl-sys", + "libc", + "openssl-probe", + "openssl-sys", + "schannel", + "socket2", + "winapi", +] + +[[package]] +name = "curl-sys" +version = "0.4.41+curl-7.75.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ec466abd277c7cab2905948f3e94d10bc4963f1f5d47921c1cc4ffd2028fe65" +dependencies = [ + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", + "winapi", +] + +[[package]] name = "game-of-life" version = "0.1.0" dependencies = [ "clap", + "curl", "mocktopus", "rand", "regex", @@ -140,6 +177,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb" [[package]] +name = "libz-sys" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] name = "memchr" version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -166,12 +215,37 @@ dependencies = [ ] [[package]] +name = "openssl-probe" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" + +[[package]] +name = "openssl-sys" +version = "0.9.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "313752393519e876837e09e1fa183ddef0be7735868dced3196f4472d536277f" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] name = "os_str_bytes" version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afb2e1c3ee07430c2cf76151675e583e0f19985fa6efae47d6848a3e2c824f85" [[package]] +name = "pkg-config" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c" + +[[package]] name = "ppv-lite86" version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -277,6 +351,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548" [[package]] +name = "schannel" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +dependencies = [ + "lazy_static", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" +dependencies = [ + "cfg-if", + "libc", + "winapi", +] + +[[package]] name = "strsim" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -341,6 +436,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" [[package]] +name = "vcpkg" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" + +[[package]] name = "vec_map" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" diff --git a/CLI/rust/Cargo.toml b/CLI/rust/Cargo.toml index 752c526..a8e42e5 100644 --- a/CLI/rust/Cargo.toml +++ b/CLI/rust/Cargo.toml @@ -6,6 +6,7 @@ edition = "2018" [dependencies] clap = { version = "3.0.0-beta.2", features = ["wrap_help"] } +curl = "0.4.35" rand = "0.8.3" regex = "1.4.5" terminal_size = "0.1.16" diff --git a/CLI/rust/src/game_of_life/generators/input.rs b/CLI/rust/src/game_of_life/generators/input.rs index 9584cee..a1bc234 100644 --- a/CLI/rust/src/game_of_life/generators/input.rs +++ b/CLI/rust/src/game_of_life/generators/input.rs @@ -8,14 +8,14 @@ use mocktopus::macros::mockable; /// Generate a new Universe/Board with a parsed local file or remote URL/file /// -/// If a URL is provided as an input (starting with http/ftp) the URL/File will be downloaded +/// If a URL is provided as an input (starting with http(s)) the URL/File will be downloaded /// and parsed to generate a seeding input for the simulation /// otherwise, it'll be assumed that it's a path to a local file that will be parsed, and /// used as the seeding input #[cfg_attr(test, mockable)] pub(crate) fn new(opts: Opts) -> Result<Universe, Error> { let input = opts.input.clone().unwrap(); - match Regex::new("^(ht|f)tp(s)?://*").unwrap().is_match(&input) { + match Regex::new("^http(s)?://*").unwrap().is_match(&input) { true => generate_url_data(opts), false => generate_file_data(opts), } |
