From 4fe6bee83c0fce29579dd0b1c5b36640c3bf5afa Mon Sep 17 00:00:00 2001
From: J Phani Mahesh <phanimahesh@gmail.com>
Date: Tue, 9 Jul 2013 17:46:54 +0530
Subject: [PATCH 1/2] Prevent errors in case #{rails_root}/tmp does not exist

Dir.mkdir is not recursive. i.e - It doesn't do the equivalent of `mkdir -p` but just plain `mkdir`.
And that is a problem if #{rails_root}/tmp is missing. More here.
http://meta.discourse.org/t/keep-getting-the-same-error-every-start/8214
---
 config/discourse.pill.sample | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/config/discourse.pill.sample b/config/discourse.pill.sample
index 271f86777..cca0eeae7 100644
--- a/config/discourse.pill.sample
+++ b/config/discourse.pill.sample
@@ -45,7 +45,9 @@ Bluepill.application("discourse", :base_dir => ENV["HOME"] + '/.bluepill') do |a
   app.uid = user
 
   app.working_dir = rails_root
-  sockdir = "#{rails_root}/tmp/sockets"
+  tmpdir  = "#{rails_root}/tmp"
+  sockdir = "#{tmpdir}/sockets"
+  File.directory? tmpdir or Dir.mkdir tmpdir
   File.directory? sockdir or Dir.mkdir sockdir
   num_webs.times do |i|
     app.process("thin-#{i}") do |process|

From b1fcd523c634c155c0e46adc461b8d65239186c6 Mon Sep 17 00:00:00 2001
From: J Phani Mahesh <phanimahesh@gmail.com>
Date: Tue, 9 Jul 2013 22:26:27 +0530
Subject: [PATCH 2/2] Use FuleUtils.mkdir_p for cleaner code

---
 config/discourse.pill.sample | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/config/discourse.pill.sample b/config/discourse.pill.sample
index cca0eeae7..0dd6c81f2 100644
--- a/config/discourse.pill.sample
+++ b/config/discourse.pill.sample
@@ -45,10 +45,8 @@ Bluepill.application("discourse", :base_dir => ENV["HOME"] + '/.bluepill') do |a
   app.uid = user
 
   app.working_dir = rails_root
-  tmpdir  = "#{rails_root}/tmp"
-  sockdir = "#{tmpdir}/sockets"
-  File.directory? tmpdir or Dir.mkdir tmpdir
-  File.directory? sockdir or Dir.mkdir sockdir
+  sockdir = "#{rails_root}/tmp/sockets"
+  File.directory? sockdir or FileUtils.mkdir_p sockdir
   num_webs.times do |i|
     app.process("thin-#{i}") do |process|
       process.start_command  = "bundle exec thin start -e production -t 0 --socket #{sockdir}/thin.#{i}.sock --pid #{rails_root}/tmp/pids/thin#{i}.pid --log #{rails_root}/log/thin-#{i}.log --daemonize"