wordless 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.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Wordless
2
2
 
3
- Command line tools to help manage your [Wordless](http://welaika.github.com/wordless/)-based WordPress sites.
3
+ A command line tool to help manage your [Wordless](http://welaika.github.com/wordless/)-based WordPress sites.
4
4
 
5
5
  WARNING: This gem is in early development and barely does anything useful yet.
6
6
 
@@ -10,8 +10,16 @@ WARNING: This gem is in early development and barely does anything useful yet.
10
10
 
11
11
  ## Usage
12
12
 
13
+ `wordless help` shows some help.
13
14
  `wordless wp mysite` creates a `mysite` directory and installs the latest stable release of WordPress.
14
- `wordless wp --locale=fr_FR --bare` installs the latest French version of WordPress, and removes default plugins and themes.
15
+ `wordless wp --locale=fr_FR --bare` installs the French version of WordPress, and removes default plugins and themes.
16
+ `wordless install` installs the Wordless plugin in the current WordPress installation as a git submodule.
17
+
18
+ ## Caveats
19
+
20
+ - If you attempt to download a WordPress localization that's outdated, the latest English version will be downloaded instead.
21
+ - Currently, the Wordless plugin is installed as a git submodule, so your WordPress directory must be a git repo.
22
+ - The Cucumber features run very slowly because they actually download WordPress and the Wordless plugin. I haven’t figured out how to properly stub the downloads.
15
23
 
16
24
  ## Contributing
17
25
 
@@ -1,3 +1,10 @@
1
+ Given /^WordPress is already installed$/ do
2
+ in_current_dir do
3
+ `git init`
4
+ end
5
+ create_dir('wp-content/plugins') # Will do for now
6
+ end
7
+
1
8
  Then /^a WordPress installation should exist in directory "([^"]*)"$/ do |dir|
2
9
  steps %Q{
3
10
  Then the following files should exist:
@@ -1,3 +1,4 @@
1
1
  Before('@long') do
2
- @aruba_io_wait_seconds = 60 # Allow WordPress to download
2
+ @aruba_io_wait_seconds = 30 # Allow WordPress to download
3
3
  end
4
+
@@ -0,0 +1,7 @@
1
+ Feature: Manage Wordless-based sites
2
+
3
+ @long
4
+ Scenario: Install Wordless into an existing WordPress installation
5
+ Given WordPress is already installed
6
+ When I run `wordless install`
7
+ Then the Wordless plugin should be installed
@@ -1,6 +1,6 @@
1
1
  Feature: Install WordPress
2
2
 
3
- @announce @long
3
+ @long
4
4
  Scenario: Create a plain new WordPress site
5
5
  When I run `wordless wp`
6
6
  Then a WordPress installation should exist in directory "wordpress"
data/lib/wordless/cli.rb CHANGED
@@ -1,18 +1,19 @@
1
1
  require 'thor'
2
2
  require 'net/http'
3
3
  require 'colored'
4
+ require 'rbconfig'
4
5
 
5
6
  module Wordless
6
7
  class CLI < Thor
7
8
 
8
- desc "wp DIR_NAME", "Downloads the latest stable version of WordPress in a new directory DIR_NAME (default is wordpress)"
9
+ desc "wp DIR_NAME", "download the latest stable version of WordPress in a new directory DIR_NAME (default is wordpress)"
9
10
  method_option :locale, :aliases => "-l", :desc => "WordPress locale (default is en_US)"
10
11
  method_option :bare, :aliases => "-b", :desc => "Remove default themes and plugins"
11
12
  def wp(dir_name = 'wordpress')
12
13
  download_url, version, locale = Net::HTTP.get('api.wordpress.org', "/core/version-check/1.5/?locale=#{options[:locale]}").split[2,3]
13
14
  downloaded_file = Tempfile.new('wordpress')
14
15
  begin
15
- puts "Downloading WordPress #{version} (#{locale})...".green
16
+ puts "Downloading WordPress #{version} (#{locale})..."
16
17
  `curl #{download_url} > #{downloaded_file.path} && unzip #{downloaded_file.path} -d #{dir_name}`
17
18
  subdirectory = Dir["#{dir_name}/*/"].first # This is probably 'wordpress', but don't assume
18
19
  FileUtils.mv Dir["#{subdirectory}*"], dir_name # Remove unnecessary directory level
@@ -22,21 +23,59 @@ module Wordless
22
23
  downloaded_file.unlink
23
24
  end
24
25
 
25
- puts %Q{Installed WordPress in directory "#{dir_name}"}.green
26
+ puts %Q{Installed WordPress in directory "#{dir_name}".}.green
26
27
 
27
28
  if options[:bare]
28
- puts "Removing default themes and plugins...".green
29
29
  dirs = %w(themes plugins).map {|d| "#{dir_name}/wp-content/#{d}"}
30
30
  FileUtils.rm_rf dirs
31
31
  FileUtils.mkdir dirs
32
32
  dirs.each do |dir|
33
33
  FileUtils.cp "#{dir_name}/wp-content/index.php", dir
34
34
  end
35
+ puts "Removed default themes and plugins.".green
35
36
  end
36
37
 
37
- puts "Done.".green
38
-
38
+ # http://stackoverflow.com/questions/4597490/platform-independent-way-of-detecting-if-git-is-installed
39
+ void = RbConfig::CONFIG['host_os'] =~ /msdos|mswin|djgpp|mingw/ ? 'NUL' : '/dev/null'
40
+ if git_installed?
41
+ if system 'git init'
42
+ puts "Initialized git repository.".green
43
+ else
44
+ puts "Couldn't initialize git repository.".red
45
+ end
46
+ else
47
+ puts "Didn't initialize git repository because git isn't installed.".yellow
48
+ end
49
+ end
50
+
51
+ desc "new [NAME]", "download WordPress in directory [NAME], install the Wordless plugin and create a Wordless theme"
52
+ method_option :locale, :aliases => "-l", :desc => "WordPress locale (default is en_US)"
53
+ def new(name)
54
+ # upcoming
39
55
  end
40
56
 
57
+ desc "install", "install the Wordless plugin into an existing WordPress installation as a git submodule"
58
+ def install
59
+ unless git_installed?
60
+ puts "Git is not available. Please install git.".red
61
+ return
62
+ end
63
+
64
+ unless File.directory? 'wp-content/plugins'
65
+ puts "Directory 'wp-content/plugins' not found. Make sure you're at the root level of a WordPress installation.".red
66
+ return
67
+ end
68
+
69
+ if system "git submodule add git://github.com/welaika/wordless.git wp-content/plugins/wordless && git submodule init && git submodule update"
70
+ puts "Installed Wordless plugin.".green
71
+ end
72
+ end
73
+
74
+ private
75
+
76
+ def git_installed?
77
+ void = RbConfig::CONFIG['host_os'] =~ /msdos|mswin|djgpp|mingw/ ? 'NUL' : '/dev/null'
78
+ system "git --version >>#{void} 2>&1"
79
+ end
41
80
  end
42
81
  end
@@ -1,3 +1,3 @@
1
1
  module Wordless
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/wordless.gemspec CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |gem|
6
6
  gem.email = ["etienne@molotov.ca"]
7
7
  gem.description = %q{Wordless}
8
8
  gem.summary = %q{Manage Wordless themes.}
9
- gem.homepage = "http://github.com/etienne/wordless"
9
+ gem.homepage = "http://github.com/etienne/wordless_gem"
10
10
 
11
11
  gem.add_dependency "thor"
12
12
  gem.add_dependency "colored"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wordless
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-11 00:00:00.000000000 Z
12
+ date: 2012-03-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
16
- requirement: &70127601371240 !ruby/object:Gem::Requirement
16
+ requirement: &70210065590180 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70127601371240
24
+ version_requirements: *70210065590180
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: colored
27
- requirement: &70127601370740 !ruby/object:Gem::Requirement
27
+ requirement: &70210065589560 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70127601370740
35
+ version_requirements: *70210065589560
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70127601370200 !ruby/object:Gem::Requirement
38
+ requirement: &70210065588060 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70127601370200
46
+ version_requirements: *70210065588060
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: cucumber
49
- requirement: &70127601369600 !ruby/object:Gem::Requirement
49
+ requirement: &70210065587480 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70127601369600
57
+ version_requirements: *70210065587480
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: aruba
60
- requirement: &70127601368820 !ruby/object:Gem::Requirement
60
+ requirement: &70210065586840 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70127601368820
68
+ version_requirements: *70210065586840
69
69
  description: Wordless
70
70
  email:
71
71
  - etienne@molotov.ca
@@ -85,12 +85,13 @@ files:
85
85
  - features/step_definitions/wordpress_steps.rb
86
86
  - features/support/env.rb
87
87
  - features/support/hooks.rb
88
+ - features/wordless.feature
88
89
  - features/wordpress.feature
89
90
  - lib/wordless.rb
90
91
  - lib/wordless/cli.rb
91
92
  - lib/wordless/version.rb
92
93
  - wordless.gemspec
93
- homepage: http://github.com/etienne/wordless
94
+ homepage: http://github.com/etienne/wordless_gem
94
95
  licenses: []
95
96
  post_install_message:
96
97
  rdoc_options: []
@@ -119,4 +120,5 @@ test_files:
119
120
  - features/step_definitions/wordpress_steps.rb
120
121
  - features/support/env.rb
121
122
  - features/support/hooks.rb
123
+ - features/wordless.feature
122
124
  - features/wordpress.feature