summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-05-18 13:50:25 +0200
committerMatthias Beyer <mail@beyermatthias.de>2020-05-18 14:25:41 +0200
commit7cf06683f29b5bd725b9ec15e2ffac77e039e51b (patch)
tree62d948d5409d4392b148e10c2d31ddbbf4615a3d /src
parent145a60d65756a4fb0a1429418a5f11f60fb1adcb (diff)
Add port configuration/cli argument
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src')
-rw-r--r--src/cli.rs7
-rw-r--r--src/configuration.rs6
-rw-r--r--src/main.rs2
3 files changed, 14 insertions, 1 deletions
diff --git a/src/cli.rs b/src/cli.rs
index 1eae246..c91b653 100644
--- a/src/cli.rs
+++ b/src/cli.rs
@@ -12,6 +12,9 @@ pub struct CLI {
#[structopt(short, long)]
trace: bool,
+ #[structopt(short, long)]
+ port: Option<u16>,
+
#[structopt(parse(from_os_str))]
configfile: Option<PathBuf>,
@@ -23,6 +26,10 @@ impl CLI {
pub fn cmd(&self) -> Option<&Command> {
self.cmd.as_ref()
}
+
+ pub fn port(&self) -> Option<u16> {
+ self.port.as_ref().map(|p| *p)
+ }
}
#[derive(Debug, PartialEq, StructOpt)]
diff --git a/src/configuration.rs b/src/configuration.rs
index c0d64b5..5b39090 100644
--- a/src/configuration.rs
+++ b/src/configuration.rs
@@ -15,6 +15,11 @@ pub struct Configuration {
/// The Port of the API
api_port: u16,
+ #[serde(rename = "app-port")]
+ #[get]
+ /// The Port of the App itself
+ app_port: u16,
+
#[serde(rename = "autoserve-chains")]
#[get]
/// Whether to automatically "ipfs pin" chain objects
@@ -84,6 +89,7 @@ impl Default for Configuration {
Configuration {
api_url : String::from("127.0.0.1"),
api_port : 5001,
+ app_port : 5002,
autoserve_chains : true,
autoserve_text_posts : true,
serve_blocked : false,
diff --git a/src/main.rs b/src/main.rs
index 7561e0c..3e0d972 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -75,7 +75,6 @@ fn start_server(cli: &CLI) -> bool {
async fn main() -> Result<()> {
let cli = cli()?;
let _ = env_logger::init();
- let port = port_check::free_local_port().expect("Could not find free port");
debug!("Logger initialized");
let config_file_name = PathBuf::from("distrox.toml");
@@ -88,6 +87,7 @@ async fn main() -> Result<()> {
::toml::from_str(&configstr)?
};
+ let port = cli.port().unwrap_or_else(|| *config.get_app_port());
let adr = format!("127.0.0.1:{}", port);
if start_server(&cli) {