Skip to content

Commit 1c480ad

Browse files
committed
Initial commit, nothing functional except for configuration loading mechanism.
0 parents  commit 1c480ad

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+1294
-0
lines changed

Diff for: .gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.rbc

Diff for: CHANGELOG

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
0.0.0 - Initial repository created with configuration and directory outline.
2+
No functionality at this point.

Diff for: CONTRIBUTORS

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# CONTRIBUTORS
2+
#
3+
# This file tries to detail all the developers, users and 3rd parties
4+
# that contributed to materialize this project
5+
#
6+
# Please feel free to add yourself or details, but keep the file in
7+
# as YAML formatted document. Thank you.
8+
9+
---
10+
- Wayne E. Seguin
11+
12+
:website: http://rvm.beginrescueend.com/
13+
14+
- Luis Lavena
15+
16+
:website: http://blog.mmediasys.com/
17+
18+
- Ruby Installer Team and Contributors
19+
:website: http://rubyinstaller.org/

Diff for: LICENCE

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
Copyright (c) 2010-2011 RailsInstaller Team.
2+
All rights reserved. See CONTRIBUTORS for complete list.
3+
4+
Permission is hereby granted, free of charge, to any person
5+
obtaining a copy of this software and associated documentation
6+
files (the "Software"), to deal in the Software without
7+
restriction, including without limitation the rights to use,
8+
copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the
10+
Software is furnished to do so, subject to the following
11+
conditions:
12+
13+
The above copyright notice and this permission notice shall be
14+
included in all copies or substantial portions of the Software.
15+
16+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23+
OTHER DEALINGS IN THE SOFTWARE.

Diff for: README

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
== RailsInstaller
2+
3+
Rails development environment installer for Windows
4+
5+
== Overview
6+
7+
The goal of this project is to generate an installer that when run installs all
8+
of the most common components for a Rails development environment with no
9+
required prerequisites on a Windows system.
10+
11+
== Usage
12+
13+
The entry point to the system is via Rake.
14+
15+
1. Download and install Install the Development Kit [DevKit]
16+
17+
2. Download and Install Ruby 1.8.7
18+
19+
(1.8.7 recommended for maximum compatibility at this time)
20+
21+
3. Use DevKit to compile all compilable components
22+
23+
> rake compile
24+
25+
4. Use Inno Setup to package RailsInstaller
26+
27+
> rake package
28+
29+
5. Use the generated RailsInstaller.exe and be happy!
30+
31+
== Development Kit (DevKit)
32+
33+
A MSYS/MinGW based toolkit that enables RailsInstaller to build native C/C++
34+
packages, both for Ruby and gems. DevKit is built and maintained by the
35+
wonderful folks over at the RubyInstaller (http://rubyinstaller.org/) project.
36+
37+
38+
== Ruby 1.8.7 on Windows
39+
40+
RubyInstaller is a self contained package installer which installs Ruby and
41+
RubyGems on a windows system, head over to http://rubyinstaller.org/ for more
42+
information.
43+
44+
== Inno Setup
45+
46+
Inno Setup is a free installer for Windows programs, you can find more information
47+
about it on it's website http://www.jrsoftware.org/isinfo.php

Diff for: TEAM

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Wayne E. Seguin ([email protected])
2+
Luis Lavena ([email protected])

Diff for: VERSION

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
0.0.0

Diff for: config/compilers/devkit.yml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
:name: DevKit
3+
:installer_guid: "{D25478D4-72AE-40BF-829F-2C8CE49E2EE8}"
4+
:install_script: resources/devkit/dk.rb
5+
:install_script_erb: resources/devkit/dk.rb.erb
6+
:inno_script: resources/devkit/devkit.iss
7+
:inno_config: resources/devkit/dk_config.iss
8+
:inno_config_erb: resources/devkit/dk_config.iss.erb
9+
:setup_scripts:
10+
- devkitvars.bat
11+
- devkitvars.ps1
12+
- dk.rb
13+
:default_compiler: tdm-32-4.5.1
14+
:valid_compilers:
15+
- tdm-32-4.5.1
16+
- tdm-32-4.5.0
17+
- tdm-64-4.5.1
18+
- llvm-32-2.8
19+
- mingw-32-3.4.5

Diff for: config/compilers/min_sys.yml

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
:name: MinSys
3+
:version: 1.0.16
4+
:url_1: http://downloads.sourceforge.net/mingw
5+
:target: sandbox/devkit
6+
:files:
7+
:url_1:
8+
- msysCORE-1.0.16-1-msys-1.0.16-bin.tar.lzma
9+
- msysCORE-1.0.16-1-msys-1.0.16-ext.tar.lzma
10+
- coreutils-5.97-3-msys-1.0.13-bin.tar.lzma
11+
- coreutils-5.97-3-msys-1.0.13-ext.tar.lzma
12+
- libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma
13+
- libintl-0.17-2-msys-dll-8.tar.lzma
14+
- libtermcap-0.20050421_1-2-msys-1.0.13-dll-0.tar.lzma
15+
- make-3.81-3-msys-1.0.13-bin.tar.lzma
16+
- perl-5.6.1_2-2-msys-1.0.13-bin.tar.lzma
17+
- zlib-1.2.3-2-msys-1.0.13-dll.tar.lzma
18+
- libgdbm-1.8.3-3-msys-1.0.13-dll-3.tar.lzma
19+
- libcrypt-1.1_1-3-msys-1.0.13-dll-0.tar.lzma
20+
- bash-3.1.17-4-msys-1.0.16-bin.tar.lzma
21+
- termcap-0.20050421_1-2-msys-1.0.13-bin.tar.lzma
22+
- libregex-1.20090805-2-msys-1.0.13-dll-1.tar.lzma
23+
- crypt-1.1_1-3-msys-1.0.13-bin.tar.lzma
24+
- m4-1.4.14-1-msys-1.0.13-bin.tar.lzma
25+
- bison-2.4.2-1-msys-1.0.13-bin.tar.lzma
26+
- flex-2.5.35-2-msys-1.0.13-bin.tar.lzma
27+
- findutils-4.4.2-2-msys-1.0.13-bin.tar.lzma
28+
- sed-4.2.1-2-msys-1.0.13-bin.tar.lzma
29+
- gawk-3.1.7-2-msys-1.0.13-bin.tar.lzma
30+
- grep-2.5.4-2-msys-1.0.13-bin.tar.lzma
31+
- less-436-2-msys-1.0.13-bin.tar.lzma
32+
- diffutils-2.8.7.20071206cvs-3-msys-1.0.13-bin.tar.lzma
33+
- texinfo-4.13a-2-msys-1.0.13-bin.tar.lzma
34+
- libmagic-5.04-1-msys-1.0.13-dll-1.tar.lzma
35+
- file-5.04-1-msys-1.0.13-bin.tar.lzma
36+
- mintty-0.9.2-1-msys-1.0.16-bin.tar.lzma
37+

Diff for: config/components/editor.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
:name: Editor

Diff for: config/components/git.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
:name: Git

Diff for: config/components/mysql.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
:name: Mysql

Diff for: config/components/pg.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
:name: Pg

Diff for: config/components/rails.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
:name: Rails

Diff for: config/components/rails_docs.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
:name: RailsDocs

Diff for: config/components/rails_guides.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
:name: RailsGuides

Diff for: config/components/ruby_docs.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
:name: RubyDocs

Diff for: config/components/ruby_installer.yml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
:name: RubyInstaller
3+
:release: 1.8.7-p330
4+
:versions:
5+
1.8.7-p330: "http://rubyforge.org/frs/download.php/73719/rubyinstaller-1.8.7-p330.exe"

Diff for: config/components/rubygems.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
:name: RubyGems

Diff for: config/components/sqlite3.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
:name: Sqlite3

Diff for: config/components/sqlserver.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
:name: SqlServer

Diff for: config/components/ssl_certificates.yml

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
:name: SSLCertificates
3+
:url: http://curl.haxx.se/ca
4+
:file: cacert.pem

Diff for: config/components/subversion.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
:name: Subversion

Diff for: config/utilities/bsdtar.yml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
:name: BSDTar
3+
:type: utility
4+
:filename: basic-bsdtar.exe
5+
:location: sandbox

Diff for: config/utilities/sevenzip.yml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
:name: SevenZip
3+
:type: utility
4+
:filename: 7za.exe
5+
:location: sandbox

Diff for: docs/notes.txt

+86
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
MSYS is "Minimal System", is some sort of Cygwin set of libraries (but
2+
is not cygwin) that only exist to provide support for native
3+
compilation of libraries and tools under MinGW (GCC)
4+
5+
For example, it provides perl and other components that make it easy
6+
to compile things like OpenSSL. Also provides a native bash that
7+
translates Windows paths (C:\Foo\Bar) into /c/Foo/Bar, making them
8+
compatible with cygwin-like make, used to compile stuff.
9+
10+
MSYS is the complement of MinGW. Both together form DevKit.
11+
12+
Inside DevKit you will notice a bin folder, and inside will find
13+
bash, sh and other scripts, then at the same level of 'bin' will find
14+
a 'mingw' folder that contains GCC and the Windows headers, used to
15+
compile.
16+
17+
Both bin and mingw/bin folders needs to be added to the PATH so things
18+
like this can work:
19+
20+
sh -c "autoconf"
21+
mkdir build
22+
cd build
23+
sh ../configure ...
24+
make
25+
26+
We use DevKit build recipes and provide them to the
27+
users as SFX (work on installer has been put on hold for now)
28+
29+
You can read more about the steps to install it here:
30+
31+
https://github.com/oneclick/rubyinstaller/wiki/Development-Kit
32+
33+
================================================================================
34+
35+
36+
On Wed, Dec 29, 2010 at 6:14 PM, Wayne E. Seguin <[email protected]> wrote:
37+
> Would you be able to walk me through an overview of how RubyInstaller works
38+
> from the developers perspective?
39+
>
40+
> Meaning things like:
41+
> * The workflow (Install Ruby and DevKit, then run 'rake ...' )
42+
43+
To hack on RubyInstaller you only need a previous version of Ruby
44+
installed, nothing else.
45+
46+
DevKit is downloaded by "rake devkit" and is part of the dependency
47+
change of building "rake ruby18" or "rake rub19"
48+
49+
> * The code flow (Starts with the rake call, runs ....)
50+
51+
git clone ...
52+
cd rubyinstaller
53+
rake ruby18 #=> results in all the libraries compiled and Ruby 1.8.7
54+
build in sandbox/ruby18_mingw
55+
rake ruby19 #=> only builds libraries that 1.9.2 depends on and put
56+
the compiled output at sandbox/ruby19_mingw
57+
58+
Then, you need:
59+
60+
gem install rdoc -v "~> 2.5.11"
61+
gem install rdoc_chm
62+
63+
Also, install (in your computer) InnoSetup QuickStart Pack, unicode:
64+
65+
http://www.jrsoftware.org/isdl.php#qsp
66+
67+
When installed, ensure ISPP (pre-processor) is checked for installation.
68+
69+
Once you're done with that, you can:
70+
71+
rake ruby18:package
72+
73+
Which will generate the rdoc (CHM) and will package the InnoSetup script.
74+
75+
same for ruby19:package
76+
77+
These tasks don't get added until you don't compile Ruby ;-)
78+
79+
> I have some code ready to start playing with however I am unsure how you
80+
> would do the packaging and running, etc on windows.
81+
82+
I think I covered all the steps above, for sure rake tasks can be
83+
cleaned to make it more clear the dependencies :-)
84+
85+
Hope that helps,
86+

Diff for: lib/extensions/stdlib.rb

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class String
2+
#
3+
# Converts a lower case and underscored string to UpperCamelCase.
4+
#
5+
# Examples:
6+
# "build_path".camelcase # => "BuildPath"
7+
#
8+
def camelcase
9+
self.gsub(/(?:\A|_)(.)/) { $1.upcase }
10+
end
11+
12+
end

Diff for: lib/railsinstaller.rb

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Load standard libraries that are used.
2+
require "ostruct"
3+
require "yaml"
4+
5+
# Ensure that the RailsInstaller project root is defined.
6+
module RailsInstaller
7+
Root = File.expand_path(File.join(File.dirname(__FILE__), ".."))
8+
end
9+
10+
# Load extensions to standard libraries that are used in RailsInstaller
11+
require "extensions/stdlib"
12+
13+
# Load all RailsInstaller libraries
14+
for name in [ "helpers", "utilities", "components", "compilers" ]
15+
16+
printf "Loading RailsInstaller #{name}...\n" if $Flags[:verbose]
17+
require "railsinstaller/#{name}"
18+
19+
end

Diff for: lib/railsinstaller/check.rb

Whitespace-only changes.

Diff for: lib/railsinstaller/compilers.rb

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
module RailsInstaller::Compilers
2+
3+
include RailsInstaller::Helpers
4+
5+
configure "compilers"
6+
7+
end
8+

Diff for: lib/railsinstaller/components.rb

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module RailsInstaller::Components
2+
3+
include RailsInstaller::Helpers
4+
5+
configure "components"
6+
7+
end

Diff for: lib/railsinstaller/extract.rb

Whitespace-only changes.

Diff for: lib/railsinstaller/fetch.rb

Whitespace-only changes.

Diff for: lib/railsinstaller/helpers.rb

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
module RailsInstaller::Helpers
2+
3+
def self.included(target_module)
4+
5+
# Define configure on the given module
6+
def target_module.configure(name)
7+
8+
Dir["#{RailsInstaller::Root}/config/#{name}/*.yml"].each do |file|
9+
10+
config = OpenStruct.new(YAML.load_file(file))
11+
12+
printf " => #{self.name}::#{config.name} = #{config.inspect}\n" if $Flags[:verbose]
13+
14+
const_set(config.name, config)
15+
16+
end
17+
18+
end
19+
20+
end
21+
22+
end

Diff for: lib/railsinstaller/utilities.rb

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module RailsInstaller::Utilities
2+
3+
include RailsInstaller::Helpers
4+
5+
configure "utilities"
6+
7+
end

Diff for: lib/setup/globals.rb

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
$Flags ||= { :verbose => false }

Diff for: rake/compile.rake

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace :railsinstaller do
2+
3+
desc "Compile all compilable RailsInstaller components."
4+
task :compile do
5+
6+
end
7+
8+
end
9+

0 commit comments

Comments
 (0)