mirror of
https://github.com/cloudflare/pingora.git
synced 2024-09-20 02:31:35 +02:00
Fixes #235 - Replace unmaintained structopt crate by clap
--- Fixed formatting Includes-commit:05f9754166
Includes-commit:29286c7e71
Replicated-from: https://github.com/cloudflare/pingora/pull/239
This commit is contained in:
parent
6db86b6929
commit
795594db83
12 changed files with 29 additions and 29 deletions
2
.bleep
2
.bleep
|
@ -1 +1 @@
|
||||||
9c7360a83cbcc28571af2c58f57113750ac1bcf9
|
4fac032747f22ebdfbd045342659a5d7086559d7
|
|
@ -36,7 +36,7 @@ log = { workspace = true }
|
||||||
h2 = { workspace = true }
|
h2 = { workspace = true }
|
||||||
lru = { workspace = true }
|
lru = { workspace = true }
|
||||||
nix = "~0.24.3"
|
nix = "~0.24.3"
|
||||||
structopt = "0.3"
|
clap = { version = "4.4.18", features = ["derive"] }
|
||||||
once_cell = { workspace = true }
|
once_cell = { workspace = true }
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
serde_yaml = "0.8"
|
serde_yaml = "0.8"
|
||||||
|
|
|
@ -19,11 +19,11 @@
|
||||||
//! * Number of threads per service
|
//! * Number of threads per service
|
||||||
//! * Error log file path
|
//! * Error log file path
|
||||||
|
|
||||||
|
use clap::Parser;
|
||||||
use log::{debug, trace};
|
use log::{debug, trace};
|
||||||
use pingora_error::{Error, ErrorType::*, OrErr, Result};
|
use pingora_error::{Error, ErrorType::*, OrErr, Result};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::fs;
|
use std::fs;
|
||||||
use structopt::StructOpt;
|
|
||||||
|
|
||||||
/// The configuration file
|
/// The configuration file
|
||||||
///
|
///
|
||||||
|
@ -118,22 +118,22 @@ impl Default for ServerConf {
|
||||||
/// Command-line options
|
/// Command-line options
|
||||||
///
|
///
|
||||||
/// Call `Opt::from_args()` to build this object from the process's command line arguments.
|
/// Call `Opt::from_args()` to build this object from the process's command line arguments.
|
||||||
#[derive(StructOpt, Debug)]
|
#[derive(Parser, Debug)]
|
||||||
#[structopt(name = "basic")]
|
#[clap(name = "basic")]
|
||||||
pub struct Opt {
|
pub struct Opt {
|
||||||
/// Whether this server should try to upgrade from a running old server
|
/// Whether this server should try to upgrade from a running old server
|
||||||
///
|
///
|
||||||
/// `-u` or `--upgrade` can be used
|
/// `-u` or `--upgrade` can be used
|
||||||
#[structopt(short, long)]
|
#[clap(short, long)]
|
||||||
pub upgrade: bool,
|
pub upgrade: bool,
|
||||||
/// Whether should run this server in the background
|
/// Whether should run this server in the background
|
||||||
///
|
///
|
||||||
/// `-d` or `--daemon` can be used
|
/// `-d` or `--daemon` can be used
|
||||||
#[structopt(short, long)]
|
#[clap(short, long)]
|
||||||
pub daemon: bool,
|
pub daemon: bool,
|
||||||
/// Not actually used. This flag is there so that the server is not upset seeing this flag
|
/// Not actually used. This flag is there so that the server is not upset seeing this flag
|
||||||
/// passed from `cargo test` sometimes
|
/// passed from `cargo test` sometimes
|
||||||
#[structopt(long)]
|
#[clap(long)]
|
||||||
pub nocapture: bool,
|
pub nocapture: bool,
|
||||||
/// Test the configuration and exit
|
/// Test the configuration and exit
|
||||||
///
|
///
|
||||||
|
@ -143,23 +143,23 @@ pub struct Opt {
|
||||||
/// service can start before shutting down the old server process.
|
/// service can start before shutting down the old server process.
|
||||||
///
|
///
|
||||||
/// `-t` or `--test` can be used
|
/// `-t` or `--test` can be used
|
||||||
#[structopt(short, long)]
|
#[clap(short, long)]
|
||||||
pub test: bool,
|
pub test: bool,
|
||||||
/// The path to the configuration file.
|
/// The path to the configuration file.
|
||||||
///
|
///
|
||||||
/// See [`ServerConf`] for more details of the configuration file.
|
/// See [`ServerConf`] for more details of the configuration file.
|
||||||
///
|
///
|
||||||
/// `-c` or `--conf` can be used
|
/// `-c` or `--conf` can be used
|
||||||
#[structopt(short, long)]
|
#[clap(short, long)]
|
||||||
pub conf: Option<String>,
|
pub conf: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Create the default instance of Opt based on the current command-line args.
|
/// Create the default instance of Opt based on the current command-line args.
|
||||||
/// This is equivalent to running `Opt::from_args` but does not require the
|
/// This is equivalent to running `Opt::parse` but does not require the
|
||||||
/// caller to have included the `structopt::StructOpt`
|
/// caller to have included the `clap::Parser`
|
||||||
impl Default for Opt {
|
impl Default for Opt {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Opt::from_args()
|
Opt::parse()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,11 +15,11 @@
|
||||||
use once_cell::sync::Lazy;
|
use once_cell::sync::Lazy;
|
||||||
use std::{thread, time};
|
use std::{thread, time};
|
||||||
|
|
||||||
|
use clap::Parser;
|
||||||
use pingora_core::listeners::Listeners;
|
use pingora_core::listeners::Listeners;
|
||||||
use pingora_core::server::configuration::Opt;
|
use pingora_core::server::configuration::Opt;
|
||||||
use pingora_core::server::Server;
|
use pingora_core::server::Server;
|
||||||
use pingora_core::services::listening::Service;
|
use pingora_core::services::listening::Service;
|
||||||
use structopt::StructOpt;
|
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use bytes::Bytes;
|
use bytes::Bytes;
|
||||||
|
@ -106,7 +106,7 @@ impl MyServer {
|
||||||
"tests/pingora_conf.yaml".into(),
|
"tests/pingora_conf.yaml".into(),
|
||||||
];
|
];
|
||||||
let server_handle = thread::spawn(|| {
|
let server_handle = thread::spawn(|| {
|
||||||
entry_point(Some(Opt::from_iter(opts)));
|
entry_point(Some(Opt::parse_from(opts)));
|
||||||
});
|
});
|
||||||
// wait until the server is up
|
// wait until the server is up
|
||||||
thread::sleep(time::Duration::from_secs(2));
|
thread::sleep(time::Duration::from_secs(2));
|
||||||
|
|
|
@ -31,7 +31,7 @@ async-trait = { workspace = true }
|
||||||
log = { workspace = true }
|
log = { workspace = true }
|
||||||
h2 = { workspace = true }
|
h2 = { workspace = true }
|
||||||
once_cell = { workspace = true }
|
once_cell = { workspace = true }
|
||||||
structopt = "0.3"
|
clap = { version = "4.4.18", features = ["derive"] }
|
||||||
regex = "1"
|
regex = "1"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
|
|
@ -13,9 +13,9 @@
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
|
use clap::Parser;
|
||||||
use log::info;
|
use log::info;
|
||||||
use std::sync::Mutex;
|
use std::sync::Mutex;
|
||||||
use structopt::StructOpt;
|
|
||||||
|
|
||||||
use pingora_core::server::configuration::Opt;
|
use pingora_core::server::configuration::Opt;
|
||||||
use pingora_core::server::Server;
|
use pingora_core::server::Server;
|
||||||
|
@ -82,7 +82,7 @@ fn main() {
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
|
|
||||||
// read command line arguments
|
// read command line arguments
|
||||||
let opt = Opt::from_args();
|
let opt = Opt::parse();
|
||||||
let mut my_server = Server::new(Some(opt)).unwrap();
|
let mut my_server = Server::new(Some(opt)).unwrap();
|
||||||
my_server.bootstrap();
|
my_server.bootstrap();
|
||||||
|
|
||||||
|
|
|
@ -13,9 +13,9 @@
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
|
use clap::Parser;
|
||||||
use log::info;
|
use log::info;
|
||||||
use prometheus::register_int_counter;
|
use prometheus::register_int_counter;
|
||||||
use structopt::StructOpt;
|
|
||||||
|
|
||||||
use pingora_core::server::configuration::Opt;
|
use pingora_core::server::configuration::Opt;
|
||||||
use pingora_core::server::Server;
|
use pingora_core::server::Server;
|
||||||
|
@ -114,7 +114,7 @@ fn main() {
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
|
|
||||||
// read command line arguments
|
// read command line arguments
|
||||||
let opt = Opt::from_args();
|
let opt = Opt::parse();
|
||||||
let mut my_server = Server::new(Some(opt)).unwrap();
|
let mut my_server = Server::new(Some(opt)).unwrap();
|
||||||
my_server.bootstrap();
|
my_server.bootstrap();
|
||||||
|
|
||||||
|
|
|
@ -13,10 +13,10 @@
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
|
use clap::Parser;
|
||||||
use log::info;
|
use log::info;
|
||||||
use pingora_core::services::background::background_service;
|
use pingora_core::services::background::background_service;
|
||||||
use std::{sync::Arc, time::Duration};
|
use std::{sync::Arc, time::Duration};
|
||||||
use structopt::StructOpt;
|
|
||||||
|
|
||||||
use pingora_core::server::configuration::Opt;
|
use pingora_core::server::configuration::Opt;
|
||||||
use pingora_core::server::Server;
|
use pingora_core::server::Server;
|
||||||
|
@ -62,7 +62,7 @@ fn main() {
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
|
|
||||||
// read command line arguments
|
// read command line arguments
|
||||||
let opt = Opt::from_args();
|
let opt = Opt::parse();
|
||||||
let mut my_server = Server::new(Some(opt)).unwrap();
|
let mut my_server = Server::new(Some(opt)).unwrap();
|
||||||
my_server.bootstrap();
|
my_server.bootstrap();
|
||||||
|
|
||||||
|
|
|
@ -14,9 +14,9 @@
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use bytes::Bytes;
|
use bytes::Bytes;
|
||||||
|
use clap::Parser;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::net::ToSocketAddrs;
|
use std::net::ToSocketAddrs;
|
||||||
use structopt::StructOpt;
|
|
||||||
|
|
||||||
use pingora_core::server::configuration::Opt;
|
use pingora_core::server::configuration::Opt;
|
||||||
use pingora_core::server::Server;
|
use pingora_core::server::Server;
|
||||||
|
@ -117,7 +117,7 @@ impl ProxyHttp for Json2Yaml {
|
||||||
fn main() {
|
fn main() {
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
|
|
||||||
let opt = Opt::from_args();
|
let opt = Opt::parse();
|
||||||
let mut my_server = Server::new(Some(opt)).unwrap();
|
let mut my_server = Server::new(Some(opt)).unwrap();
|
||||||
my_server.bootstrap();
|
my_server.bootstrap();
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
|
|
||||||
use super::cert;
|
use super::cert;
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
|
use clap::Parser;
|
||||||
use http::header::VARY;
|
use http::header::VARY;
|
||||||
use http::HeaderValue;
|
use http::HeaderValue;
|
||||||
use once_cell::sync::Lazy;
|
use once_cell::sync::Lazy;
|
||||||
|
@ -36,7 +37,6 @@ use pingora_proxy::{ProxyHttp, Session};
|
||||||
use std::collections::{HashMap, HashSet};
|
use std::collections::{HashMap, HashSet};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::thread;
|
use std::thread;
|
||||||
use structopt::StructOpt;
|
|
||||||
|
|
||||||
pub struct ExampleProxyHttps {}
|
pub struct ExampleProxyHttps {}
|
||||||
|
|
||||||
|
@ -469,7 +469,7 @@ fn test_main() {
|
||||||
"-c".into(),
|
"-c".into(),
|
||||||
"tests/pingora_conf.yaml".into(),
|
"tests/pingora_conf.yaml".into(),
|
||||||
];
|
];
|
||||||
let mut my_server = pingora_core::server::Server::new(Some(Opt::from_iter(opts))).unwrap();
|
let mut my_server = pingora_core::server::Server::new(Some(Opt::parse_from(opts))).unwrap();
|
||||||
my_server.bootstrap();
|
my_server.bootstrap();
|
||||||
|
|
||||||
let mut proxy_service_http =
|
let mut proxy_service_http =
|
||||||
|
|
|
@ -30,7 +30,7 @@ pingora-proxy = { version = "0.2.0", path = "../pingora-proxy", optional = true,
|
||||||
pingora-cache = { version = "0.2.0", path = "../pingora-cache", optional = true, default-features = false }
|
pingora-cache = { version = "0.2.0", path = "../pingora-cache", optional = true, default-features = false }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
structopt = "0.3"
|
clap = { version = "4.4.18", features = ["derive"] }
|
||||||
tokio = { workspace = true, features = ["rt-multi-thread", "signal"] }
|
tokio = { workspace = true, features = ["rt-multi-thread", "signal"] }
|
||||||
matches = "0.1"
|
matches = "0.1"
|
||||||
env_logger = "0.9"
|
env_logger = "0.9"
|
||||||
|
|
|
@ -22,7 +22,7 @@ use pingora::services::background::{background_service, BackgroundService};
|
||||||
use pingora::services::{listening::Service as ListeningService, Service};
|
use pingora::services::{listening::Service as ListeningService, Service};
|
||||||
|
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use structopt::StructOpt;
|
use clap::Parser;
|
||||||
use tokio::time::interval;
|
use tokio::time::interval;
|
||||||
|
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
@ -106,7 +106,7 @@ pub fn main() {
|
||||||
|
|
||||||
print!("{USAGE}");
|
print!("{USAGE}");
|
||||||
|
|
||||||
let opt = Some(Opt::from_args());
|
let opt = Some(Opt::parse());
|
||||||
let mut my_server = Server::new(opt).unwrap();
|
let mut my_server = Server::new(opt).unwrap();
|
||||||
my_server.bootstrap();
|
my_server.bootstrap();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue