scide 0.0.0 → 0.0.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/Gemfile +1 -1
- data/Gemfile.lock +8 -2
- data/README.rdoc +2 -0
- data/VERSION +1 -1
- data/bin/scide +4 -0
- data/lib/scide/command.rb +69 -0
- data/lib/scide/commands/dblog.rb +14 -0
- data/lib/scide/commands/edit.rb +13 -0
- data/lib/scide/commands/run.rb +12 -0
- data/lib/scide/commands/show.rb +12 -0
- data/lib/scide/commands/tail.rb +13 -0
- data/lib/scide/config.rb +59 -0
- data/lib/scide/global.rb +14 -0
- data/lib/scide/opts.rb +23 -0
- data/lib/scide/overmind.rb +39 -0
- data/lib/scide/project.rb +31 -0
- data/lib/scide/screen.rb +55 -0
- data/lib/scide/window.rb +36 -0
- data/lib/scide.rb +27 -0
- data/scide.gemspec +22 -6
- data/spec/helper.rb +18 -0
- metadata +36 -20
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
active_support (3.0.0)
|
5
|
+
activesupport (= 3.0.0)
|
6
|
+
activesupport (3.0.0)
|
4
7
|
diff-lcs (1.1.3)
|
5
8
|
git (1.2.5)
|
6
9
|
jeweler (1.6.4)
|
7
10
|
bundler (~> 1.0)
|
8
11
|
git (>= 1.2.5)
|
9
12
|
rake
|
13
|
+
paint (0.8.3)
|
10
14
|
rake (0.9.2)
|
11
15
|
rcov (0.9.10)
|
12
16
|
rdoc (3.9.4)
|
@@ -19,7 +23,9 @@ GEM
|
|
19
23
|
diff-lcs (~> 1.1.2)
|
20
24
|
rspec-mocks (2.6.0)
|
21
25
|
shoulda (2.11.3)
|
22
|
-
upoj-rb (0.0.
|
26
|
+
upoj-rb (0.0.4)
|
27
|
+
active_support (>= 2)
|
28
|
+
paint
|
23
29
|
|
24
30
|
PLATFORMS
|
25
31
|
ruby
|
@@ -31,4 +37,4 @@ DEPENDENCIES
|
|
31
37
|
rdoc
|
32
38
|
rspec
|
33
39
|
shoulda
|
34
|
-
upoj-rb
|
40
|
+
upoj-rb (~> 0.0.4)
|
data/README.rdoc
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.1
|
data/bin/scide
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
module Scide
|
2
|
+
|
3
|
+
class Command
|
4
|
+
|
5
|
+
def self.resolve contents, properties = {}, options = {}
|
6
|
+
|
7
|
+
if contents.kind_of? Hash
|
8
|
+
options = options.merge contents[:options] if options.key? :options
|
9
|
+
properties = properties.merge contents[:properties] if options.key? :properties
|
10
|
+
end
|
11
|
+
|
12
|
+
klass, contents = if contents.kind_of? Hash
|
13
|
+
resolve_from_hash contents, properties, options
|
14
|
+
elsif contents.kind_of? String
|
15
|
+
resolve_from_string contents, properties, options
|
16
|
+
end
|
17
|
+
|
18
|
+
klass.new contents, properties, build_options(options, klass)
|
19
|
+
end
|
20
|
+
|
21
|
+
def initialize contents, properties = {}, options = nil
|
22
|
+
@text ||= contents
|
23
|
+
@properties, @options = properties, options
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_screen
|
27
|
+
raise 'Use a subclass'
|
28
|
+
end
|
29
|
+
|
30
|
+
def invalid_config err
|
31
|
+
Scide.fail :invalid_config, "ERROR: #{self.class.name} configuration is invalid.\n #{err}"
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def self.resolve_from_hash contents, properties = {}, options = {}
|
37
|
+
klass = Scide::Commands.const_get contents[:command].downcase.capitalize
|
38
|
+
[ klass, contents[:contents] ]
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.resolve_from_string contents, properties = {}, options = {}
|
42
|
+
klass_name, text = contents.split /\s+/, 2
|
43
|
+
klass = Scide::Commands.const_get klass_name.downcase.capitalize
|
44
|
+
[ klass, text ]
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.build_options options, klass
|
48
|
+
klass_name = klass.name.demodulize.downcase
|
49
|
+
current_options = options.try(:[], klass_name)
|
50
|
+
current_klass = klass
|
51
|
+
while current_klass != Scide::Command and current_options.blank?
|
52
|
+
current_klass = current_klass.superclass
|
53
|
+
current_options = options.try(:[], current_klass.name.demodulize.downcase)
|
54
|
+
end
|
55
|
+
current_options
|
56
|
+
end
|
57
|
+
|
58
|
+
def text_with_properties
|
59
|
+
@text.dup.tap do |s|
|
60
|
+
@properties.each_pair do |key, value|
|
61
|
+
s.gsub! /\%\{#{key}\}/, value
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
deps_dir = File.join File.dirname(__FILE__), 'commands'
|
69
|
+
%w( run tail dblog show edit ).each{ |dep| require File.join(deps_dir, dep) }
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Scide
|
2
|
+
|
3
|
+
module Commands
|
4
|
+
|
5
|
+
class Dblog < Scide::Commands::Tail
|
6
|
+
|
7
|
+
def initialize contents, properties = {}, options = nil
|
8
|
+
@text = properties[:db_log]
|
9
|
+
invalid_config('DBLOG requires property db_log') unless @text.present?
|
10
|
+
super contents, properties, options
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Scide
|
2
|
+
|
3
|
+
module Commands
|
4
|
+
|
5
|
+
class Edit < Scide::Commands::Run
|
6
|
+
|
7
|
+
def initialize contents, properties = {}, options = nil
|
8
|
+
super contents, properties, options
|
9
|
+
@text = [ '$EDITOR', options.to_s, @text.to_s ].select(&:present?).join(' ')
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Scide
|
2
|
+
|
3
|
+
module Commands
|
4
|
+
|
5
|
+
class Tail < Scide::Commands::Run
|
6
|
+
|
7
|
+
def initialize contents, properties = {}, options = nil
|
8
|
+
super contents, properties, options
|
9
|
+
@text = [ 'tail', options.to_s, '-f', @text.to_s ].select(&:present?).join(' ')
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/scide/config.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
3
|
+
CONFIG_FILE = File.join File.expand_path('~'), '.scide', 'config.yml'
|
4
|
+
|
5
|
+
module Scide
|
6
|
+
|
7
|
+
class Config
|
8
|
+
attr_accessor :file
|
9
|
+
attr_reader :global, :projects, :screen
|
10
|
+
|
11
|
+
def initialize file = nil
|
12
|
+
@file = file.try(:to_s) || CONFIG_FILE
|
13
|
+
end
|
14
|
+
|
15
|
+
def load
|
16
|
+
|
17
|
+
Scide.fail :config_not_found, "ERROR: expected to find configuration at #{@file}" unless File.exists? @file
|
18
|
+
Scide.fail :config_not_readable, "ERROR: configuration #{@file} is not readable" unless File.readable? @file
|
19
|
+
|
20
|
+
begin
|
21
|
+
raw_config = File.open(@file, 'r').read
|
22
|
+
rescue StandardError => err
|
23
|
+
Scide.fail :unexpected, "ERROR: could not read configuration #{@file}"
|
24
|
+
end
|
25
|
+
|
26
|
+
begin
|
27
|
+
@config = YAML::load raw_config
|
28
|
+
rescue StandardError => err
|
29
|
+
Scide.fail :malformed_config, "ERROR: could not parse configuration #{@file}\n #{err}"
|
30
|
+
end
|
31
|
+
|
32
|
+
invalid_config 'configuration must be a hash' unless @config.kind_of? Hash
|
33
|
+
|
34
|
+
# laziness
|
35
|
+
@config = HashWithIndifferentAccess.new @config
|
36
|
+
|
37
|
+
begin
|
38
|
+
validate
|
39
|
+
rescue StandardError => err
|
40
|
+
invalid_config err
|
41
|
+
end
|
42
|
+
|
43
|
+
@global = Scide::Global.new @config[:global]
|
44
|
+
@screen = @config[:screen]
|
45
|
+
@projects = @config[:projects].inject(HashWithIndifferentAccess.new) do |memo,obj|
|
46
|
+
memo[obj[0].to_sym] = Scide::Project.new obj[1], obj[0], @global; memo
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def validate
|
51
|
+
raise 'global configuration must be a hash' if @config[:global] and !@config[:global].kind_of?(Hash)
|
52
|
+
raise 'configuration must contain a hash of projects' unless @config[:projects].kind_of? Hash
|
53
|
+
end
|
54
|
+
|
55
|
+
def invalid_config err
|
56
|
+
Scide.fail :invalid_config, "ERROR: configuration #{@file} is invalid.\n #{err}"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/lib/scide/global.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
module Scide
|
2
|
+
|
3
|
+
class Global
|
4
|
+
attr_accessor :path, :properties, :options
|
5
|
+
|
6
|
+
def initialize contents
|
7
|
+
@properties = contents[:properties]
|
8
|
+
@options = contents[:options]
|
9
|
+
|
10
|
+
@path = contents[:path].try(:to_s) || File.expand_path('~')
|
11
|
+
@path = File.join File.expand_path('~'), @path unless @path.match /^\//
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/scide/opts.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
module Scide
|
2
|
+
|
3
|
+
class Opts < Upoj::Opts
|
4
|
+
|
5
|
+
def initialize *args
|
6
|
+
super *args
|
7
|
+
|
8
|
+
on '-c', '--config FILE'
|
9
|
+
on '--dry-run'
|
10
|
+
|
11
|
+
help!
|
12
|
+
usage!
|
13
|
+
end
|
14
|
+
|
15
|
+
def parse! args
|
16
|
+
begin
|
17
|
+
super args
|
18
|
+
rescue StandardError => err
|
19
|
+
Scide.fail :invalid_argument, err
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Scide
|
2
|
+
|
3
|
+
class Overmind
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@cli = Scide::Opts.new
|
7
|
+
@config = Scide::Config.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def brood
|
11
|
+
@cli.parse! ARGV
|
12
|
+
@config.file = @cli.funnel[:config] if @cli.funnel.key? :config
|
13
|
+
@config.load
|
14
|
+
@initialized = true
|
15
|
+
self
|
16
|
+
end
|
17
|
+
|
18
|
+
def dominate
|
19
|
+
|
20
|
+
Scide.fail :not_initialized, 'ERROR: call #brood to initialize' unless @initialized
|
21
|
+
|
22
|
+
project_key = ARGV.shift
|
23
|
+
screen = Scide::Screen.new @config, @cli, project_key
|
24
|
+
screen.validate
|
25
|
+
|
26
|
+
if @cli.funnel[:'dry-run']
|
27
|
+
puts
|
28
|
+
puts Paint['COMMAND', :bold]
|
29
|
+
puts " #{screen.to_command}"
|
30
|
+
puts
|
31
|
+
puts Paint['SCREEN CONFIGURATION', :bold]
|
32
|
+
puts screen.to_s.gsub(/^/, ' ')
|
33
|
+
puts
|
34
|
+
else
|
35
|
+
screen.run
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Scide
|
2
|
+
|
3
|
+
class Project
|
4
|
+
attr_accessor :properties, :options, :path
|
5
|
+
|
6
|
+
def initialize contents, key, global
|
7
|
+
@global = global
|
8
|
+
|
9
|
+
@path = contents[:path].try(:to_s) || key.to_s
|
10
|
+
@path = File.join global.path, @path unless @path.match /^\//
|
11
|
+
|
12
|
+
@properties = global.properties.merge(contents[:properties] || {})
|
13
|
+
@properties['name'] ||= key
|
14
|
+
|
15
|
+
@options = global.options.merge(contents[:options] || {})
|
16
|
+
|
17
|
+
@windows = []
|
18
|
+
contents[:windows].each do |w|
|
19
|
+
@windows << Scide::Window.new(w, self)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_screen
|
24
|
+
String.new.tap do |s|
|
25
|
+
@windows.each_with_index do |w,i|
|
26
|
+
s << w.to_screen(i)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/scide/screen.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
DEFAULT_HARDSTATUS = '%{= kG}[ %{G}%H %{g}][%= %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]'
|
2
|
+
|
3
|
+
module Scide
|
4
|
+
|
5
|
+
class Screen
|
6
|
+
|
7
|
+
def initialize config, cli, project_key
|
8
|
+
@config, @cli = config, cli
|
9
|
+
|
10
|
+
unless @config.projects.key? project_key
|
11
|
+
Scide.fail :unknown_project, "ERROR: there is no project '#{project_key}' in configuration #{@config.file}."
|
12
|
+
end
|
13
|
+
@project = config.projects[project_key]
|
14
|
+
end
|
15
|
+
|
16
|
+
def run
|
17
|
+
file = Tempfile.new 'scide'
|
18
|
+
save file
|
19
|
+
system to_command(file.path)
|
20
|
+
file.unlink
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_command tmp_file = 'TEMPORARY_FILE'
|
24
|
+
"cd #{@project.path} && #{binary} #{options} -c #{tmp_file}"
|
25
|
+
end
|
26
|
+
|
27
|
+
def validate
|
28
|
+
Scide.fail :screen_not_found, "ERROR: #{binary} not found" unless system("which #{binary}", { [ :out, :err ] => :close })
|
29
|
+
end
|
30
|
+
|
31
|
+
def to_s
|
32
|
+
String.new.tap do |s|
|
33
|
+
s << "startup_message off\n"
|
34
|
+
s << "hardstatus on\n"
|
35
|
+
s << "hardstatus alwayslastline\n"
|
36
|
+
s << "hardstatus string '#{DEFAULT_HARDSTATUS}'\n\n"
|
37
|
+
s << @project.to_screen
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def binary
|
44
|
+
@config.screen.try(:[], :binary) || 'screen'
|
45
|
+
end
|
46
|
+
|
47
|
+
def options
|
48
|
+
@config.screen.try(:[], :options)
|
49
|
+
end
|
50
|
+
|
51
|
+
def save file
|
52
|
+
File.open(file.path, 'w'){ |f| f.write to_s }
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
data/lib/scide/window.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
module Scide
|
2
|
+
|
3
|
+
class Window
|
4
|
+
|
5
|
+
def initialize contents, project
|
6
|
+
@project = project
|
7
|
+
if contents.kind_of? Hash
|
8
|
+
init_from_hash contents
|
9
|
+
elsif contents.kind_of? String
|
10
|
+
init_from_string contents
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_screen index
|
15
|
+
String.new.tap do |s|
|
16
|
+
s << "screen -t #{@name} #{index}\n"
|
17
|
+
s << @command.to_screen if @command
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def init_from_hash contents
|
24
|
+
@name = contents.delete :name
|
25
|
+
@command = Command.resolve contents, @project.properties, @project.options if contents.key? :command
|
26
|
+
end
|
27
|
+
|
28
|
+
def init_from_string contents
|
29
|
+
content_parts = contents.split /\s+/, 2
|
30
|
+
@name = content_parts[0]
|
31
|
+
if content_parts.length == 2
|
32
|
+
@command = Command.resolve content_parts[1], @project.properties, @project.options
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/scide.rb
CHANGED
@@ -1,3 +1,30 @@
|
|
1
|
+
require 'paint'
|
2
|
+
require 'upoj-rb'
|
3
|
+
|
4
|
+
dirname = File.dirname __FILE__
|
5
|
+
deps_dir = File.join dirname, 'scide'
|
6
|
+
VERSION_FILE = File.join dirname, '..', 'VERSION'
|
7
|
+
|
1
8
|
module Scide
|
9
|
+
VERSION = File.open(VERSION_FILE, 'r').read
|
10
|
+
EXIT = {
|
11
|
+
:unexpected => 1,
|
12
|
+
:invalid_argument => 2,
|
13
|
+
:not_initialized => 3,
|
14
|
+
:screen_not_found => 4,
|
15
|
+
:config_not_found => 13,
|
16
|
+
:config_not_readable => 14,
|
17
|
+
:malformed_config => 15,
|
18
|
+
:invalid_config => 16,
|
19
|
+
:unknown_project => 17
|
20
|
+
}
|
2
21
|
|
22
|
+
def self.fail condition, msg
|
23
|
+
puts
|
24
|
+
warn Paint[msg, :yellow]
|
25
|
+
puts
|
26
|
+
EXIT.key?(condition) ? exit(EXIT[condition]) : exit(1)
|
27
|
+
end
|
3
28
|
end
|
29
|
+
|
30
|
+
%w( command config global opts overmind project screen window ).each{ |dep| require File.join(deps_dir, dep) }
|
data/scide.gemspec
CHANGED
@@ -5,13 +5,14 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "scide"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["AlphaHydrae"]
|
12
|
-
s.date = "2011-
|
12
|
+
s.date = "2011-10-01"
|
13
13
|
s.description = "Utility to generate GNU screen configuration files."
|
14
14
|
s.email = "hydrae.alpha@gmail.com"
|
15
|
+
s.executables = ["scide"]
|
15
16
|
s.extra_rdoc_files = [
|
16
17
|
"LICENSE.txt",
|
17
18
|
"README.rdoc"
|
@@ -26,8 +27,23 @@ Gem::Specification.new do |s|
|
|
26
27
|
"README.rdoc",
|
27
28
|
"Rakefile",
|
28
29
|
"VERSION",
|
30
|
+
"bin/scide",
|
29
31
|
"lib/scide.rb",
|
30
|
-
"scide.
|
32
|
+
"lib/scide/command.rb",
|
33
|
+
"lib/scide/commands/dblog.rb",
|
34
|
+
"lib/scide/commands/edit.rb",
|
35
|
+
"lib/scide/commands/run.rb",
|
36
|
+
"lib/scide/commands/show.rb",
|
37
|
+
"lib/scide/commands/tail.rb",
|
38
|
+
"lib/scide/config.rb",
|
39
|
+
"lib/scide/global.rb",
|
40
|
+
"lib/scide/opts.rb",
|
41
|
+
"lib/scide/overmind.rb",
|
42
|
+
"lib/scide/project.rb",
|
43
|
+
"lib/scide/screen.rb",
|
44
|
+
"lib/scide/window.rb",
|
45
|
+
"scide.gemspec",
|
46
|
+
"spec/helper.rb"
|
31
47
|
]
|
32
48
|
s.homepage = "http://github.com/AlphaHydrae/scide"
|
33
49
|
s.licenses = ["MIT"]
|
@@ -39,7 +55,7 @@ Gem::Specification.new do |s|
|
|
39
55
|
s.specification_version = 3
|
40
56
|
|
41
57
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
42
|
-
s.add_runtime_dependency(%q<upoj-rb>, ["
|
58
|
+
s.add_runtime_dependency(%q<upoj-rb>, ["~> 0.0.4"])
|
43
59
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
44
60
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
45
61
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -47,7 +63,7 @@ Gem::Specification.new do |s|
|
|
47
63
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
48
64
|
s.add_development_dependency(%q<rdoc>, [">= 0"])
|
49
65
|
else
|
50
|
-
s.add_dependency(%q<upoj-rb>, ["
|
66
|
+
s.add_dependency(%q<upoj-rb>, ["~> 0.0.4"])
|
51
67
|
s.add_dependency(%q<rspec>, [">= 0"])
|
52
68
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
53
69
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
@@ -56,7 +72,7 @@ Gem::Specification.new do |s|
|
|
56
72
|
s.add_dependency(%q<rdoc>, [">= 0"])
|
57
73
|
end
|
58
74
|
else
|
59
|
-
s.add_dependency(%q<upoj-rb>, ["
|
75
|
+
s.add_dependency(%q<upoj-rb>, ["~> 0.0.4"])
|
60
76
|
s.add_dependency(%q<rspec>, [">= 0"])
|
61
77
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
62
78
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
data/spec/helper.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
|
4
|
+
begin
|
5
|
+
Bundler.setup(:default, :development)
|
6
|
+
rescue Bundler::BundlerError => e
|
7
|
+
$stderr.puts e.message
|
8
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
9
|
+
exit e.status_code
|
10
|
+
end
|
11
|
+
|
12
|
+
require 'rspec'
|
13
|
+
require 'shoulda'
|
14
|
+
|
15
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
16
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
17
|
+
require 'scide'
|
18
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scide
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-10-01 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: upoj-rb
|
16
|
-
requirement: &
|
16
|
+
requirement: &2161468540 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 0.0.4
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2161468540
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &2161467960 !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: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2161467960
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: shoulda
|
38
|
-
requirement: &
|
38
|
+
requirement: &2161467360 !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: *
|
46
|
+
version_requirements: *2161467360
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bundler
|
49
|
-
requirement: &
|
49
|
+
requirement: &2161466720 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.0.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2161466720
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: jeweler
|
60
|
-
requirement: &
|
60
|
+
requirement: &2161466240 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.6.4
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2161466240
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rcov
|
71
|
-
requirement: &
|
71
|
+
requirement: &2161464700 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2161464700
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rdoc
|
82
|
-
requirement: &
|
82
|
+
requirement: &2161464100 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,11 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2161464100
|
91
91
|
description: Utility to generate GNU screen configuration files.
|
92
92
|
email: hydrae.alpha@gmail.com
|
93
|
-
executables:
|
93
|
+
executables:
|
94
|
+
- scide
|
94
95
|
extensions: []
|
95
96
|
extra_rdoc_files:
|
96
97
|
- LICENSE.txt
|
@@ -105,8 +106,23 @@ files:
|
|
105
106
|
- README.rdoc
|
106
107
|
- Rakefile
|
107
108
|
- VERSION
|
109
|
+
- bin/scide
|
108
110
|
- lib/scide.rb
|
111
|
+
- lib/scide/command.rb
|
112
|
+
- lib/scide/commands/dblog.rb
|
113
|
+
- lib/scide/commands/edit.rb
|
114
|
+
- lib/scide/commands/run.rb
|
115
|
+
- lib/scide/commands/show.rb
|
116
|
+
- lib/scide/commands/tail.rb
|
117
|
+
- lib/scide/config.rb
|
118
|
+
- lib/scide/global.rb
|
119
|
+
- lib/scide/opts.rb
|
120
|
+
- lib/scide/overmind.rb
|
121
|
+
- lib/scide/project.rb
|
122
|
+
- lib/scide/screen.rb
|
123
|
+
- lib/scide/window.rb
|
109
124
|
- scide.gemspec
|
125
|
+
- spec/helper.rb
|
110
126
|
homepage: http://github.com/AlphaHydrae/scide
|
111
127
|
licenses:
|
112
128
|
- MIT
|
@@ -122,7 +138,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
122
138
|
version: '0'
|
123
139
|
segments:
|
124
140
|
- 0
|
125
|
-
hash:
|
141
|
+
hash: -3848666212041060467
|
126
142
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
127
143
|
none: false
|
128
144
|
requirements:
|