static String escapeShellArgument()

in rake-runner-agent/src/jetbrains/buildServer/agent/ruby/rvm/RVMCommandLineProcessor.java [180:212]


  static String escapeShellArgument(final String arg) {
    return StringUtil.escapeStr(arg, new StringUtil.EscapeInfoProvider2() {
      @Nullable
      @Override
      public String escape(final char c) {
        switch (c) {
          case '\"':
            return "\"";
          case '$':
            return "$";
          case '`':
            return "`";
          case '\\':
            return "\\";
          case '\n':
            return "\n";
          default:
            return null;
        }
      }

      @Nullable
      @Override
      public MapSerializerUtil.UnescapeResult unescape(@NotNull final String str, final int startPos) {
        return null;
      }

      @Override
      public char escapeCharacter() {
        return '\\';
      }
    });
  }