atk_toolbox 0.0.135 → 0.0.136

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 497f584b02fd452d58548f8f28f315469c8998e7c9ac04c9f8f6fb7216bb049e
4
- data.tar.gz: dd6509b4814cba3598cbdc6d0dc0f5581f04308617bee5d1737f52e48447a895
3
+ metadata.gz: d5313d9ba2e7a1a788b336a26e113440e6a1c6c9f64ffec02bd4a388dd877aca
4
+ data.tar.gz: 247ad26779fe3ebaf983ca02619a03c10e265efaa539bc702bcf1d5bb6892d45
5
5
  SHA512:
6
- metadata.gz: 3e2a0a6ac3951482a019c3912cbab7e35d99b8c3cc34a18254c8602b9463ea518f0c3f627aaa0633b96049f7c5a15b2c754e8b0a72714c67b1b6d92868d3d46d
7
- data.tar.gz: 5a070d7fd10dba01652c0aee20c49adbace3a5b5ca35e0398bae9d0e80a051f4321663956416b9192edc22392dfce0db8b77f76d48f8b28a16e45185efe220c1
6
+ metadata.gz: b69f1aa5000ed9a2c3b3bdfd0b2161ca9d835ee40c344ccbbaede78b0d67090ebe288b6f2fdc9e749aea8ecef1806c5f067bc917b5b5796decde814bc34a83d2
7
+ data.tar.gz: 13dfed1e563b45eff0d68580a3233538f978cec9fe05218731e33f502773967dd3aba8dba581c4c991e1664cbb8991e00064e11b575f863faebc0348c35d9b00
@@ -136,12 +136,22 @@ module Atk
136
136
  # temporairly set the dir to be the same as the info.yaml
137
137
  FS.in_dir(Info.folder()) do
138
138
  if command.is_a?(String)
139
- -(command+' '+command_args.join(' '))
139
+ result = system(command+' '+command_args.join(' '))
140
140
  elsif command.is_a?(Code)
141
- command.run(*command_args)
141
+ result = command.run(*command_args)
142
142
  elsif command == nil
143
143
  puts "I don't think that command is in the info.yaml file"
144
144
  end
145
+
146
+ # if command resulted in error then raise an error
147
+ if not result
148
+ colored_command_name = command_name.color_as :key_term
149
+ raise <<-HEREDOC.remove_indent
150
+
151
+ When running: #{"project execute ".color_as :code}#{colored_command_name}
152
+ The script for #{colored_command_name} hit an error and had an exit code of: #{$?.exitstatus}
153
+ HEREDOC
154
+ end
145
155
  end
146
156
  #
147
157
  # commands
data/lib/atk/console.rb CHANGED
@@ -4,13 +4,31 @@ require_relative "../console_colors.rb"
4
4
  # easy access to the commandline
5
5
  class String
6
6
  # add a - operator to strings that makes it behave like a system() call
7
- # but it returns a success value for chaining commands with || or &&
8
7
  def -@
9
- Process.wait(Process.spawn(self))
10
- return $?.success?
8
+ return system(self)
11
9
  end
12
10
  end
13
11
 
12
+ class CommandResult
13
+ def initialize(io_object)
14
+ @io_object = io_object
15
+ end
16
+
17
+ def read
18
+ if @read == nil && @io_object
19
+ @read = @io_object.read
20
+ end
21
+ return @read
22
+ end
23
+
24
+ def exitcode
25
+ if !@io_object
26
+ return Errno::ENOENT.new
27
+ end
28
+ end
29
+ end
30
+
31
+
14
32
 
15
33
  #
16
34
  # Console
@@ -74,6 +92,75 @@ Console = Class.new do
74
92
  return @stdin
75
93
  end
76
94
 
95
+ #
96
+ # returns the command object, ignores errors
97
+ #
98
+ def run!(command)
99
+ if command.is_a?(String)
100
+ # by default return a string with stderr included
101
+ begin
102
+ result = CommandResult.new(IO.popen(command, err: [:child, :out]))
103
+ puts result.read
104
+ rescue
105
+ result = CommandResult.new(nil)
106
+ end
107
+ return result
108
+ else
109
+ raise <<-HEREDOC.remove_indent
110
+
111
+
112
+ The argument for run!() must be a string
113
+ this restriction will be lifted in the future
114
+ HEREDOC
115
+ end
116
+ end
117
+
118
+ #
119
+ # returns true if successful, false/nil on error
120
+ #
121
+ def run?(command)
122
+ if command.is_a?(String)
123
+ return system(command)
124
+ else
125
+ raise <<-HEREDOC.remove_indent
126
+
127
+
128
+ The argument for run?() must be a string
129
+ this restriction will be lifted in the future
130
+ HEREDOC
131
+ end
132
+ end
133
+
134
+ #
135
+ # returns process info if successful, raises error if command failed
136
+ #
137
+ def run(command)
138
+ if command.is_a?(String)
139
+ # if the command failed
140
+ if !system(command)
141
+ # throw an error
142
+ raise <<-HEREDOC.remove_indent
143
+
144
+
145
+ From run(command)
146
+ The command: #{command.color_as :code}
147
+ Failed with a exitcode of: #{$?.exitstatus}
148
+
149
+ #{"This likely means the command could not be found" if $?.exitstatus == 127}
150
+ #{"Hopefully there is additional error info above" if $?.exitstatus != 127}
151
+ HEREDOC
152
+ end
153
+ return $?
154
+ else
155
+ raise <<-HEREDOC.remove_indent
156
+
157
+
158
+ The argument for run() must be a string
159
+ this restriction will be lifted in the future
160
+ HEREDOC
161
+ end
162
+ end
163
+
77
164
  def path_for(name_of_executable)
78
165
  return OS.path_for_executable(name_of_executable)
79
166
  end
data/lib/atk/info.rb CHANGED
@@ -68,7 +68,7 @@ end
68
68
  # a file needs to be created in the root dir so that things like __dir__ work properly
69
69
  # the first line of the temp file deletes itself so that it appears as if no file ever existed
70
70
  IO.write(temp_file, "File.delete('./.info_language_runner_cache.rb')\n#{@value}")
71
- Process.wait(Process.spawn("ruby", temp_file, *args))
71
+ system("ruby", temp_file, *args)
72
72
  end
73
73
  end
74
74
  register_tag('!language/ruby', RubyCode)
@@ -1,3 +1,3 @@
1
1
  module AtkToolbox
2
- VERSION = '0.0.135'
2
+ VERSION = '0.0.136'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atk_toolbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.135
4
+ version: 0.0.136
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Hykin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-18 00:00:00.000000000 Z
11
+ date: 2020-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tty-prompt