Permalink
Browse files

Initial commit, nothing functional except for configuration loading m…

…echanism.
  • Loading branch information...
0 parents commit 1c480ad0de50803f8d4f13da2cc2291998238db9 @wayneeseguin wayneeseguin committed Dec 30, 2010
Showing with 1,294 additions and 0 deletions.
  1. +1 −0 .gitignore
  2. +2 −0 CHANGELOG
  3. +19 −0 CONTRIBUTORS
  4. +23 −0 LICENCE
  5. +47 −0 README
  6. +2 −0 TEAM
  7. +1 −0 VERSION
  8. +19 −0 config/compilers/devkit.yml
  9. +37 −0 config/compilers/min_sys.yml
  10. +2 −0 config/components/editor.yml
  11. +2 −0 config/components/git.yml
  12. +2 −0 config/components/mysql.yml
  13. +2 −0 config/components/pg.yml
  14. +2 −0 config/components/rails.yml
  15. +2 −0 config/components/rails_docs.yml
  16. +2 −0 config/components/rails_guides.yml
  17. +2 −0 config/components/ruby_docs.yml
  18. +5 −0 config/components/ruby_installer.yml
  19. +2 −0 config/components/rubygems.yml
  20. +2 −0 config/components/sqlite3.yml
  21. +2 −0 config/components/sqlserver.yml
  22. +4 −0 config/components/ssl_certificates.yml
  23. +2 −0 config/components/subversion.yml
  24. +5 −0 config/utilities/bsdtar.yml
  25. +5 −0 config/utilities/sevenzip.yml
  26. +86 −0 docs/notes.txt
  27. +12 −0 lib/extensions/stdlib.rb
  28. +19 −0 lib/railsinstaller.rb
  29. 0 lib/railsinstaller/check.rb
  30. +8 −0 lib/railsinstaller/compilers.rb
  31. +7 −0 lib/railsinstaller/components.rb
  32. 0 lib/railsinstaller/extract.rb
  33. 0 lib/railsinstaller/fetch.rb
  34. +22 −0 lib/railsinstaller/helpers.rb
  35. +7 −0 lib/railsinstaller/utilities.rb
  36. +1 −0 lib/setup/globals.rb
  37. +9 −0 rake/compile.rake
  38. +8 −0 rake/package.rake
  39. +21 −0 rakefile.rb
  40. +8 −0 resources/chm/README
  41. +24 −0 resources/chm/contents.hhc.rhtml
  42. +13 −0 resources/chm/index.hhk.rhtml
  43. +23 −0 resources/chm/project.hhp.rhtml
  44. +9 −0 resources/devkit/LICENSE
  45. +31 −0 resources/devkit/devkit.iss
  46. +7 −0 resources/devkit/devkitvars.bat
  47. +7 −0 resources/devkit/devkitvars.ps1
  48. +333 −0 resources/devkit/dk.rb.erb
  49. +38 −0 resources/devkit/dk_config.iss.erb
  50. BIN resources/icons/ruby-doc.ico
  51. BIN resources/icons/ruby.ico
  52. BIN resources/icons/rubyw.ico
  53. +5 −0 resources/minsys/bin/gcc.bat
  54. +5 −0 resources/minsys/bin/make.bat
  55. +5 −0 resources/minsys/bin/sh.bat
  56. +17 −0 resources/railsinstaller/LICENSE
  57. 0 resources/railsinstaller/config.iss.erb
  58. 0 resources/railsinstaller/railsinstaller.iss
  59. +152 −0 resources/railsinstaller/railsinstaller_gui.iss
  60. +14 −0 resources/railsinstaller/setvars.bat
  61. +209 −0 resources/railsinstaller/util.iss
  62. BIN resources/railsinstaller/wizard-logo.bmp
@@ -0,0 +1 @@
+*.rbc
@@ -0,0 +1,2 @@
+0.0.0 - Initial repository created with configuration and directory outline.
+ No functionality at this point.
@@ -0,0 +1,19 @@
+# CONTRIBUTORS
+#
+# This file tries to detail all the developers, users and 3rd parties
+# that contributed to materialize this project
+#
+# Please feel free to add yourself or details, but keep the file in
+# as YAML formatted document. Thank you.
+
+---
+- Wayne E. Seguin
+ :email: wayneeseguin+railsinstaller@gmail.com
+ :website: http://rvm.beginrescueend.com/
+
+- Luis Lavena
+ :email: luislavena+railsinstaller@gmail.com
+ :website: http://blog.mmediasys.com/
+
+- Ruby Installer Team and Contributors
+ :website: http://rubyinstaller.org/
23 LICENCE
@@ -0,0 +1,23 @@
+Copyright (c) 2010-2011 RailsInstaller Team.
+All rights reserved. See CONTRIBUTORS for complete list.
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
47 README
@@ -0,0 +1,47 @@
+== RailsInstaller
+
+Rails development environment installer for Windows
+
+== Overview
+
+The goal of this project is to generate an installer that when run installs all
+of the most common components for a Rails development environment with no
+required prerequisites on a Windows system.
+
+== Usage
+
+The entry point to the system is via Rake.
+
+1. Download and install Install the Development Kit [DevKit]
+
+2. Download and Install Ruby 1.8.7
+
+ (1.8.7 recommended for maximum compatibility at this time)
+
+3. Use DevKit to compile all compilable components
+
+ > rake compile
+
+4. Use Inno Setup to package RailsInstaller
+
+ > rake package
+
+5. Use the generated RailsInstaller.exe and be happy!
+
+== Development Kit (DevKit)
+
+A MSYS/MinGW based toolkit that enables RailsInstaller to build native C/C++
+packages, both for Ruby and gems. DevKit is built and maintained by the
+wonderful folks over at the RubyInstaller (http://rubyinstaller.org/) project.
+
+
+== Ruby 1.8.7 on Windows
+
+RubyInstaller is a self contained package installer which installs Ruby and
+RubyGems on a windows system, head over to http://rubyinstaller.org/ for more
+information.
+
+== Inno Setup
+
+Inno Setup is a free installer for Windows programs, you can find more information
+about it on it's website http://www.jrsoftware.org/isinfo.php
2 TEAM
@@ -0,0 +1,2 @@
+Wayne E. Seguin (wayneeseguin+railsinstaller@gmail.com)
+Luis Lavena (luislavena+railsinstaller@gmail.com)
@@ -0,0 +1 @@
+0.0.0
@@ -0,0 +1,19 @@
+---
+:name: DevKit
+:installer_guid: "{D25478D4-72AE-40BF-829F-2C8CE49E2EE8}"
+:install_script: resources/devkit/dk.rb
+:install_script_erb: resources/devkit/dk.rb.erb
+:inno_script: resources/devkit/devkit.iss
+:inno_config: resources/devkit/dk_config.iss
+:inno_config_erb: resources/devkit/dk_config.iss.erb
+:setup_scripts:
+ - devkitvars.bat
+ - devkitvars.ps1
+ - dk.rb
+:default_compiler: tdm-32-4.5.1
+:valid_compilers:
+ - tdm-32-4.5.1
+ - tdm-32-4.5.0
+ - tdm-64-4.5.1
+ - llvm-32-2.8
+ - mingw-32-3.4.5
@@ -0,0 +1,37 @@
+---
+:name: MinSys
+:version: 1.0.16
+:url_1: http://downloads.sourceforge.net/mingw
+:target: sandbox/devkit
+:files:
+ :url_1:
+ - msysCORE-1.0.16-1-msys-1.0.16-bin.tar.lzma
+ - msysCORE-1.0.16-1-msys-1.0.16-ext.tar.lzma
+ - coreutils-5.97-3-msys-1.0.13-bin.tar.lzma
+ - coreutils-5.97-3-msys-1.0.13-ext.tar.lzma
+ - libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
+ - libintl-0.17-2-msys-dll-8.tar.lzma
+ - libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma
+ - make-3.81-3-msys-1.0.13-bin.tar.lzma
+ - perl-5.6.1_2-2-msys-1.0.13-bin.tar.lzma
+ - zlib-1.2.3-2-msys-1.0.13-dll.tar.lzma
+ - libgdbm-1.8.3-3-msys-1.0.13-dll-3.tar.lzma
+ - libcrypt-1.1_1-3-msys-1.0.13-dll-0.tar.lzma
+ - bash-3.1.17-4-msys-1.0.16-bin.tar.lzma
+ - termcap-0.20050421_1-2-msys-1.0.13-bin.tar.lzma
+ - libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma
+ - crypt-1.1_1-3-msys-1.0.13-bin.tar.lzma
+ - m4-1.4.14-1-msys-1.0.13-bin.tar.lzma
+ - bison-2.4.2-1-msys-1.0.13-bin.tar.lzma
+ - flex-2.5.35-2-msys-1.0.13-bin.tar.lzma
+ - findutils-4.4.2-2-msys-1.0.13-bin.tar.lzma
+ - sed-4.2.1-2-msys-1.0.13-bin.tar.lzma
+ - gawk-3.1.7-2-msys-1.0.13-bin.tar.lzma
+ - grep-2.5.4-2-msys-1.0.13-bin.tar.lzma
+ - less-436-2-msys-1.0.13-bin.tar.lzma
+ - diffutils-2.8.7.20071206cvs-3-msys-1.0.13-bin.tar.lzma
+ - texinfo-4.13a-2-msys-1.0.13-bin.tar.lzma
+ - libmagic-5.04-1-msys-1.0.13-dll-1.tar.lzma
+ - file-5.04-1-msys-1.0.13-bin.tar.lzma
+ - mintty-0.9.2-1-msys-1.0.16-bin.tar.lzma
+
@@ -0,0 +1,2 @@
+---
+:name: Editor
@@ -0,0 +1,2 @@
+---
+:name: Git
@@ -0,0 +1,2 @@
+---
+:name: Mysql
@@ -0,0 +1,2 @@
+---
+:name: Pg
@@ -0,0 +1,2 @@
+---
+:name: Rails
@@ -0,0 +1,2 @@
+---
+:name: RailsDocs
@@ -0,0 +1,2 @@
+---
+:name: RailsGuides
@@ -0,0 +1,2 @@
+---
+:name: RubyDocs
@@ -0,0 +1,5 @@
+---
+:name: RubyInstaller
+:release: 1.8.7-p330
+:versions:
+ 1.8.7-p330: "http://rubyforge.org/frs/download.php/73719/rubyinstaller-1.8.7-p330.exe"
@@ -0,0 +1,2 @@
+---
+:name: RubyGems
@@ -0,0 +1,2 @@
+---
+:name: Sqlite3
@@ -0,0 +1,2 @@
+---
+:name: SqlServer
@@ -0,0 +1,4 @@
+---
+:name: SSLCertificates
+:url: http://curl.haxx.se/ca
+:file: cacert.pem
@@ -0,0 +1,2 @@
+---
+:name: Subversion
@@ -0,0 +1,5 @@
+---
+:name: BSDTar
+:type: utility
+:filename: basic-bsdtar.exe
+:location: sandbox
@@ -0,0 +1,5 @@
+---
+:name: SevenZip
+:type: utility
+:filename: 7za.exe
+:location: sandbox
@@ -0,0 +1,86 @@
+MSYS is "Minimal System", is some sort of Cygwin set of libraries (but
+is not cygwin) that only exist to provide support for native
+compilation of libraries and tools under MinGW (GCC)
+
+For example, it provides perl and other components that make it easy
+to compile things like OpenSSL. Also provides a native bash that
+translates Windows paths (C:\Foo\Bar) into /c/Foo/Bar, making them
+compatible with cygwin-like make, used to compile stuff.
+
+MSYS is the complement of MinGW. Both together form DevKit.
+
+Inside DevKit you will notice a bin folder, and inside will find
+bash, sh and other scripts, then at the same level of 'bin' will find
+a 'mingw' folder that contains GCC and the Windows headers, used to
+compile.
+
+Both bin and mingw/bin folders needs to be added to the PATH so things
+like this can work:
+
+sh -c "autoconf"
+mkdir build
+cd build
+sh ../configure ...
+make
+
+We use DevKit build recipes and provide them to the
+users as SFX (work on installer has been put on hold for now)
+
+You can read more about the steps to install it here:
+
+https://github.com/oneclick/rubyinstaller/wiki/Development-Kit
+
+================================================================================
+
+
+On Wed, Dec 29, 2010 at 6:14 PM, Wayne E. Seguin <wayneeseguin@gmail.com> wrote:
+> Would you be able to walk me through an overview of how RubyInstaller works
+> from the developers perspective?
+>
+> Meaning things like:
+> * The workflow (Install Ruby and DevKit, then run 'rake ...' )
+
+To hack on RubyInstaller you only need a previous version of Ruby
+installed, nothing else.
+
+DevKit is downloaded by "rake devkit" and is part of the dependency
+change of building "rake ruby18" or "rake rub19"
+
+> * The code flow (Starts with the rake call, runs ....)
+
+git clone ...
+cd rubyinstaller
+rake ruby18 #=> results in all the libraries compiled and Ruby 1.8.7
+build in sandbox/ruby18_mingw
+rake ruby19 #=> only builds libraries that 1.9.2 depends on and put
+the compiled output at sandbox/ruby19_mingw
+
+Then, you need:
+
+gem install rdoc -v "~> 2.5.11"
+gem install rdoc_chm
+
+Also, install (in your computer) InnoSetup QuickStart Pack, unicode:
+
+http://www.jrsoftware.org/isdl.php#qsp
+
+When installed, ensure ISPP (pre-processor) is checked for installation.
+
+Once you're done with that, you can:
+
+rake ruby18:package
+
+Which will generate the rdoc (CHM) and will package the InnoSetup script.
+
+same for ruby19:package
+
+These tasks don't get added until you don't compile Ruby ;-)
+
+> I have some code ready to start playing with however I am unsure how you
+> would do the packaging and running, etc on windows.
+
+I think I covered all the steps above, for sure rake tasks can be
+cleaned to make it more clear the dependencies :-)
+
+Hope that helps,
+
@@ -0,0 +1,12 @@
+class String
+ #
+ # Converts a lower case and underscored string to UpperCamelCase.
+ #
+ # Examples:
+ # "build_path".camelcase # => "BuildPath"
+ #
+ def camelcase
+ self.gsub(/(?:\A|_)(.)/) { $1.upcase }
+ end
+
+end
@@ -0,0 +1,19 @@
+# Load standard libraries that are used.
+require "ostruct"
+require "yaml"
+
+# Ensure that the RailsInstaller project root is defined.
+module RailsInstaller
+ Root = File.expand_path(File.join(File.dirname(__FILE__), ".."))
+end
+
+# Load extensions to standard libraries that are used in RailsInstaller
+require "extensions/stdlib"
+
+# Load all RailsInstaller libraries
+for name in [ "helpers", "utilities", "components", "compilers" ]
+
+ printf "Loading RailsInstaller #{name}...\n" if $Flags[:verbose]
+ require "railsinstaller/#{name}"
+
+end
No changes.
@@ -0,0 +1,8 @@
+module RailsInstaller::Compilers
+
+ include RailsInstaller::Helpers
+
+ configure "compilers"
+
+end
+
@@ -0,0 +1,7 @@
+module RailsInstaller::Components
+
+ include RailsInstaller::Helpers
+
+ configure "components"
+
+end
No changes.
No changes.
@@ -0,0 +1,22 @@
+module RailsInstaller::Helpers
+
+ def self.included(target_module)
+
+ # Define configure on the given module
+ def target_module.configure(name)
+
+ Dir["#{RailsInstaller::Root}/config/#{name}/*.yml"].each do |file|
+
+ config = OpenStruct.new(YAML.load_file(file))
+
+ printf " => #{self.name}::#{config.name} = #{config.inspect}\n" if $Flags[:verbose]
+
+ const_set(config.name, config)
+
+ end
+
+ end
+
+ end
+
+end
@@ -0,0 +1,7 @@
+module RailsInstaller::Utilities
+
+ include RailsInstaller::Helpers
+
+ configure "utilities"
+
+end
@@ -0,0 +1 @@
+$Flags ||= { :verbose => false }
@@ -0,0 +1,9 @@
+namespace :railsinstaller do
+
+ desc "Compile all compilable RailsInstaller components."
+ task :compile do
+
+ end
+
+end
+
Oops, something went wrong.

0 comments on commit 1c480ad

Please sign in to comment.