From 4fe6bee83c0fce29579dd0b1c5b36640c3bf5afa Mon Sep 17 00:00:00 2001 From: J Phani Mahesh 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 271f8677711..cca0eeae7ca 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 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 cca0eeae7ca..0dd6c81f2fe 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"