Browse Source

Update adding to groups

Samuel W. Flint 3 years ago
parent
commit
c90804d096
4 changed files with 17 additions and 8 deletions
  1. 1 1
      Cargo.lock
  2. 1 1
      Cargo.toml
  3. 1 1
      flake.nix
  4. 14 5
      src/lib/group.rs

+ 1 - 1
Cargo.lock

@@ -171,7 +171,7 @@ dependencies = [
 
 [[package]]
 name = "sync-it"
-version = "1.2.1"
+version = "1.2.2"
 dependencies = [
  "clap",
  "home",

+ 1 - 1
Cargo.toml

@@ -1,6 +1,6 @@
 [package]
 name = "sync-it"
-version = "1.2.1"
+version = "1.2.2"
 authors = ["Samuel W. Flint <swflint@flintfam.org>"]
 edition = "2018"
 

+ 1 - 1
flake.nix

@@ -21,7 +21,7 @@
 
             src = ./.;
 
-            cargoSha256 = "Ey6PJVmJXd2wCXemKfAHJ+EDVPtQezayuvOjQGQNGeU=";
+            cargoSha256 = "klPkLzqvD94Qm4dNSDTFRCQ+a2EIZxwJgAvcKgIP0Og=";
 
             meta = with pkgs.stdenv.lib; {
               description = "A simple, customizable synchronization tool.";

+ 14 - 5
src/lib/group.rs

@@ -27,8 +27,13 @@ pub fn add(config: &mut Config, name: &String) {
 pub fn add_repo(config: &mut Config, name: &String, repo: &String) {
     match config.groups.get_mut(&name.to_string()) {
         Some(group) => {
-            group.members.insert(repo.to_string());
-            config.is_changed = true;
+            match config.repositories.get(&repo.to_string()) {
+                Some(_) => {
+                    group.members.insert(repo.to_string());
+                    config.is_changed = true;
+                },
+                None => panic!("No known repository named \"{}\".", repo)
+            }
         },
         None => panic!("No known group named \"{}\".", name)
     }
@@ -37,8 +42,13 @@ pub fn add_repo(config: &mut Config, name: &String, repo: &String) {
 pub fn add_action(config: &mut Config, name: &String, action: &String) {
     match config.groups.get_mut(&name.to_string()) {
         Some(group) => {
-            group.actions_after.push(action.to_string());
-            config.is_changed = true;
+            match config.actions.get(&action.to_string()) {
+                Some(_) => {
+                    group.actions_after.push(action.to_string());
+                    config.is_changed = true;
+                },
+                None => panic!("No known action named \"{}\".", action)
+            }
         },
         None => panic!("No known group named \"{}\".", name)
     }
@@ -47,7 +57,6 @@ pub fn add_action(config: &mut Config, name: &String, action: &String) {
 pub fn remove_repo(config: &mut Config, name: &String, repo: &String) {
     match config.groups.get_mut(&name.to_string()) {
         Some(group) => {
-            // group.members.retain(|r| r != repo);
             group.members.remove(repo);
             config.is_changed = true;
         }