From de27cd076e4f04dac255c1744a0f0282d4a89c82 Mon Sep 17 00:00:00 2001
From: Michael Aaron Murphy <mmstickman@gmail.com>
Date: Fri, 27 Oct 2017 11:02:51 -0400
Subject: [PATCH] Re-apply rustfmt

---
 src/parser/pipelines/collector.rs | 253 ++++++++++++++++--------------
 src/parser/pipelines/mod.rs       |  24 ++-
 src/parser/statement/parse.rs     |  32 ++--
 3 files changed, 167 insertions(+), 142 deletions(-)

diff --git a/src/parser/pipelines/collector.rs b/src/parser/pipelines/collector.rs
index 1b047844..c5a647e7 100644
--- a/src/parser/pipelines/collector.rs
+++ b/src/parser/pipelines/collector.rs
@@ -315,7 +315,9 @@ impl<'a> Collector<'a> {
                     try_redir_out!(RedirectFrom::Stdout);
                 }
                 b'<' => {
-                    if let None = inputs { inputs = Some(Vec::new()); }
+                    if let None = inputs {
+                        inputs = Some(Vec::new());
+                    }
                     bytes.next();
                     if Some(b'<') == self.peek(i + 1) {
                         if Some(b'<') == self.peek(i + 2) {
@@ -343,8 +345,9 @@ impl<'a> Collector<'a> {
                             };
                             let heredoc = heredoc.lines().collect::<Vec<&str>>();
                             // Then collect the heredoc from standard input.
-                            inputs.as_mut().map(|x|
-                                x.push(Input::HereString(heredoc[1..heredoc.len() - 1].join("\n"))));
+                            inputs.as_mut().map(|x| {
+                                x.push(Input::HereString(heredoc[1..heredoc.len() - 1].join("\n")))
+                            });
                         }
                     } else if let Some(file) = self.arg(&mut bytes)? {
                         // Otherwise interpret it as stdin redirection
@@ -387,11 +390,13 @@ mod tests {
             assert_eq!("--abbrev-ref", pipeline.items[0].job.args[2]);
             assert_eq!("HEAD", pipeline.items[0].job.args[3]);
 
-            let expected = vec![Redirection {
-                from:   RedirectFrom::Stderr,
-                file:   "/dev/null".to_owned(),
-                append: false,
-            }];
+            let expected = vec![
+                Redirection {
+                    from:   RedirectFrom::Stderr,
+                    file:   "/dev/null".to_owned(),
+                    append: false,
+                },
+            ];
 
             assert_eq!(expected, pipeline.items[0].outputs);
         } else {
@@ -749,37 +754,39 @@ mod tests {
     // the input redirection shoud be associated with.
     fn multiple_redirect() {
         let input = "cat < file1 <<< \"herestring\" | tr 'x' 'y' ^>> err &> both > out";
-        let expected = Pipeline { items: vec![
-            PipeItem {
-                job: Job::new(array!["cat"], JobKind::Pipe(RedirectFrom::Stdout)),
-                inputs: vec![
-                    Input::File("file1".into()),
-                    Input::HereString("\"herestring\"".into()),
-                ],
-                outputs: Vec::new(),
-            },
-            PipeItem {
-                job: Job::new(array!["tr","'x'","'y'"], JobKind::Last),
-                inputs: Vec::new(),
-                outputs: vec![
-                    Redirection {
-                        from: RedirectFrom::Stderr,
-                        file: "err".into(),
-                        append: true,
-                    },
-                    Redirection {
-                        from: RedirectFrom::Both,
-                        file: "both".into(),
-                        append: false,
-                    },
-                    Redirection {
-                        from: RedirectFrom::Stdout,
-                        file: "out".into(),
-                        append: false,
-                    },
-                ]
-            }
-        ]};
+        let expected = Pipeline {
+            items: vec![
+                PipeItem {
+                    job:     Job::new(array!["cat"], JobKind::Pipe(RedirectFrom::Stdout)),
+                    inputs:  vec![
+                        Input::File("file1".into()),
+                        Input::HereString("\"herestring\"".into()),
+                    ],
+                    outputs: Vec::new(),
+                },
+                PipeItem {
+                    job:     Job::new(array!["tr", "'x'", "'y'"], JobKind::Last),
+                    inputs:  Vec::new(),
+                    outputs: vec![
+                        Redirection {
+                            from:   RedirectFrom::Stderr,
+                            file:   "err".into(),
+                            append: true,
+                        },
+                        Redirection {
+                            from:   RedirectFrom::Both,
+                            file:   "both".into(),
+                            append: false,
+                        },
+                        Redirection {
+                            from:   RedirectFrom::Stdout,
+                            file:   "out".into(),
+                            append: false,
+                        },
+                    ],
+                },
+            ],
+        };
         assert_eq!(parse(input), Statement::Pipeline(expected));
     }
 
@@ -788,27 +795,31 @@ mod tests {
     // the input redirection shoud be associated with.
     fn pipeline_with_redirection_append_stderr() {
         let input = "cat | echo hello | cat < stuff ^>> other";
-        let expected = Pipeline { items: vec![
-            PipeItem {
-                job: Job::new(array!["cat"], JobKind::Pipe(RedirectFrom::Stdout)),
-                inputs: Vec::new(),
-                outputs: Vec::new(),
-            },
-            PipeItem {
-                job: Job::new(array!["echo", "hello"], JobKind::Pipe(RedirectFrom::Stdout)),
-                inputs: Vec::new(),
-                outputs: Vec::new(),
-            },
-            PipeItem {
-                job: Job::new(array!["cat"], JobKind::Last),
-                inputs: vec![Input::File("stuff".into())],
-                outputs: vec![Redirection {
-                    from:   RedirectFrom::Stderr,
-                    file:   "other".into(),
-                    append: true,
-                }],
-            },
-        ]};
+        let expected = Pipeline {
+            items: vec![
+                PipeItem {
+                    job:     Job::new(array!["cat"], JobKind::Pipe(RedirectFrom::Stdout)),
+                    inputs:  Vec::new(),
+                    outputs: Vec::new(),
+                },
+                PipeItem {
+                    job:     Job::new(array!["echo", "hello"], JobKind::Pipe(RedirectFrom::Stdout)),
+                    inputs:  Vec::new(),
+                    outputs: Vec::new(),
+                },
+                PipeItem {
+                    job:     Job::new(array!["cat"], JobKind::Last),
+                    inputs:  vec![Input::File("stuff".into())],
+                    outputs: vec![
+                        Redirection {
+                            from:   RedirectFrom::Stderr,
+                            file:   "other".into(),
+                            append: true,
+                        },
+                    ],
+                },
+            ],
+        };
         assert_eq!(parse(input), Statement::Pipeline(expected));
     }
 
@@ -817,27 +828,31 @@ mod tests {
     // the input redirection shoud be associated with.
     fn pipeline_with_redirection_append_both() {
         let input = "cat | echo hello | cat < stuff &>> other";
-        let expected = Pipeline { items: vec![
-            PipeItem {
-                job: Job::new(array!["cat"], JobKind::Pipe(RedirectFrom::Stdout)),
-                inputs: Vec::new(),
-                outputs: Vec::new(),
-            },
-            PipeItem {
-                job: Job::new(array!["echo", "hello"], JobKind::Pipe(RedirectFrom::Stdout)),
-                inputs: Vec::new(),
-                outputs: Vec::new(),
-            },
-            PipeItem {
-                job: Job::new(array!["cat"], JobKind::Last),
-                inputs: vec![Input::File("stuff".into())],
-                outputs: vec![Redirection {
-                    from:   RedirectFrom::Both,
-                    file:   "other".into(),
-                    append: true,
-                }],
-            },
-        ]};
+        let expected = Pipeline {
+            items: vec![
+                PipeItem {
+                    job:     Job::new(array!["cat"], JobKind::Pipe(RedirectFrom::Stdout)),
+                    inputs:  Vec::new(),
+                    outputs: Vec::new(),
+                },
+                PipeItem {
+                    job:     Job::new(array!["echo", "hello"], JobKind::Pipe(RedirectFrom::Stdout)),
+                    inputs:  Vec::new(),
+                    outputs: Vec::new(),
+                },
+                PipeItem {
+                    job:     Job::new(array!["cat"], JobKind::Last),
+                    inputs:  vec![Input::File("stuff".into())],
+                    outputs: vec![
+                        Redirection {
+                            from:   RedirectFrom::Both,
+                            file:   "other".into(),
+                            append: true,
+                        },
+                    ],
+                },
+            ],
+        };
         assert_eq!(parse(input), Statement::Pipeline(expected));
     }
 
@@ -880,11 +895,13 @@ mod tests {
     fn herestring() {
         let input = "calc <<< $(cat math.txt)";
         let expected = Pipeline {
-            items: vec![PipeItem {
-                job: Job::new(array!["calc"], JobKind::Last),
-                inputs: vec![Input::HereString("$(cat math.txt)".into())],
-                outputs: vec![],
-            }]
+            items: vec![
+                PipeItem {
+                    job:     Job::new(array!["calc"], JobKind::Last),
+                    inputs:  vec![Input::HereString("$(cat math.txt)".into())],
+                    outputs: vec![],
+                },
+            ],
         };
         assert_eq!(Statement::Pipeline(expected), parse(input));
     }
@@ -893,11 +910,13 @@ mod tests {
     fn heredoc() {
         let input = "calc << EOF\n1 + 2\n3 + 4\nEOF";
         let expected = Pipeline {
-                items: vec![PipeItem {
-                    job: Job::new(array!["calc"], JobKind::Last),
-                    inputs: vec![Input::HereString("1 + 2\n3 + 4".into())],
+            items: vec![
+                PipeItem {
+                    job:     Job::new(array!["calc"], JobKind::Last),
+                    inputs:  vec![Input::HereString("1 + 2\n3 + 4".into())],
                     outputs: vec![],
-                }]
+                },
+            ],
         };
         assert_eq!(Statement::Pipeline(expected), parse(input));
     }
@@ -907,22 +926,26 @@ mod tests {
     // the input redirection shoud be associated with.
     fn piped_herestring() {
         let input = "cat | tr 'o' 'x' <<< $VAR > out.log";
-        let expected = Pipeline { items: vec![
-            PipeItem {
-                job: Job::new(array!["cat"], JobKind::Pipe(RedirectFrom::Stdout)),
-                inputs: Vec::new(),
-                outputs: Vec::new(),
-            },
-            PipeItem {
-            job: Job::new(array!["tr", "'o'", "'x'"], JobKind::Last),
-                inputs:  vec![Input::HereString("$VAR".into())],
-                outputs: vec![Redirection {
-                    from:   RedirectFrom::Stdout,
-                    file:   "out.log".into(),
-                    append: false,
-                }],
-            }
-        ]};
+        let expected = Pipeline {
+            items: vec![
+                PipeItem {
+                    job:     Job::new(array!["cat"], JobKind::Pipe(RedirectFrom::Stdout)),
+                    inputs:  Vec::new(),
+                    outputs: Vec::new(),
+                },
+                PipeItem {
+                    job:     Job::new(array!["tr", "'o'", "'x'"], JobKind::Last),
+                    inputs:  vec![Input::HereString("$VAR".into())],
+                    outputs: vec![
+                        Redirection {
+                            from:   RedirectFrom::Stdout,
+                            file:   "out.log".into(),
+                            append: false,
+                        },
+                    ],
+                },
+            ],
+        };
         assert_eq!(Statement::Pipeline(expected), parse(input));
     }
 
@@ -946,14 +969,16 @@ mod tests {
         let expected = Pipeline {
             items: vec![
                 PipeItem {
-                    job: Job::new(array!["echo", "zardoz"], JobKind::Last),
-                    inputs: Vec::new(),
-                    outputs: vec![Redirection {
-                        from: RedirectFrom::Stdout,
-                        file: "foo\\'bar".into(),
-                        append: true,
-                    }],
-                }
+                    job:     Job::new(array!["echo", "zardoz"], JobKind::Last),
+                    inputs:  Vec::new(),
+                    outputs: vec![
+                        Redirection {
+                            from:   RedirectFrom::Stdout,
+                            file:   "foo\\'bar".into(),
+                            append: true,
+                        },
+                    ],
+                },
             ],
         };
         assert_eq!(parse(input), Statement::Pipeline(expected));
diff --git a/src/parser/pipelines/mod.rs b/src/parser/pipelines/mod.rs
index f5648d46..cb28fbac 100644
--- a/src/parser/pipelines/mod.rs
+++ b/src/parser/pipelines/mod.rs
@@ -38,9 +38,9 @@ pub(crate) struct Pipeline {
 
 #[derive(Debug, PartialEq, Clone)]
 pub(crate) struct PipeItem {
-    pub job: Job,
+    pub job:     Job,
     pub outputs: Vec<Redirection>,
-    pub inputs: Vec<Input>,
+    pub inputs:  Vec<Input>,
 }
 
 impl PipeItem {
@@ -57,10 +57,12 @@ impl PipeItem {
 
         for input in self.inputs.iter_mut() {
             *input = match input {
-                &mut Input::File(ref s) =>
-                    Input::File(expand_string(s, expanders, false).join(" ")),
-                &mut Input::HereString(ref s) =>
-                    Input::HereString(expand_string(s, expanders, true).join(" ")),
+                &mut Input::File(ref s) => {
+                    Input::File(expand_string(s, expanders, false).join(" "))
+                }
+                &mut Input::HereString(ref s) => {
+                    Input::HereString(expand_string(s, expanders, true).join(" "))
+                }
             };
         }
 
@@ -71,11 +73,7 @@ impl PipeItem {
 }
 
 impl Pipeline {
-    pub(crate) fn new() -> Self {
-        Pipeline {
-            items: Vec::new(),
-        }
-    }
+    pub(crate) fn new() -> Self { Pipeline { items: Vec::new() } }
 
     pub(crate) fn expand<E: Expander>(&mut self, expanders: &E) {
         self.items.iter_mut().for_each(|i| i.expand(expanders));
@@ -102,11 +100,11 @@ impl fmt::Display for Pipeline {
                     &Input::File(ref file) => {
                         tokens.push("<".into());
                         tokens.push(file.clone());
-                    },
+                    }
                     &Input::HereString(ref string) => {
                         tokens.push("<<<".into());
                         tokens.push(string.clone());
-                    },
+                    }
                 }
             }
             for output in outputs {
diff --git a/src/parser/statement/parse.rs b/src/parser/statement/parse.rs
index 15ae09f0..39fb29ab 100644
--- a/src/parser/statement/parse.rs
+++ b/src/parser/statement/parse.rs
@@ -170,8 +170,8 @@ pub(crate) fn parse(code: &str) -> Statement {
 
 #[cfg(test)]
 mod tests {
-    use super::*;
     use self::pipelines::PipeItem;
+    use super::*;
     use parser::assignments::{KeyBuf, Primitive};
     use shell::{Job, JobKind};
     use shell::flow_control::Statement;
@@ -182,20 +182,22 @@ mod tests {
         let parsed_if = parse("if test 1 -eq 2");
         let correct_parse = Statement::If {
             expression: Pipeline {
-                items: vec![PipeItem {
-                    job: Job::new(
-                        vec![
-                            "test".to_owned(),
-                            "1".to_owned(),
-                            "-eq".to_owned(),
-                            "2".to_owned(),
-                        ].into_iter()
-                            .collect(),
-                        JobKind::Last,
-                    ),
-                    outputs: Vec::new(),
-                    inputs: Vec::new(),
-                }],
+                items: vec![
+                    PipeItem {
+                        job:     Job::new(
+                            vec![
+                                "test".to_owned(),
+                                "1".to_owned(),
+                                "-eq".to_owned(),
+                                "2".to_owned(),
+                            ].into_iter()
+                                .collect(),
+                            JobKind::Last,
+                        ),
+                        outputs: Vec::new(),
+                        inputs:  Vec::new(),
+                    },
+                ],
             },
             success:    vec![],
             else_if:    vec![],
-- 
GitLab