From 97c5d38097a6308c31e0e5f9afaef719d5080b5f Mon Sep 17 00:00:00 2001 From: Jacob Vosmaer Date: Thu, 2 Oct 2014 18:27:18 +0200 Subject: Add a counterexample to 'do it in Ruby' --- doc/development/shell_commands.md | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'doc/development') diff --git a/doc/development/shell_commands.md b/doc/development/shell_commands.md index 1f3908f4e27..23c8365c340 100644 --- a/doc/development/shell_commands.md +++ b/doc/development/shell_commands.md @@ -22,6 +22,12 @@ FileUtils.mkdir_p "tmp/special/directory" contents = `cat #{filename}` # Correct contents = File.read(filename) + +# Sometimes a shell command is just the best solution. The example below has no +# user input, and is hard to implement correctly in Ruby: delete all files and +# directories older than 120 minutes under /some/path, but not /some/path +# itself. +Gitlab::Popen.popen(%W(find /some/path -not -path /some/path -mmin +120 -delete)) ``` This coding style could have prevented CVE-2013-4490. -- cgit v1.2.1