citrin 0.0.10 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/citrin.gemspec CHANGED
@@ -5,12 +5,12 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "citrin"
8
- s.version = "0.0.10"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Mike"]
12
- s.date = "2012-01-18"
13
- s.description = "This Gem helps you manage your citrin RailsServer (http://www.rails-server.ch). It creates Apache Configuration, MySQL Databases and Subversion Repositories."
12
+ s.date = "2015-04-14"
13
+ s.description = "This Gem helps you manage your citrin RailsServer (http://www.rails-server.ch). It creates Apache vhost configuration and helps create and configure MySQL databases."
14
14
  s.email = "mike@citrin.ch"
15
15
  s.executables = ["citrin"]
16
16
  s.extra_rdoc_files = [
@@ -29,10 +29,6 @@ Gem::Specification.new do |s|
29
29
  "VERSION",
30
30
  "bin/citrin",
31
31
  "citrin.gemspec",
32
- "commands/adjust_permissions",
33
- "commands/create_database",
34
- "commands/create_svn",
35
- "commands/create_webserver",
36
32
  "commands/help",
37
33
  "commands/remove_railsapp",
38
34
  "etc/citrin.yml",
@@ -42,51 +38,32 @@ Gem::Specification.new do |s|
42
38
  "lib/citrin/commands.rb",
43
39
  "lib/citrin/commands/create_database.rb",
44
40
  "lib/citrin/commands/create_webserver.rb",
41
+ "lib/citrin/commands/setup_logrotate.rb",
45
42
  "lib/citrin/helpers.rb",
46
43
  "templates/dev.database.erb",
47
44
  "templates/dev_virtualhost.erb",
48
45
  "templates/prod.database.erb",
49
46
  "templates/prod_virtualhost.erb",
47
+ "templates/logrotate.erb",
50
48
  "test/helper.rb",
51
49
  "test/test_citrin.rb"
52
50
  ]
53
- s.homepage = "http://github.com/firemind/citrin"
51
+ s.homepage = "http://github.com/citrininfo/citrin"
54
52
  s.licenses = ["MIT"]
55
53
  s.require_paths = ["lib"]
56
54
  s.rubygems_version = "1.8.10"
57
- s.summary = "Client for citrin RailsServer management"
55
+ s.summary = "Client for citrin Rails Server management"
58
56
 
59
57
  if s.respond_to? :specification_version then
60
58
  s.specification_version = 3
61
59
 
62
60
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
63
- s.add_runtime_dependency(%q<rake>, ["= 0.9.2.2"])
64
- s.add_runtime_dependency(%q<rails>, [">= 3.1.0"])
65
- s.add_runtime_dependency(%q<mysql2>, [">= 0"])
66
- s.add_development_dependency(%q<shoulda>, [">= 0"])
67
61
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
68
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
69
- s.add_development_dependency(%q<rcov>, [">= 0"])
70
- s.add_development_dependency(%q<rdoc>, ["= 3.9.4"])
71
62
  else
72
- s.add_dependency(%q<rake>, ["= 0.9.2.2"])
73
- s.add_dependency(%q<rails>, [">= 3.1.0"])
74
- s.add_dependency(%q<mysql2>, [">= 0"])
75
- s.add_dependency(%q<shoulda>, [">= 0"])
76
63
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
77
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
78
- s.add_dependency(%q<rcov>, [">= 0"])
79
- s.add_dependency(%q<rdoc>, ["= 3.9.4"])
80
64
  end
81
65
  else
82
- s.add_dependency(%q<rake>, ["= 0.9.2.2"])
83
- s.add_dependency(%q<rails>, [">= 3.1.0"])
84
- s.add_dependency(%q<mysql2>, [">= 0"])
85
- s.add_dependency(%q<shoulda>, [">= 0"])
86
66
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
87
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
88
- s.add_dependency(%q<rcov>, [">= 0"])
89
- s.add_dependency(%q<rdoc>, ["= 3.9.4"])
90
67
  end
91
68
  end
92
69
 
data/commands/help CHANGED
@@ -3,9 +3,8 @@ echo "Usage: citrin command [args]
3
3
  Commands are:
4
4
  create_database appname [env]
5
5
  create_webserver appname [env]
6
- create_svn_rails appname [env]
7
- create_svn appname
8
6
 
9
7
  Options for env:
10
8
  prod
11
- dev"
9
+ dev
10
+ (test)"
@@ -4,7 +4,6 @@ name=$1
4
4
 
5
5
  prod_path="/var/www/rails_apps/prod/"
6
6
  dev_path="/var/www/rails_apps/dev/"
7
- svn_path=/var/svn/$name/
8
7
  path="$dev_path$name"
9
8
  if [ -z $name ] ; then
10
9
  echo "usage: $0 appname"
@@ -13,7 +12,6 @@ fi
13
12
 
14
13
  rm -rf $prod_path$name
15
14
  rm -rf $dev_path$name
16
- rm -rf $svn_path
17
15
 
18
16
 
19
17
  rm -f /etc/apache2/sites-enabled/prod.$name.conf
data/lib/citrin/app.rb CHANGED
@@ -40,10 +40,15 @@ module Citrin
40
40
  raise "Invalid Environment"
41
41
  end
42
42
  end
43
- def webserver_config_file
43
+
44
+ def webserver_link_file
44
45
  "/etc/apache2/sites-enabled/#{@env}.#{@name}.conf"
45
46
  end
46
47
 
48
+ def webserver_config_file
49
+ "/etc/apache2/sites-available/#{@env}.#{@name}.conf"
50
+ end
51
+
47
52
  def db_name
48
53
  "#{@name}_#{@env}"
49
54
  end
data/lib/citrin/cli.rb CHANGED
@@ -13,12 +13,12 @@ class Citrin::CLI
13
13
  env = args[1]
14
14
  app = Citrin::App.new(name, env)
15
15
  case command
16
- when "create_svn_rails"
17
- puts `#{File.dirname(__FILE__)}/../../commands/create_svn #{args.join(" ")} --with-rails`
18
16
  when "create_database"
19
17
  return Commands::CreateDatabase.run(app)
20
18
  when "create_webserver"
21
19
  return Commands::CreateWebserver.run(app)
20
+ when "setup_logrotate"
21
+ return Commands::SetupLogrotate.run(app)
22
22
  when "write_config"
23
23
  `cp #{File.dirname(__FILE__)}/../../etc/citrin.yml /etc/citrin.yml`
24
24
  else
@@ -9,7 +9,7 @@ module Commands
9
9
  GRANT ALL ON #{@app.db_user}.* TO '#{@app.db_name}'@'localhost';
10
10
  SET PASSWORD FOR '#{@app.db_user}'@'localhost' = PASSWORD('#{@app.db_pass}');
11
11
  }
12
- `mysql --user=#{Citrin::config['db_user']} --password=#{Citrin::config['db_pass']} -e "#{db_queries}"`
12
+ `sudo mysql --defaults-extra-file=/root/.my.cnf -u root -e "#{db_queries}"`
13
13
 
14
14
  template_file = database_template_file(@app.env)
15
15
  template = ERB.new(File.read(template_file), 0, "%<>")
@@ -7,14 +7,14 @@ module Commands
7
7
  template_file = webserver_template_file(@app.env)
8
8
  template = ERB.new(File.read(template_file), 0, "%<>")
9
9
  result = template.result(binding)
10
- File.open(@app.webserver_config_file, 'w') {|f| f.write(result ) }
10
+ `sudo sh -c 'echo "#{result}" > #{@app.webserver_config_file}'`
11
+ `sudo ln -s #{@app.webserver_config_file} #{@app.webserver_link_file}`
11
12
 
12
13
  puts "Apache VirtualHost Konfiguration unter: #{@app.webserver_config_file}"
13
14
  puts "App Root unter: #{@app.app_root}"
14
15
  puts "URL: http://#{@app.url}"
15
16
 
16
- puts "Apache reload"
17
- `sudo service apache2 reload 2>&1 > /dev/null`
17
+ `sudo service apache2 reload`
18
18
  end
19
19
  end
20
20
  end
@@ -0,0 +1,15 @@
1
+ require 'erb'
2
+ module Commands
3
+ class SetupLogrotate
4
+ extend Citrin::Helpers
5
+ def self.run(app)
6
+ @app = app
7
+ logfile = rails_app_log_file(@app)
8
+ template_file = logrotate_config_template(@app)
9
+ template = ERB.new(File.read(template_file), 0, "%<>")
10
+ result = template.result(binding)
11
+ `sudo sh -c 'echo "#{result}" > /etc/logrotate.d/rails-app-#{@app.name}'`
12
+
13
+ end
14
+ end
15
+ end
@@ -8,4 +8,13 @@ module Citrin::Helpers
8
8
  env ||= "prod"
9
9
  File.dirname(__FILE__)+"/../../templates/#{env}.database.erb"
10
10
  end
11
+
12
+ def rails_app_log_file(app)
13
+ "#{app.app_root}/log/#{app.fullenv}.log"
14
+ end
15
+
16
+ def logrotate_config_template(app)
17
+ File.dirname(__FILE__)+"/../../templates/logrotate.erb"
18
+ end
19
+
11
20
  end
@@ -0,0 +1,7 @@
1
+ <%= logfile %> {
2
+ daily
3
+ rotate 12
4
+ compress
5
+ delaycompress
6
+ missingok
7
+ }
data/test/test_citrin.rb CHANGED
@@ -32,13 +32,6 @@ class TestCitrin < Test::Unit::TestCase
32
32
  assert_equal "200", statuscode
33
33
  end
34
34
 
35
- should "create svn config" do
36
- Citrin::CLI.start("create_svn", @appname)
37
- assert File.exists?("/var/svn/#{@appname}")
38
- svn_info=`svn info svn+ssh://$(hostname -f)/var/svn/#{@appname} 2> /dev/null`
39
- assert_not_equal "", svn_info
40
- end
41
-
42
35
  should "create database" do
43
36
  @app=Citrin::CLI.start("create_database", @appname)
44
37
  begin
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: citrin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,55 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-18 00:00:00.000000000Z
12
+ date: 2015-04-14 00:00:00.000000000 Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rake
16
- requirement: &20670960 !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - =
20
- - !ruby/object:Gem::Version
21
- version: 0.9.2.2
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: *20670960
25
- - !ruby/object:Gem::Dependency
26
- name: rails
27
- requirement: &20670280 !ruby/object:Gem::Requirement
28
- none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: 3.1.0
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: *20670280
36
- - !ruby/object:Gem::Dependency
37
- name: mysql2
38
- requirement: &20669540 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
43
- version: '0'
44
- type: :runtime
45
- prerelease: false
46
- version_requirements: *20669540
47
- - !ruby/object:Gem::Dependency
48
- name: shoulda
49
- requirement: &20668920 !ruby/object:Gem::Requirement
50
- none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- type: :development
56
- prerelease: false
57
- version_requirements: *20668920
58
14
  - !ruby/object:Gem::Dependency
59
15
  name: bundler
60
- requirement: &20641700 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
61
17
  none: false
62
18
  requirements:
63
19
  - - ~>
@@ -65,42 +21,14 @@ dependencies:
65
21
  version: 1.0.0
66
22
  type: :development
67
23
  prerelease: false
68
- version_requirements: *20641700
69
- - !ruby/object:Gem::Dependency
70
- name: jeweler
71
- requirement: &20640940 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
72
25
  none: false
73
26
  requirements:
74
27
  - - ~>
75
28
  - !ruby/object:Gem::Version
76
- version: 1.6.4
77
- type: :development
78
- prerelease: false
79
- version_requirements: *20640940
80
- - !ruby/object:Gem::Dependency
81
- name: rcov
82
- requirement: &20639860 !ruby/object:Gem::Requirement
83
- none: false
84
- requirements:
85
- - - ! '>='
86
- - !ruby/object:Gem::Version
87
- version: '0'
88
- type: :development
89
- prerelease: false
90
- version_requirements: *20639860
91
- - !ruby/object:Gem::Dependency
92
- name: rdoc
93
- requirement: &20639060 !ruby/object:Gem::Requirement
94
- none: false
95
- requirements:
96
- - - =
97
- - !ruby/object:Gem::Version
98
- version: 3.9.4
99
- type: :development
100
- prerelease: false
101
- version_requirements: *20639060
29
+ version: 1.0.0
102
30
  description: This Gem helps you manage your citrin RailsServer (http://www.rails-server.ch).
103
- It creates Apache Configuration, MySQL Databases and Subversion Repositories.
31
+ It creates Apache vhost configuration and helps create and configure MySQL databases.
104
32
  email: mike@citrin.ch
105
33
  executables:
106
34
  - citrin
@@ -120,10 +48,6 @@ files:
120
48
  - VERSION
121
49
  - bin/citrin
122
50
  - citrin.gemspec
123
- - commands/adjust_permissions
124
- - commands/create_database
125
- - commands/create_svn
126
- - commands/create_webserver
127
51
  - commands/help
128
52
  - commands/remove_railsapp
129
53
  - etc/citrin.yml
@@ -133,14 +57,16 @@ files:
133
57
  - lib/citrin/commands.rb
134
58
  - lib/citrin/commands/create_database.rb
135
59
  - lib/citrin/commands/create_webserver.rb
60
+ - lib/citrin/commands/setup_logrotate.rb
136
61
  - lib/citrin/helpers.rb
137
62
  - templates/dev.database.erb
138
63
  - templates/dev_virtualhost.erb
139
64
  - templates/prod.database.erb
140
65
  - templates/prod_virtualhost.erb
66
+ - templates/logrotate.erb
141
67
  - test/helper.rb
142
68
  - test/test_citrin.rb
143
- homepage: http://github.com/firemind/citrin
69
+ homepage: http://github.com/citrininfo/citrin
144
70
  licenses:
145
71
  - MIT
146
72
  post_install_message:
@@ -153,9 +79,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
153
79
  - - ! '>='
154
80
  - !ruby/object:Gem::Version
155
81
  version: '0'
156
- segments:
157
- - 0
158
- hash: 746247548110366803
159
82
  required_rubygems_version: !ruby/object:Gem::Requirement
160
83
  none: false
161
84
  requirements:
@@ -164,8 +87,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
87
  version: '0'
165
88
  requirements: []
166
89
  rubyforge_project:
167
- rubygems_version: 1.8.10
90
+ rubygems_version: 1.8.23
168
91
  signing_key:
169
92
  specification_version: 3
170
- summary: Client for citrin RailsServer management
93
+ summary: Client for citrin Rails Server management
171
94
  test_files: []
@@ -1,25 +0,0 @@
1
- #!/bin/bash
2
-
3
- chgrp -R rails-dev /var/svn/
4
- chmod 775 /var/svn/
5
-
6
- chgrp -R rails-dev /etc/apache2/templates
7
- chmod 775 /etc/apache2/templates
8
-
9
- chgrp -R rails-dev /etc/apache2/sites-enabled
10
- chmod 775 /etc/apache2/sites-enabled
11
-
12
- chgrp -R rails-dev /etc/apache2/sites-available
13
- chmod 775 /etc/apache2/sites-available
14
-
15
- chgrp -R rails-dev /var/www/rails_apps/prod
16
- chmod 775 /var/www/rails_apps/prod
17
-
18
- chgrp -R rails-dev /var/www/rails_apps/prod
19
- chmod 775 /var/www/rails_apps/prod
20
-
21
- chgrp -R rails-dev /var/www/rails_apps/dev
22
- chmod 775 /var/www/rails_apps/dev
23
-
24
- chgrp rails-dev /etc/citrin.yml
25
- chmod 660 /etc/citrin.yml
@@ -1,47 +0,0 @@
1
- #!/bin/bash
2
-
3
- dbuser=$(grep mysql-user /etc/citrin/citrin.conf | split -d"=" -f 2)
4
- dbpwd=$(grep mysql-password /etc/citrin/citrin.conf | split -d"=" -f 2 )
5
- name=#{args[0]}
6
- env=#{args[1]}
7
- if [ -z $name ] ; then
8
- echo "usage: $0 appname [env]"
9
- exit 1;
10
- fi
11
- if [ -z $env ] ; then
12
- env="prod"
13
- fi
14
-
15
- if [ $env != "prod" -a $env != "dev" -a $env != "test" ]; then
16
- echo "usage: $0 appname env"
17
- echo "Options for env: prod dev test"
18
- exit 2;
19
- fi
20
-
21
- db_name="${name}_$env"
22
- db_user="${name}_$env"
23
- db_user_pw=$(pwgen -1)
24
- mysql --user $dbuser --password=$dbpwd -e "create database $db_name;"
25
- #echo "Database $db_name created"
26
-
27
- mysql --user $dbuser --password=$dbpwd -e "GRANT ALL ON $db_user.* TO '$db_name'@'localhost';"
28
- mysql --user $dbuser --password=$dbpwd -e "SET PASSWORD FOR '$db_user'@'localhost' = PASSWORD('$db_user_pw');"
29
- #echo "User $db_user with password $db_user_pw created"
30
-
31
-
32
- echo "Put this in your config/database.yml"
33
-
34
- if [ $env = "prod" ]; then
35
- fullenv="production"
36
- elif [ $env = "dev" ]; then
37
- fullenv="development"
38
- elif [ $env = "test" ]; then
39
- fullenv="test"
40
- else
41
- echo "Invalid Env"
42
- exit 3
43
- fi
44
-
45
- echo ""
46
- echo "and run"
47
- echo " RAILS_ENV=$fullenv rake db:migrate"
data/commands/create_svn DELETED
@@ -1,36 +0,0 @@
1
- #!/bin/bash
2
-
3
- name=$1
4
- if [ -z $name ] ; then
5
- echo "usage: $0 appname [env] [options]"
6
- exit 1;
7
- fi
8
-
9
- env=$2
10
- if [ -z $env ] ; then
11
- env="prod"
12
- fi
13
-
14
- proj_owner=www-data
15
- svn_path=/var/svn/$name/
16
-
17
- function create_svn {
18
- echo "CREATING SVN"
19
- svnadmin create $svn_path
20
- chown -R $USER.rails-dev $svn_path
21
-
22
- echo "svn co svn+ssh://$(hostname -f)$svn_path"
23
- }
24
-
25
- create_svn
26
-
27
- for var1 in "$@"
28
- do
29
- case $var1 in
30
- --with-rails)
31
- cd /var/www/rails_apps/$env/
32
- svn co svn+ssh://$(hostname -f)$svn_path $name/
33
- rails new $name
34
- ;;
35
- esac
36
- done
@@ -1,27 +0,0 @@
1
- #!/bin/bash
2
-
3
- name=$1
4
- conf_template=$2
5
- conffile=$3
6
- url=$4
7
- app_root=$5
8
-
9
-
10
- function configure_apache {
11
-
12
- cp -p $conf_template $conffile
13
- sed_str=$(echo $app_root | sed -e 's/\(\/\|\\\|&\)/\\&/g')
14
- sed -i "s/PROJECT_ROOT/$sed_str/g" $conffile
15
- sed -i "s/URL/$url/g" $conffile
16
-
17
- echo ""
18
- echo "Apache VirtualHost Konfiguration unter: $conffile"
19
- echo "App Root unter: $app_root"
20
- echo "URL: http://$url"
21
-
22
-
23
- echo "Apache reload"
24
- sudo service apache2 reload 2>&1 > /dev/null
25
- }
26
-
27
- configure_apache