Browse Source

install.sh

main
pvincent 5 days ago
parent
commit
ae0792ec71
  1. 20
      install.sh
  2. 160
      src/local_rails.template.rb
  3. 11
      src/railsrc

20
install.sh

@ -0,0 +1,20 @@
#!/usr/bin/env bash
# CONSTANTS
BASEDIR=$(dirname "$0")
# FUNCTIONS
function install {
mkdir -p $HOME/.local/rails
ln -sf $(realpath $BASEDIR/src/railsrc) $HOME/.railsrc
ln -sf $(realpath $BASEDIR/src/local_rails.template.rb) $HOME/.local/rails/template.rb
echo Rails Templating stuff installed succesfully!
}
# MAIN
install

160
src/local_rails.template.rb

@ -0,0 +1,160 @@
run "rm .ruby-version"
# GEMFILE
file "Gemfile", <<-CODE
ruby '#{`ruby -v | cut -d" " -f2`.strip}'
source 'https://rubygems.org'
gem 'bootsnap', require: false
gem 'dotenv-rails'
gem 'importmap-rails'
gem 'propshaft'
gem 'puma'
gem 'rails'
gem 'solid_cable'
gem 'solid_cache'
gem 'solid_queue'
gem 'sqlite3'
gem 'stimulus-rails'
gem 'tailwindcss-rails'
gem 'thruster', require: false
gem 'turbo-rails'
group :development do
gem 'debug'
gem 'erb-formatter'
gem 'error_highlight'
gem 'htmlbeautifier'
gem 'rails_live_reload'
gem 'rubocop', require: false
gem 'rubocop-packaging'
gem 'rubocop-performance'
gem 'rubocop-rspec'
gem 'rubocop-shopify'
gem 'rubocop-thread_safety'
gem 'ruby-lsp-rails'
end
CODE
# CODIUM
inside '.vscode' do
file "extensions.json", <<-CODE
{
"recommendations": [
"aki77.rails-db-schema",
"aliariff.vscode-erb-beautify",
"bierner.markdown-mermaid",
"bpruitt-goddard.mermaid-markdown-syntax-highlighting",
"bradlc.vscode-tailwindcss",
"formulahendry.auto-close-tag",
"formulahendry.auto-rename-tag",
"jgclark.vscode-todo-highlight",
"redhat.vscode-yaml",
"shopify.ruby-lsp",
"waderyan.gitblame",
"yzhang.markdown-all-in-one",
"mads-hartmann.bash-ide-vscode",
"etsi0.class-collapse",
]
}
CODE
file 'settings.json', <<-CODE
{
// -----------------256-color ANSI SUPPORT ----------------
"terminal.integrated.shellIntegration.enabled": false,
"terminal.integrated.minimumContrastRatio": 1,
"terminal.integrated.drawBoldTextInBrightColors": false,
"workbench.colorCustomizations": {
"terminal.background": "#1f1f1f",
"terminal.ansiYellow": "#b38210" //BROWN UNIX ANSI
},
"workbench.colorTheme": "Default Dark Modern",
// ---------------------------------------------------------
"[ruby]": {
"editor.defaultFormatter": "Shopify.ruby-lsp", // Use the Ruby LSP as the default formatter
"editor.semanticHighlighting.enabled": true, // Enable semantic highlighting
"editor.formatOnType": true // Enable formatting while typing
},
"[erb]": {
"editor.defaultFormatter": "aliariff.vscode-erb-beautify",
},
"debug.internalConsoleOptions": "neverOpen",
"editor.formatOnSave": true,
"editor.tabSize": 2, // Use 2 spaces for indentation
"editor.insertSpaces": true,
"emmet.includeLanguages": {
"erb": "html"
},
"files.associations": {
"*.html.erb": "erb",
"*.tailwind.css": "tailwindcss",
},
"tailwindCSS.emmetCompletions": true,
"todohighlight.enableDiagnostics": true,
"todohighlight.include": [
"**/*.js",
"**/*.html",
"**/*.css",
"**/*.rb",
"**/*.txt",
"**/*.md",
"**/*.erb",
"**/*.rake"
],
"vscode-erb-beautify.keepBlankLines": 1,
"terminal.integrated.cursorBlinking": true,
"terminal.integrated.localEchoEnabled": "off",
"terminal.integrated.fontLigatures.enabled": true,
"class-collapse.languages.supportedLanguages": [
"erb",
"html",
"javascript",
"markdown",
],
"class-collapse.style.openCollapseOpacity": 0.7,
"class-collapse.style.placeholderTextColor": "#FFFF0055",
"class-collapse.style.placeholderText": "",
}
CODE
end
# RUBOCOP
file ".rubocop.yml", <<-CODE
AllCops:
TargetRubyVersion: #{`ruby -v | cut -d" " -f2 | grep -oE "[0-9]+\.[0-9]+"`.strip}
NewCops: enable
Exclude:
- "db/schema.rb"
Style/FrozenStringLiteralComment:
Enabled: false
Style/Documentation:
Enabled: false
CODE
after_bundle do
generate(:controller, "#{@app_name} index")
route "root to: '#{@app_name}#index'"
# bin/dev
file "bin/dev", <<-CODE
#!/usr/bin/env bash
# launch rails with puma plugin tailwindcss with no 'Done in ms' messages!
rails server 2>&1 | grep -vE '(^Done in |^sh: 1: watchman)'
CODE
run "rm Procfile.dev"
run "grep -q 'plugin :tailwindcss' config/puma.rb || sed -i -E 's/(plugin :tmp_restart)/\\1\\n\\n# Run the Tailwindcss watcher alongside Puma\\nplugin :tailwindcss if ENV.fetch(\"RAILS_ENV\", \"development\") == \"development\"/' config/puma.rb"
initialized_git=system('test -f ~/.gitconfig && grep email ~/.gitconfig && grep name ~/.gitconfig')
if initialized_git
git :init
git add: "."
git commit: %Q{ -m 'initial commit' }
end
end

11
src/railsrc

@ -0,0 +1,11 @@
--force
--css=tailwind
--skip-ci
--skip-docker
--skip-kamal
--skip-jbuilder
--skip-brakeman
--skip-system-test
--template=~/.local/rails/template.rb
Loading…
Cancel
Save