Compare commits
3 Commits
f572d6d8b2
...
a3c4a5f2dd
Author | SHA1 | Date |
---|---|---|
Thom Dickson | a3c4a5f2dd | |
Thom Dickson | a2f86770d1 | |
Thom Dickson | cab4deca11 |
|
@ -13,7 +13,7 @@ pub struct Config {
|
|||
pub repositories: Vec<Repository>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
#[derive(Debug, Eq, PartialEq, Serialize, Deserialize)]
|
||||
/// The internal representation of a single repository
|
||||
pub struct Repository {
|
||||
name: String,
|
||||
|
|
28
src/lib.rs
28
src/lib.rs
|
@ -1,7 +1,7 @@
|
|||
pub mod config;
|
||||
use config::{Config, Repository};
|
||||
use std::error::Error;
|
||||
use std::env;
|
||||
use std::error::Error;
|
||||
|
||||
#[derive(Debug)]
|
||||
/// Holds the current state of the application.
|
||||
|
@ -19,6 +19,7 @@ pub struct State {
|
|||
enum Cmd {
|
||||
Add,
|
||||
Help,
|
||||
Fetch,
|
||||
DumpConfig,
|
||||
}
|
||||
|
||||
|
@ -80,10 +81,19 @@ impl State {
|
|||
_ => {}
|
||||
},
|
||||
None => {
|
||||
eprintln!("No URL provided for \'number\' command\n");
|
||||
eprintln!("No URL provided for command\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
// fetch command
|
||||
else if x == "fetch" {
|
||||
match state.cmd {
|
||||
None => {
|
||||
state.cmd = Some(Cmd::Fetch);
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
arg = args.next();
|
||||
}
|
||||
|
||||
|
@ -106,11 +116,17 @@ pub fn run(state: State, mut config: Config) -> Result<(), Box<dyn Error>> {
|
|||
println!("{}", config.to_string().unwrap());
|
||||
}
|
||||
Some(Cmd::Add) => {
|
||||
config.repositories.push(Repository::new(match state.url {
|
||||
let repo = Repository::new(match state.url {
|
||||
Some(x) => x,
|
||||
None => String::new(),
|
||||
}));
|
||||
config.save_config()?;
|
||||
});
|
||||
if let None = config.repositories.iter().find(|x| **x == repo) {
|
||||
config.repositories.push(repo);
|
||||
config.save_config()?;
|
||||
println!("Repository has been added");
|
||||
} else {
|
||||
println!("Repository is already being tracked");
|
||||
}
|
||||
}
|
||||
Some(x) => {
|
||||
println!("{:?} hasn't been implemented yet!", x)
|
||||
|
@ -137,7 +153,7 @@ General
|
|||
help Print out this help message
|
||||
|
||||
Manage Repositories
|
||||
clone Add another git repo to keep track of
|
||||
add Add another git repo to keep track of
|
||||
fetch Update currently tracked repos"
|
||||
)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue