about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bin/rustfmt.rs1
-rw-r--r--src/summary.rs10
2 files changed, 11 insertions, 0 deletions
diff --git a/src/bin/rustfmt.rs b/src/bin/rustfmt.rs
index 227ab849b3c..a802c3360ff 100644
--- a/src/bin/rustfmt.rs
+++ b/src/bin/rustfmt.rs
@@ -202,6 +202,7 @@ fn execute(opts: &Options) -> FmtResult<Summary> {
     match try!(determine_operation(&matches)) {
         Operation::Help => {
             print_usage(opts, "");
+            Summary::print_exit_codes();
             Ok(Summary::new())
         }
         Operation::Version => {
diff --git a/src/summary.rs b/src/summary.rs
index 5846afde7fc..6fc1bbded1d 100644
--- a/src/summary.rs
+++ b/src/summary.rs
@@ -63,4 +63,14 @@ impl Summary {
         self.has_parsing_errors |= other.has_parsing_errors;
         self.has_diff |= other.has_diff;
     }
+
+    pub fn print_exit_codes() {
+        let exit_codes = r#"Exit Codes:
+    0 = No errors
+    1 = Encountered operational errors e.g. an IO error
+    2 = Failed to reformat code because of parsing errors
+    3 = Code is valid, but it is impossible to format it properly
+    4 = Formatted code differs from existing code (write-mode diff only)"#;
+        println!("{}", exit_codes);
+    }
 }