diff --git a/script/auto_upgrade.rb b/script/auto_upgrade.rb index bb9153b..fc26ef2 100644 --- a/script/auto_upgrade.rb +++ b/script/auto_upgrade.rb @@ -7,6 +7,13 @@ # It can be run as any user that has access to /opt/postal and that can run # commands as postal. +CHANNEL = ARGV[0] || "stable" + +unless ['beta', 'stable'].include?(CHANNEL) + puts "Channel must be either 'stable' or 'beta'" + exit 1 +end + def run(command, options = {}) if system(command) # Good. @@ -19,11 +26,19 @@ end puts "Stopping current Postal instance" run "postal stop", :exit_on_failure => false -puts "Getting latest version of repository" -run "cd /opt/postal/app && git pull" +if File.exist?("/opt/postal/app/.git") + puts "Getting latest version of repository" + run "cd /opt/postal/app && git pull" +else + puts "Backing up previous application files" + run "rm -Rf /opt/postal/app.backup" + run "cp -R /opt/postal/app /opt/postal/app.backup" + puts "Downloading latest version of application" + run "wget https://postal.atech.media/packages/#{CHANNEL}/latest.tgz -O - | tar zxpv -C /opt/postal/app" +end puts "Installing dependencies" -run "postal bundle /opt/postal/app/vendor/bundle" +run "postal bundle /opt/postal/vendor/bundle" puts "Upgrading database & assets" run "postal upgrade"