summaryrefslogtreecommitdiff
path: root/bin/devel/generate
diff options
context:
space:
mode:
Diffstat (limited to 'bin/devel/generate')
-rwxr-xr-xbin/devel/generate88
1 files changed, 88 insertions, 0 deletions
diff --git a/bin/devel/generate b/bin/devel/generate
new file mode 100755
index 0000000..d71b454
--- /dev/null
+++ b/bin/devel/generate
@@ -0,0 +1,88 @@
+#!/usr/bin/env bash
+
+# The generate.sh bash file is used to generate all of the necessary
+# .rb files to run the website
+
+# To modify it and update the app do the following:
+# 1. Take care of uncommitted files
+# 2. Run `git checkout clean2`
+# 3. Run `git pull`
+# 4. Make any changes to `generate.sh`, and commit them.
+# If you have committed the desired changes to 'master', you can do
+# this simply with:
+# git checkout master generate.sh
+# git commit -m 'Get changes to generate.sh from master
+# 5. Run `./generate.sh`
+# 6. Run `git commit -m 'run ./generate.sh'`
+# 7. Run `git checkout master`
+# 8. Run `git merge clean2`
+# 9. Resolve any merge conflicts.
+# 10. Run `git push origin clean2`
+# 11. Run `git push origin master`
+
+set -xe
+
+# figure out where we are running from
+srcdir="$(dirname "$(dirname "$(dirname "$(readlink -f "$0")")")")"
+# srcdir / bin / devel / generate
+cd "$srcdir"
+
+export RAILS_ENV=development
+
+git rm -rf -- app test config/routes.rb db/migrate || true
+git rm -f -- config/initializers/mailboxer.rb || true
+git checkout clean-start -- app test config/routes.rb
+
+bundle install
+
+bundle exec rails generate mailboxer:install
+bundle exec rails generate simple_captcha
+bundle exec rails generate delayed_job:active_record
+
+# The whole shebang, models, views, and controllers
+bundle exec rails generate scaffold server default_user_permissions:integer
+bundle exec rails generate scaffold match status:integer tournament_stage:references winner:references
+bundle exec rails generate scaffold team
+bundle exec rails generate scaffold alert author:references message:text
+bundle exec rails generate scaffold pm author:references recipient:references message:text subject:text conversation:references
+bundle exec rails generate scaffold tournament game:references status:integer name:string:uniq min_players_per_team:integer max_players_per_team:integer min_teams_per_match:integer max_teams_per_match:integer scoring_method:string
+bundle exec rails generate scaffold game parent:references name:string:uniq min_players_per_team:integer max_players_per_team:integer min_teams_per_match:integer max_teams_per_match:integer scoring_method:string
+bundle exec rails generate scaffold user name:string email:string:uniq user_name:string:uniq
+bundle exec rails generate scaffold session user:references token:string:uniq
+bundle exec rails generate scaffold bracket user:references tournament:references name:string
+
+# Just models
+bundle exec rails generate model game_setting game:references name:string vartype:integer type_opt:text description:text display_order:integer default:text
+bundle exec rails generate model tournament_setting tournament:references name:string vartype:integer type_opt:text description:text display_order:integer value:text
+
+bundle exec rails generate model tournament_stage tournament:references structure:text scheduling_method:string seeding_method:string
+bundle exec rails generate model statistic user:references match:references name:string json_value:text
+
+bundle exec rails generate model remote_username game:references user:references json_value:text
+
+bundle exec rails generate model bracket_match bracket:references match:references predicted_winner:references
+
+bundle exec rails generate model api_request api_name:string
+
+# Join tables
+bundle exec rails generate migration CreateTournamentPlayersJoinTable players tournaments
+bundle exec rails generate migration CreateTournamentHostsJoinTable hosts tournaments
+bundle exec rails generate migration CreateTeamUserJoinTable teams users
+bundle exec rails generate migration CreateMatchTeamJoinTable matches teams
+
+# Just controllers
+bundle exec rails generate controller search
+bundle exec rails generate controller main
+
+# Migrations
+# By having these separate from the original 'generate', it makes it
+# not stick these in the views or anything.
+bundle exec rails generate migration AddHiddenAttrsToUser password_digest:string permissions:integer
+
+bundle exec rake db:drop
+bundle exec rake db:migrate
+bundle exec rake db:seed
+
+find app config -type f -name '*.rb' -exec bin/autoindent {} \;
+
+git add app test config db/migrate db/schema.rb Gemfile.lock