cheese 0.0.1 → 0.0.2

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/README.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  == Cheese
2
2
 
3
- Cheese is a set of ruby scripts supplied with all Candid Mush
3
+ Cheese is a set of ruby scripts supplied with all Written Path
4
4
  Virtual Cheesey Servers but available to all under the MIT license.
5
5
  They reduce the steps needed to administrate a web server.
6
6
 
@@ -2,7 +2,7 @@ module Cheese #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 1
5
+ TINY = 2
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -119,7 +119,7 @@ private
119
119
  end
120
120
  else
121
121
  Cheese::Verbose.log_task("create the mongrel_cluster file") do
122
- Cheese::Mongrel.create(@added_domain.host, @added_domain.proxy.ports)
122
+ Cheese::Mongrel.create(@options[:name], @added_domain.proxy.ports)
123
123
  end
124
124
  end
125
125
  end
@@ -1,13 +1,10 @@
1
- # mysql.rb
2
- #
3
- # Create and remove mysql databases
4
- #
5
-
6
1
  require 'highline/import'
7
2
  require 'tempfile'
8
3
 
9
4
  module Cheese
10
-
5
+ #
6
+ # Create and remove mysql databases
7
+ #
11
8
  class Mysql
12
9
 
13
10
  # create a user and new db
@@ -1,10 +1,7 @@
1
- # postgresql.rb
2
- #
3
- # Create and remove postgresql databases
4
- #
5
-
6
1
  module Cheese
7
-
2
+ #
3
+ # Create and remove postgresql databases
4
+ #
8
5
  class Postgresql
9
6
  SILENCER = ">/dev/null 2>/dev/null"
10
7
 
@@ -1,8 +1,5 @@
1
- # process.rb
2
- #
3
1
  # Run a process as a different user
4
2
  # Thanks to the "Ruby Cookbook" for this one
5
-
6
3
  module Process
7
4
  def as_uid(uid=0)
8
5
  old_euid, old_uid = Process.euid, Process.uid
@@ -1,16 +1,19 @@
1
- # subversion.rb
2
- #
3
- # Acts as a subversion repository
4
- # This could be done with the svn ruby bindings, but it's simple
5
- # stuff that for now will be fine using system
6
-
7
1
  require 'fileutils'
8
2
 
9
3
  module Cheese
10
4
  module Subversion
5
+ #
6
+ # Represents the a subversion repository
7
+ # This could be done with the svn ruby bindings, but it's simple
8
+ # stuff that for now will be fine using system
9
+ #
11
10
  class Repository
12
11
  DEFAULT_ACCESS = { :anon => :none, :auth => :write }
13
12
  SILENCER = ">/dev/null 2>/dev/null"
13
+
14
+ # Create a Subversion repository for the given name this
15
+ # calls create_tmp_structure to give the tags, branches and trunk
16
+ # directories
14
17
  def self.create(name)
15
18
  # Create the repo
16
19
  %x{ svnadmin create /var/src/#{name} #{SILENCER} }
@@ -1,9 +1,7 @@
1
- # verbose.rb
2
- #
3
- # This performs tasks and spits out status depending on whether you want verbose
4
- #
5
-
6
1
  module Cheese
2
+ #
3
+ # This is a wrapper around actions that can be taken, it allows you
4
+ # to control the verbosity and also 'fake' an action on a dry run.
7
5
  class Verbose
8
6
  @@loud = false
9
7
  @@dry_run = false
@@ -1,10 +1,8 @@
1
- # domain.rb
2
- #
3
- # Represents an nginx domain, which encompasses the vhost and proxies
4
- #
5
-
6
1
  module Cheese
7
2
  module Nginx
3
+ #
4
+ # Represents an nginx domain, which encompasses the vhost and proxies
5
+ #
8
6
  class Domain
9
7
  attr_reader :vhost, :proxy, :host
10
8
 
@@ -1,15 +1,13 @@
1
- # mongrel.rb
2
- #
3
- # deals with mongrel cluster files and saves them as temp files and filename
4
- #
5
-
6
1
  require 'tmpdir'
7
2
 
8
3
  module Cheese
9
-
4
+ #
5
+ # Representing the Mongrel cluster config file, this will be expanded/refactored
6
+ # to include controlling mongrel too
10
7
  class Mongrel
11
8
 
12
- # Create a temp file in the tmp dir which has the right config for the given host and ports
9
+ # Create a temp file which has the right config for the given host and ports
10
+ # and import it into the Subversion repository for this domain
13
11
  def self.create(host, ports)
14
12
  mongrel_text = IO.read(File.dirname(__FILE__) + "/../../data/templates/mongrel.inc")
15
13
  count = ports.size
@@ -20,7 +18,7 @@ module Cheese
20
18
  Cheese::Subversion::Repository.import(host, File.join(Dir.tmpdir, "/config"), "/trunk/config")
21
19
  end
22
20
 
23
- # currently just deletes the file, it doesn't do subversion stuff as yet
21
+ # Requests that Subversion deletes the given config file for a host
24
22
  def self.remove(host)
25
23
  Cheese::Subversion::Repository.remove_file(host, "/config/mongrel_cluster.yml")
26
24
  end
@@ -5,6 +5,9 @@
5
5
 
6
6
  module Cheese
7
7
  module Nginx
8
+
9
+ # Represents the Nginx config file, giving the ability to manipulate
10
+ # the VHosts within it, and save changes.
8
11
  class Config
9
12
  attr_reader :filename
10
13
  attr_accessor :domains
@@ -30,6 +33,7 @@ module Cheese
30
33
  find_domains
31
34
  end
32
35
 
36
+ # Add a virtual host to the Nginx config file
33
37
  def add(options={})
34
38
  domain = options[:name]
35
39
  return false if domain.nil?
@@ -43,7 +47,8 @@ module Cheese
43
47
  @domains << new_domain
44
48
  return new_domain
45
49
  end
46
-
50
+
51
+ # Remove a virtual host from the Nginx config file
47
52
  def remove(object)
48
53
  if object.is_a? Cheese::Nginx::VirtualHost
49
54
  @vhosts.delete(object)
@@ -56,12 +61,15 @@ module Cheese
56
61
  return object[:name]
57
62
  end
58
63
  end
59
-
64
+
65
+ # Replace a virtual host in the Nginx config file
60
66
  def replace(options={})
61
67
  self.remove options[:name]
62
68
  self.add options
63
69
  end
64
-
70
+
71
+ # Save any changes made to the Nginx config file, this has to specifically called
72
+ # to be sure it's not accidentally called
65
73
  def save
66
74
  # self.as_www do
67
75
  Cheese::Verbose.log_task "Saving #{@domains.size} domains"
@@ -90,18 +98,21 @@ module Cheese
90
98
  Cheese::Verbose.log_task "Saved #{@filename}"
91
99
  end
92
100
 
101
+ # Stop the Nginx server
93
102
  def stop
94
103
  Cheese::Verbose.log_task "Stop nginx server" do
95
104
  %x{ /etc/init.d/nginx stop }
96
105
  end
97
106
  end
98
107
 
108
+ # Start the Nginx server
99
109
  def start
100
110
  Cheese::Verbose.log_task "Start nginx server" do
101
111
  %x{ /etc/init.d/nginx start }
102
112
  end
103
113
  end
104
114
 
115
+ # Restart the Nginx server
105
116
  def restart
106
117
  Cheese::Verbose.log_task "Restart nginx server" do
107
118
  %x{ /etc/init.d/nginx restart }
@@ -1,10 +1,8 @@
1
- # proxy.rb
2
- #
3
- # Represents the proxies to external processes that a vhost requires
4
- #
5
-
6
1
  module Cheese
7
2
  module Nginx
3
+ #
4
+ # Represents the proxies to external processes that a vhost requires
5
+ #
8
6
  class Proxy
9
7
  attr_reader :domain, :ports, :config
10
8
 
@@ -1,10 +1,8 @@
1
- # virtual_host.rb
2
- #
3
- # Represents a vhost in an nginx config file
4
- #
5
-
6
1
  module Cheese
7
2
  module Nginx
3
+ #
4
+ # Represents a vhost in an nginx config file
5
+ #
8
6
  class VirtualHost
9
7
  attr_reader :domain, :config
10
8
 
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.9.2
3
3
  specification_version: 1
4
4
  name: cheese
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.1
6
+ version: 0.0.2
7
7
  date: 2007-04-17 00:00:00 +01:00
8
8
  summary: Automate the creation of web applications and accompanying pieces e.g. Nginx, Subversion, Mongrel, Monit, S3.
9
9
  require_paths: