node: Add `--force` option to start node
Forces the node to start even in the presence of an existing socket file.
This commit is contained in:
parent
cf37950828
commit
c3e14c346b
|
|
@ -1,2 +1,2 @@
|
||||||
RADICLE_DOMAIN=seed.radicle.xyz
|
RADICLE_DOMAIN=seed.radicle.xyz
|
||||||
RADICLE_NODE_OPTIONS=--tracking-policy track --tracking-scope all
|
RADICLE_NODE_OPTIONS=--tracking-policy track --tracking-scope all --force
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
use std::{net, process};
|
use std::{fs, net, process};
|
||||||
|
|
||||||
use anyhow::{anyhow, Context as _};
|
use anyhow::{anyhow, Context as _};
|
||||||
use crossbeam_channel as chan;
|
use crossbeam_channel as chan;
|
||||||
|
|
@ -26,6 +26,7 @@ Options
|
||||||
--git-daemon <address> Address to bind git-daemon to (default 0.0.0.0:9418)
|
--git-daemon <address> Address to bind git-daemon to (default 0.0.0.0:9418)
|
||||||
--tracking-policy (track|block) Default tracking policy
|
--tracking-policy (track|block) Default tracking policy
|
||||||
--tracking-scope (trusted|all) Default scope for tracking policies
|
--tracking-scope (trusted|all) Default scope for tracking policies
|
||||||
|
--force Force start even if an existing control socket is found
|
||||||
--help Print help
|
--help Print help
|
||||||
--listen <address> Address to listen on
|
--listen <address> Address to listen on
|
||||||
|
|
||||||
|
|
@ -38,6 +39,7 @@ struct Options {
|
||||||
daemon: Option<net::SocketAddr>,
|
daemon: Option<net::SocketAddr>,
|
||||||
limits: service::config::Limits,
|
limits: service::config::Limits,
|
||||||
listen: Vec<net::SocketAddr>,
|
listen: Vec<net::SocketAddr>,
|
||||||
|
force: bool,
|
||||||
tracking_policy: Policy,
|
tracking_policy: Policy,
|
||||||
tracking_scope: Scope,
|
tracking_scope: Scope,
|
||||||
}
|
}
|
||||||
|
|
@ -54,6 +56,7 @@ impl Options {
|
||||||
let mut daemon = None;
|
let mut daemon = None;
|
||||||
let mut tracking_policy = Policy::default();
|
let mut tracking_policy = Policy::default();
|
||||||
let mut tracking_scope = Scope::default();
|
let mut tracking_scope = Scope::default();
|
||||||
|
let mut force = false;
|
||||||
|
|
||||||
while let Some(arg) = parser.next()? {
|
while let Some(arg) = parser.next()? {
|
||||||
match arg {
|
match arg {
|
||||||
|
|
@ -65,6 +68,9 @@ impl Options {
|
||||||
let addr = parser.value()?.parse()?;
|
let addr = parser.value()?.parse()?;
|
||||||
external_addresses.push(addr);
|
external_addresses.push(addr);
|
||||||
}
|
}
|
||||||
|
Long("force") => {
|
||||||
|
force = true;
|
||||||
|
}
|
||||||
Long("git-daemon") => {
|
Long("git-daemon") => {
|
||||||
let addr = parser.value()?.parse()?;
|
let addr = parser.value()?.parse()?;
|
||||||
daemon = Some(addr);
|
daemon = Some(addr);
|
||||||
|
|
@ -113,6 +119,7 @@ impl Options {
|
||||||
connect,
|
connect,
|
||||||
daemon,
|
daemon,
|
||||||
external_addresses,
|
external_addresses,
|
||||||
|
force,
|
||||||
limits,
|
limits,
|
||||||
listen,
|
listen,
|
||||||
tracking_policy,
|
tracking_policy,
|
||||||
|
|
@ -155,6 +162,10 @@ fn execute() -> anyhow::Result<()> {
|
||||||
let (notify, signals) = chan::bounded(1);
|
let (notify, signals) = chan::bounded(1);
|
||||||
signals::install(notify)?;
|
signals::install(notify)?;
|
||||||
|
|
||||||
|
if options.force {
|
||||||
|
log::debug!(target: "node", "Removing existing control socket..");
|
||||||
|
fs::remove_file(home.socket()).ok();
|
||||||
|
}
|
||||||
Runtime::init(home, config, options.listen, proxy, daemon, signals, signer)?.run()?;
|
Runtime::init(home, config, options.listen, proxy, daemon, signals, signer)?.run()?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue