citrin 0.0.10 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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