eggsh 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/VERSION +1 -1
  2. data/bin/eggsh +2 -2
  3. data/eggsh.gemspec +1 -1
  4. data/lib/shell.rb +28 -19
  5. metadata +3 -3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/bin/eggsh CHANGED
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require File.dirname(__FILE__) + '/../lib/runner'
4
-
5
3
  if RUBY_VERSION < '1.9'
6
4
  puts 'Ruby interpreter version 1.9 is needed!'
7
5
  exit
8
6
  end
9
7
 
8
+ require File.dirname(__FILE__) + '/../lib/runner'
9
+
10
10
  # Store the state of the terminal
11
11
  stty_save = `stty -g`.chomp
12
12
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{eggsh}
8
- s.version = "0.1.0"
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 = ["Andrew Liu"]
@@ -8,28 +8,13 @@ module Eggsh
8
8
  SHELL_CMD = {'cd' => :cd, 'pwd' => :pwd, 'fullpwd' => :full_pwd}
9
9
 
10
10
  def initialize
11
+ @env = ENV.to_hash
11
12
  @pwd = ENV['PWD']
12
13
  @translator = Eggsh::Translator.new
13
14
  end
14
15
 
15
- def pwd arg
16
- short = @pwd.split['/']
17
- (0...short.size).each {|i| short[i] = short[i][0]}
18
- puts short.join '/'
19
- end
20
-
21
- def full_pwd arg
22
- puts @pwd
23
- end
24
-
25
- def cd arg
26
- new_path = @pwd + arg.split(' ')[1]
27
- if File.directory? new_path
28
- @pwd = new_path
29
- ENV['PATH'] = new_path
30
- else
31
- puts 'Invalid path'
32
- end
16
+ def env
17
+ @env
33
18
  end
34
19
 
35
20
  def exec line
@@ -44,12 +29,36 @@ module Eggsh
44
29
  if line != '' && SHELL_CMD.has_key?(line.split(' ')[0])
45
30
  send(SHELL_CMD[line.split(' ')[0]], line)
46
31
  else
47
- system @translator.translate(line).gsub("\n", ' ')
32
+ begin
33
+ spawn(@env, @translator.translate(line).gsub("\n", ' '), :chdir => @pwd)
34
+ rescue Errno::ENOENT => e
35
+ puts e.display
36
+ end
48
37
  end
49
38
  #rescue
50
39
  # puts 'Syntax error'
51
40
  end
52
41
  end
42
+
43
+ private
44
+ def pwd arg
45
+ short = @pwd.split '/'
46
+ (0...(short.size - 1)).each {|i| short[i] = short[i][0]}
47
+ puts short.join '/'
48
+ end
49
+
50
+ def full_pwd arg
51
+ puts @pwd
52
+ end
53
+
54
+ def cd arg
55
+ new_path = File.expand_path arg.split(' ')[1], @pwd
56
+ if File.directory? new_path
57
+ @pwd = new_path
58
+ else
59
+ puts "cd: Invalid path #{arg.split(' ')[1]}"
60
+ end
61
+ end
53
62
  end
54
63
  end
55
64
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 0
9
- version: 0.1.0
8
+ - 1
9
+ version: 0.1.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Andrew Liu
@@ -126,7 +126,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
126
126
  requirements:
127
127
  - - ">="
128
128
  - !ruby/object:Gem::Version
129
- hash: -530874701
129
+ hash: 170263165
130
130
  segments:
131
131
  - 0
132
132
  version: "0"