summaryrefslogtreecommitdiff
path: root/projects/3/example/bin/setup
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-01-12 19:49:28 -0700
committermo khan <mo@mokhan.ca>2025-01-12 19:49:28 -0700
commit98aa588670539dd7ee5720973f5c16f03af245da (patch)
tree8f37b8055eca8595cd1bf6ee71859d1e5676b5c7 /projects/3/example/bin/setup
parent1c6426eed6d9d53c7ec535fa7f5c84e9759985df (diff)
initial commit
Diffstat (limited to 'projects/3/example/bin/setup')
-rwxr-xr-xprojects/3/example/bin/setup34
1 files changed, 34 insertions, 0 deletions
diff --git a/projects/3/example/bin/setup b/projects/3/example/bin/setup
new file mode 100755
index 0000000..be3db3c
--- /dev/null
+++ b/projects/3/example/bin/setup
@@ -0,0 +1,34 @@
+#!/usr/bin/env ruby
+require "fileutils"
+
+APP_ROOT = File.expand_path("..", __dir__)
+
+def system!(*args)
+ system(*args, exception: true)
+end
+
+FileUtils.chdir APP_ROOT do
+ # This script is a way to set up or update your development environment automatically.
+ # This script is idempotent, so that you can run it at any time and get an expectable outcome.
+ # Add necessary setup steps to this file.
+
+ puts "== Installing dependencies =="
+ system("bundle check") || system!("bundle install")
+
+ # puts "\n== Copying sample files =="
+ # unless File.exist?("config/database.yml")
+ # FileUtils.cp "config/database.yml.sample", "config/database.yml"
+ # end
+
+ puts "\n== Preparing database =="
+ system! "bin/rails db:prepare"
+
+ puts "\n== Removing old logs and tempfiles =="
+ system! "bin/rails log:clear tmp:clear"
+
+ unless ARGV.include?("--skip-server")
+ puts "\n== Starting development server =="
+ STDOUT.flush # flush the output before exec(2) so that it displays
+ exec "bin/dev"
+ end
+end