execute_shell 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,11 +1,12 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem 'Platform', '~> 0.4.0', :group => [:rake, :test],
4
- :require => 'platform'
5
- gem 'open4', '~> 1.0.1', :group => [:rake, :test]
6
- gem 'win32-open3-19', '~> 0.0.1', :group => [:rake, :test], :require => 'open3'
7
-
8
3
  group :rake do
9
- gem 'rake', '0.8.7'
10
- gem 'highline', '~> 1.6.1', :require => 'highline/import'
4
+ gem 'rake_tasks', '~> 0.0.1'
5
+ end
6
+
7
+ group :test do
8
+ gem 'Platform', '~> 0.4.0', :require => 'platform'
9
+ gem 'app_mode', '~> 0.0.1'
10
+ gem 'open4', '~> 1.0.1'
11
+ gem 'win32-open3-19', '~> 0.0.1', :require => 'open3'
11
12
  end
data/Gemfile.lock CHANGED
@@ -2,9 +2,11 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  Platform (0.4.0)
5
- highline (1.6.1)
5
+ app_mode (0.0.1)
6
6
  open4 (1.0.1)
7
7
  rake (0.8.7)
8
+ rake_tasks (0.0.1)
9
+ rake (~> 0.8.7)
8
10
  win32-open3-19 (0.0.1)
9
11
 
10
12
  PLATFORMS
@@ -12,7 +14,7 @@ PLATFORMS
12
14
 
13
15
  DEPENDENCIES
14
16
  Platform (~> 0.4.0)
15
- highline (~> 1.6.1)
17
+ app_mode (~> 0.0.1)
16
18
  open4 (~> 1.0.1)
17
- rake (= 0.8.7)
19
+ rake_tasks (~> 0.0.1)
18
20
  win32-open3-19 (~> 0.0.1)
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'execute_shell'
3
- s.version = '0.0.3'
3
+ s.version = '0.0.4'
4
4
 
5
5
  s.summary = 'Cross-platform shell commands.'
6
6
  s.description = 'Execute Shell provides ' +
@@ -21,9 +21,9 @@ Gem::Specification.new do |s|
21
21
  s.add_dependency 'Platform', '~> 0.4.0'
22
22
  s.add_dependency 'open4', '~> 1.0.1'
23
23
  s.add_dependency 'win32-open3-19', '~> 0.0.1'
24
+ s.add_dependency 'app_mode', '~> 0.0.1'
24
25
 
25
- s.add_development_dependency 'rake', '0.8.7'
26
- s.add_development_dependency 'highline', '~> 1.6.1'
26
+ s.add_development_dependency 'rake_tasks', '~> 0.0.1'
27
27
 
28
28
  s.has_rdoc = true
29
29
  end
data/lib/execute_shell.rb CHANGED
@@ -1,6 +1,6 @@
1
+ require 'app_mode'
1
2
  require 'platform'
2
3
  require 'open4' if [:linux].include?(Platform::IMPL)
3
4
  require 'open3' if [:mingw].include?(Platform::IMPL)
4
5
 
5
- require_relative 'execute_shell/script_env'
6
6
  require_relative 'execute_shell/execute_shell'
@@ -34,6 +34,8 @@
34
34
 
35
35
  # Contains methods for returning output from console commands.
36
36
  module ExecuteShell
37
+ # Indicates the mode that ExecuteShell is running in.
38
+ ExecuteShellMode = AppMode.new(:production)
37
39
 
38
40
  # Returns output from a console command.
39
41
  # ==== Input
@@ -62,7 +64,7 @@ module ExecuteShell
62
64
  path ||= Dir.getwd
63
65
 
64
66
  begin
65
- STDOUT.puts command if ScriptEnv.development
67
+ STDOUT.puts command if ExecuteShellMode.development
66
68
 
67
69
  block = case Platform::IMPL
68
70
  when :mingw
@@ -145,7 +147,7 @@ module ExecuteShell
145
147
  def format_error(exception)
146
148
  error_format = '%s: %s%s'
147
149
  error_format % [exception.class, exception.message,
148
- ScriptEnv.development ? "\n#{exception.backtrace.join("\n")}" : '']
150
+ ExecuteShellMode.development ? "\n#{exception.backtrace.join("\n")}" : '']
149
151
  end
150
152
 
151
153
  # Raises a NotImplementedError.
@@ -172,7 +174,7 @@ module ExecuteShell
172
174
  original = File.expand_path(Dir.getwd)
173
175
  out = nil
174
176
 
175
- STDOUT.puts path if ScriptEnv.development
177
+ STDOUT.puts path if ExecuteShellMode.development
176
178
 
177
179
  begin
178
180
  Dir.chdir path unless path == original
data/rakefile CHANGED
@@ -1,122 +1,2 @@
1
- root_path = File.expand_path(File.dirname(__FILE__))
2
1
  require 'bundler'
3
2
  Bundler.require :rake
4
- require 'rake/testtask'
5
- require 'rake/rdoctask'
6
- require 'rake/clean'
7
- require_relative 'lib/execute_shell'
8
-
9
- include ExecuteShell
10
-
11
- task :default => [:tests]
12
-
13
- # Include any ruby files in the tasks folder.
14
- task_files = Dir[
15
- File.join(File.expand_path(File.dirname(__FILE__)), 'tasks', '*.rb')]
16
-
17
- task_files.each do |rake_file|
18
- require rake_file
19
- end
20
-
21
- # Add a task to run all tests.
22
- Rake::TestTask.new('tests') do |task|
23
- task.pattern = 'test/*_test.rb'
24
- task.verbose = true
25
- task.warning = true
26
- end
27
- Rake::Task[:tests].comment = 'Run all tests'
28
-
29
- ################################################################################
30
- namespace :test do
31
- ################################################################################
32
- file_list = Dir['test/*_test.rb']
33
-
34
- # Add a distinct test task for each test file.
35
- file_list.each do |item|
36
- # Get the name to use for the task by removing '_test.rb' from the name.
37
- task_name = File.basename(item, '.rb').gsub(/_test$/, '')
38
-
39
- # Add each test.
40
- Rake::TestTask.new(task_name) do |task|
41
- task.pattern = item
42
- task.verbose = true
43
- task.warning = true
44
- end
45
- end
46
- ################################################################################
47
- end # :test
48
- ################################################################################
49
-
50
- ################################################################################
51
- namespace :rdoc do
52
- ################################################################################
53
-
54
- # Set the paths used by each of the rdoc options.
55
- RDOC_FILES = {
56
- :all => ['**/*.rb'],
57
- :test => ['test/lib/**/*.rb'],
58
- :app => [
59
- '*.rb',
60
- 'lib/**/*.rb',
61
- ],
62
- }
63
-
64
- # Loop through the typs of rdoc files to generate an rdoc task for each one.
65
- RDOC_FILES.keys.each do |rdoc_task|
66
- Rake::RDocTask.new(
67
- :rdoc => rdoc_task,
68
- :clobber_rdoc => "#{rdoc_task}:clobber",
69
- :rerdoc => "#{rdoc_task}:force") do |rdtask|
70
- rdtask.rdoc_dir = "doc/#{rdoc_task}"
71
- rdtask.options << '--charset' << 'utf8'
72
- rdtask.rdoc_files.include RDOC_FILES[rdoc_task], 'README'
73
- rdtask.main = 'README'
74
- end
75
-
76
- Rake::Task[rdoc_task].comment =
77
- "Generate #{rdoc_task} RDoc documentation."
78
- end
79
- ################################################################################
80
- end # :rdoc
81
- ################################################################################
82
-
83
- desc 'Search for a string in all files using a case insensitive search.'
84
- task :grep, [:text] do |task, args|
85
- # Set default search text to t-o-d-o.
86
- # It is done this way to prevent coming up in the search itself.
87
- args.with_defaults(:text => 't' + 'o' + 'd' + 'o')
88
-
89
- # Use the sample color scheme, since it provides us with bold red via :error.
90
- HighLine.color_scheme = HighLine::SampleColorScheme.new
91
- COLOR = "<%%= color('%s', :error) %%>"
92
-
93
- notification = "\nSearching for '%s':\n\n"
94
-
95
- # Output the text that is being searched for.
96
- case Platform::IMPL
97
- when :linux
98
- notification = notification % [COLOR % args[:text]]
99
- when :mingw
100
- notification = notification % args[:text]
101
- else
102
- raise_not_implemented('grep')
103
- end
104
-
105
- say notification
106
-
107
- command = "grep #{args[:text]} * -ri"
108
- success, output = shell(command)
109
-
110
- # Send the results to the console.
111
- case Platform::IMPL
112
- when :linux
113
- output = output.gsub(/(#{args[:text]})/i, COLOR % '\1')
114
- when :mingw
115
- else
116
- raise_not_implemented('grep')
117
- end
118
-
119
- say output
120
- end
121
-
122
- CLOBBER.include('help')
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
9
- version: 0.0.3
8
+ - 4
9
+ version: 0.0.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Travis Herrick
@@ -19,7 +19,6 @@ default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: Platform
22
- prerelease: false
23
22
  requirement: &id001 !ruby/object:Gem::Requirement
24
23
  none: false
25
24
  requirements:
@@ -31,10 +30,10 @@ dependencies:
31
30
  - 0
32
31
  version: 0.4.0
33
32
  type: :runtime
33
+ prerelease: false
34
34
  version_requirements: *id001
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: open4
37
- prerelease: false
38
37
  requirement: &id002 !ruby/object:Gem::Requirement
39
38
  none: false
40
39
  requirements:
@@ -46,10 +45,10 @@ dependencies:
46
45
  - 1
47
46
  version: 1.0.1
48
47
  type: :runtime
48
+ prerelease: false
49
49
  version_requirements: *id002
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: win32-open3-19
52
- prerelease: false
53
52
  requirement: &id003 !ruby/object:Gem::Requirement
54
53
  none: false
55
54
  requirements:
@@ -61,36 +60,37 @@ dependencies:
61
60
  - 1
62
61
  version: 0.0.1
63
62
  type: :runtime
63
+ prerelease: false
64
64
  version_requirements: *id003
65
65
  - !ruby/object:Gem::Dependency
66
- name: rake
67
- prerelease: false
66
+ name: app_mode
68
67
  requirement: &id004 !ruby/object:Gem::Requirement
69
68
  none: false
70
69
  requirements:
71
- - - "="
70
+ - - ~>
72
71
  - !ruby/object:Gem::Version
73
72
  segments:
74
73
  - 0
75
- - 8
76
- - 7
77
- version: 0.8.7
78
- type: :development
74
+ - 0
75
+ - 1
76
+ version: 0.0.1
77
+ type: :runtime
78
+ prerelease: false
79
79
  version_requirements: *id004
80
80
  - !ruby/object:Gem::Dependency
81
- name: highline
82
- prerelease: false
81
+ name: rake_tasks
83
82
  requirement: &id005 !ruby/object:Gem::Requirement
84
83
  none: false
85
84
  requirements:
86
85
  - - ~>
87
86
  - !ruby/object:Gem::Version
88
87
  segments:
88
+ - 0
89
+ - 0
89
90
  - 1
90
- - 6
91
- - 1
92
- version: 1.6.1
91
+ version: 0.0.1
93
92
  type: :development
93
+ prerelease: false
94
94
  version_requirements: *id005
95
95
  description: Execute Shell provides cross-platform shell command execution.
96
96
  email: tthetoad@gmail.com
@@ -102,7 +102,6 @@ extra_rdoc_files:
102
102
  - README
103
103
  files:
104
104
  - lib/execute_shell/execute_shell.rb
105
- - lib/execute_shell/script_env.rb
106
105
  - lib/execute_shell.rb
107
106
  - Gemfile.lock
108
107
  - README
@@ -126,6 +125,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
126
125
  requirements:
127
126
  - - ">="
128
127
  - !ruby/object:Gem::Version
128
+ hash: -3169303462163591821
129
129
  segments:
130
130
  - 0
131
131
  version: "0"
@@ -1,81 +0,0 @@
1
- # This file contains a class to manage information about the environment.
2
-
3
- #--
4
- ################################################################################
5
- # Copyright (C) 2011 Travis Herrick #
6
- ################################################################################
7
- # #
8
- # \v^V,^!v\^/ #
9
- # ~% %~ #
10
- # { _ _ } #
11
- # ( * - ) #
12
- # | / | #
13
- # \ _, / #
14
- # \__.__/ #
15
- # #
16
- ################################################################################
17
- # This program is free software: you can redistribute it #
18
- # and/or modify it under the terms of the GNU General Public License #
19
- # as published by the Free Software Foundation, #
20
- # either version 3 of the License, or (at your option) any later version. #
21
- # #
22
- # Commercial licensing may be available for a fee under a different license. #
23
- ################################################################################
24
- # This program is distributed in the hope that it will be useful, #
25
- # but WITHOUT ANY WARRANTY; #
26
- # without even the implied warranty of MERCHANTABILITY #
27
- # or FITNESS FOR A PARTICULAR PURPOSE. #
28
- # See the GNU General Public License for more details. #
29
- # #
30
- # You should have received a copy of the GNU General Public License #
31
- # along with this program. If not, see <http://www.gnu.org/licenses/>. #
32
- ################################################################################
33
- #++
34
-
35
- # This class manages environment information.
36
- class ScriptEnv
37
- # Contains valid environments for the script.
38
- STATES = {
39
- :development => :development,
40
- :test => :testing,
41
- :production => :production,
42
- }
43
-
44
- # Indicates the current environment of the script.
45
- @@env = nil
46
-
47
- class << self
48
- # Retrieves the current environment setting.
49
- def env
50
- if @@env.nil? && File.expand_path(Dir.getwd) ==
51
- File.expand_path(File.join(File.dirname(__FILE__), '..'))
52
- return STATES[:development]
53
- else
54
- return STATES[@@env] || STATES[:production]
55
- end
56
- end
57
-
58
- # Black magic.
59
- #
60
- # Allows the getting and setting of the 'state' of the script.
61
- # Only one environment can be active at a time.
62
- # Setting one environment to true means the others are false.
63
- # ==== Input
64
- # [method : Symbol] The method that was called.
65
- # [*args : Array] Any arguments that were passed in.
66
- # [&block : Block] A block, if specified.
67
- def method_missing(method, *args, &block)
68
- if STATES.keys.include?(method.to_s.sub(/=$/, '').to_sym)
69
- if method.to_s.match(/=$/) # Setter method.
70
- value = args && args.shift || nil
71
- @@env = method.to_s[0..-2].to_sym if value == true
72
- else # ------------------- # Getter method.
73
- states = STATES.select { |k, v| v == env }
74
- return !states[method].nil?
75
- end
76
- else
77
- super
78
- end
79
- end
80
- end
81
- end