Add needsPeerVerification function to check if peer cert should be verified
[folly.git] / folly / Shell.h
index 56df3d278498dbd994bd2fe03f21fbe79a1beb2d..a78692ff7c7c4b37dfadae2df211dc8c91ba335f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2016 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,6 +27,7 @@
 #include <string>
 #include <vector>
 
+#include <folly/Conv.h>
 #include <folly/Format.h>
 #include <folly/Range.h>
 
@@ -35,24 +36,13 @@ namespace folly {
 /**
  * Quotes an argument to make it suitable for use as shell command arguments.
  */
-std::string shellQuote(StringPiece argument) {
-  std::string quoted = "'";
-  for (auto c : argument) {
-    if (c == '\'') {
-      quoted += "'\\''";
-    } else {
-      quoted += c;
-    }
-  }
-  return quoted + "'";
-}
+std::string shellQuote(StringPiece argument);
 
 /**
   * Create argument array for `Subprocess()` for a process running in a
   * shell.
   *
-  * The shell to use is taken from the environment variable $SHELL,
-  * or /bin/sh if $SHELL is unset.
+  * The shell to use is always going to be `/bin/sh`.
   *
   * The format string should always be a string literal to protect against
   * shell injections. Arguments will automatically be escaped with `'`.
@@ -63,14 +53,10 @@ template <typename... Arguments>
 std::vector<std::string> shellify(
     const StringPiece format,
     Arguments&&... arguments) {
-  const char* shell = getenv("SHELL");
-  if (!shell) {
-    shell = "/bin/sh";
-  }
   auto command = sformat(
       format,
       shellQuote(to<std::string>(std::forward<Arguments>(arguments)))...);
-  return {shell, "-c", command};
+  return {"/bin/sh", "-c", command};
 }
 
 } // folly