summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client/connector.rs8
-rw-r--r--src/client/connector/connectors.rs2
-rw-r--r--src/client/connector/connectors/httpconnector.rs4
-rw-r--r--src/client/connector/manager.rs6
-rw-r--r--src/client/executor.rs8
-rw-r--r--src/client/executor/tasks.rs22
-rw-r--r--src/client/main.rs4
7 files changed, 24 insertions, 30 deletions
diff --git a/src/client/connector.rs b/src/client/connector.rs
index 3396349..d7f7b95 100644
--- a/src/client/connector.rs
+++ b/src/client/connector.rs
@@ -1,17 +1,17 @@
-pub(crate) mod connectors;
-pub(crate) mod manager;
+pub mod connectors;
+pub mod manager;
use std::{thread::sleep, time::Duration};
use crate::executor::{Executor, tasks::IntoTask};
#[derive(Debug)]
-pub(crate) enum Result<T: std::fmt::Display + IntoTask, E: std::fmt::Debug> {
+pub enum Result<T: std::fmt::Display + IntoTask, E: std::fmt::Debug> {
Ok(T),
Err(E),
}
-pub(crate) trait Connection {
+pub trait Connection {
type Ok: std::fmt::Display + IntoTask + AsRef<str> = String;
type Err: std::fmt::Debug;
diff --git a/src/client/connector/connectors.rs b/src/client/connector/connectors.rs
index f495d63..cc3f1e0 100644
--- a/src/client/connector/connectors.rs
+++ b/src/client/connector/connectors.rs
@@ -1 +1 @@
-pub(crate) mod httpconnector;
+pub mod httpconnector;
diff --git a/src/client/connector/connectors/httpconnector.rs b/src/client/connector/connectors/httpconnector.rs
index 2d58d1d..0dd198b 100644
--- a/src/client/connector/connectors/httpconnector.rs
+++ b/src/client/connector/connectors/httpconnector.rs
@@ -6,7 +6,7 @@ use reqwest::{
use crate::{connector::*, executor::tasks::TASKS};
use std::{thread::sleep, time::Duration};
-pub(crate) struct HTTPConnector {
+pub struct HTTPConnector {
network_updater: Executor,
pull_url: Url,
ntfy_url: Url,
@@ -52,7 +52,7 @@ impl HTTPConnector {
}
#[derive(Debug)]
-pub(crate) enum Err {
+pub enum Err {
Reqwest(Error),
StatusCode(StatusCode),
}
diff --git a/src/client/connector/manager.rs b/src/client/connector/manager.rs
index a7ef293..ff52daf 100644
--- a/src/client/connector/manager.rs
+++ b/src/client/connector/manager.rs
@@ -1,15 +1,15 @@
use crate::connector::Connection;
-pub(crate) struct ConnectorManager<C: Connection> {
+pub struct ConnectorManager<C: Connection> {
connector: C,
}
impl<C: Connection> ConnectorManager<C> {
- pub(crate) fn new(connector: C) -> Self {
+ pub fn new(connector: C) -> Self {
Self { connector }
}
- pub(crate) fn enter_loop(&mut self) {
+ pub fn enter_loop(&mut self) {
self.connector.r#loop();
}
}
diff --git a/src/client/executor.rs b/src/client/executor.rs
index 7f11941..8ef98b5 100644
--- a/src/client/executor.rs
+++ b/src/client/executor.rs
@@ -1,15 +1,15 @@
use crate::executor::tasks::{IntoTask, IntoTaskErr, Task};
-pub(crate) mod tasks;
+pub mod tasks;
-pub(crate) struct Executor {
+pub struct Executor {
task: &'static Task,
args: Box<[String]>,
output: Option<Result<String, String>>,
}
impl Executor {
- pub(crate) fn new(
+ pub fn new(
task: impl IntoTask,
args: impl IntoIterator<Item = String>,
) -> Result<Self, IntoTaskErr> {
@@ -21,7 +21,7 @@ impl Executor {
})
}
- pub(crate) fn run(&mut self) -> Option<&Result<String, String>> {
+ pub fn run(&mut self) -> Option<&Result<String, String>> {
self.output = Some((self.task.exec)(&self.args));
self.output.as_ref()
}
diff --git a/src/client/executor/tasks.rs b/src/client/executor/tasks.rs
index 148e262..3d9d940 100644
--- a/src/client/executor/tasks.rs
+++ b/src/client/executor/tasks.rs
@@ -1,4 +1,4 @@
-pub(crate) struct Task {
+pub struct Task {
pub name: &'static str,
pub exec: fn(&[String]) -> Result<String, String>,
}
@@ -9,7 +9,7 @@ impl PartialEq for &Task {
}
}
-pub(crate) const TASKS: &[Task] = &[
+pub const TASKS: &[Task] = &[
Task {
name: "nop",
exec: no_op,
@@ -34,13 +34,9 @@ fn exec(cmds: &[String]) -> Result<String, String> {
match Command::new(cmds[0].as_str()).args(&cmds[1..]).output() {
Ok(o) => {
if o.status.success() {
- Ok(String::from_utf8(o.stdout)
- .unwrap_or("Failed decoding vec<u8> -> String".to_string())
- .to_string())
+ Ok(String::from_utf8_lossy(&o.stdout).to_string())
} else {
- Err(String::from_utf8(o.stderr)
- .unwrap_or("Failed decoding vec<u8> -> String".to_string())
- .to_string())
+ Err(String::from_utf8_lossy(&o.stderr).to_string())
}
}
Err(e) => Err(e.to_string()),
@@ -112,12 +108,10 @@ fn network(switch: &[String]) -> Result<String, String> {
).arg(if switch { "on" } else { "off" }).output() {
Ok(o) => {
if o.status.success() {
- Ok(String::from_utf8(o.stdout)
- .unwrap_or("Failed decoding vec<u8> -> String".to_string())
+ Ok(String::from_utf8_lossy(&o.stdout)
.to_string())
} else {
- Err(String::from_utf8(o.stderr)
- .unwrap_or("Failed decoding vec<u8> -> String".to_string())
+ Err(String::from_utf8_lossy(&o.stderr)
.to_string())
}
}
@@ -135,11 +129,11 @@ fn network(switch: &[String]) -> Result<String, String> {
}
#[derive(Debug)]
-pub(crate) enum IntoTaskErr {
+pub enum IntoTaskErr {
NotFound(String),
}
-pub(crate) trait IntoTask {
+pub trait IntoTask {
fn into_task<'a>(self) -> Result<&'a Task, IntoTaskErr>;
}
diff --git a/src/client/main.rs b/src/client/main.rs
index 14c5636..9f922e0 100644
--- a/src/client/main.rs
+++ b/src/client/main.rs
@@ -4,8 +4,8 @@ use crate::connector::{connectors::httpconnector::HTTPConnector, manager::Connec
use signal_hook::consts::signal::*;
use signal_hook::iterator::Signals;
-mod connector;
-mod executor;
+pub(crate) mod connector;
+pub(crate) mod executor;
fn main() {
_ = Signals::new([