rwdshell 0.96 → 0.97

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.
Files changed (38) hide show
  1. data/Readme.txt +7 -0
  2. data/code/superant.com.rwdshell/helptexthashshell.rb +24 -0
  3. data/code/superant.com.rwdshell/loadconfigurationrecord.rb +2 -2
  4. data/code/superant.com.rwdshell/openhelpwindowshell.rb +27 -0
  5. data/code/superant.com.rwdshell/playrubyscript.rb +2 -1
  6. data/code/superant.com.rwdshell/playscript.rb +2 -1
  7. data/code/superant.com.rwdshell/shelleval.rb +1 -1
  8. data/code/superant.com.rwdtinkerbackwindow/helptexthashtinkerwin2.rb +4 -1
  9. data/code/superant.com.rwdtinkerbackwindow/installapplet.rb +5 -3
  10. data/code/superant.com.rwdtinkerbackwindow/removeapplet.rb +10 -6
  11. data/configuration/language.dist +7 -0
  12. data/configuration/rwdapplicationidentity.dist +3 -0
  13. data/configuration/rwdshell.dist +3 -0
  14. data/configuration/{rwdtinker.cnf → rwdtinker.dist} +3 -1
  15. data/configuration/{tinkerwin2variables.cnf → tinkerwin2variables.dist} +6 -1
  16. data/extras/rconftool.rb +380 -0
  17. data/gui/frontwindow0/superant.com.shellscripts/1listplayscripts.rwd +1 -1
  18. data/gui/frontwindow0/superant.com.shellscripts/2listscripts.rwd +2 -2
  19. data/gui/frontwindow0/superant.com.shellscripts/6rwdshelleval.rwd +3 -4
  20. data/gui/frontwindowtdocuments/superant.com.shelldocument/vvdocshellxp.rwd +6 -0
  21. data/init.rb +20 -2
  22. data/rwd_files/HowTo_Shell.txt +9 -0
  23. data/rwd_files/HowTo_Tinker.txt +8 -0
  24. data/rwdconfig.dist +6 -0
  25. data/tests/checkdepends.sh +4 -0
  26. data/tests/cleancnf.sh +5 -0
  27. data/tests/makedist.rb +29 -0
  28. data/tests/rdep.rb +354 -0
  29. metadata +18 -14
  30. data/code/superant.com.rwdshell/helptexthashrubyslippers.rb +0 -81
  31. data/code/superant.com.rwdshell/openhelpwindowrubyslippers.rb +0 -50
  32. data/configuration/language.cnf +0 -5
  33. data/configuration/playscripts.cnf +0 -2
  34. data/configuration/rwdapplicationidentity.cnf +0 -3
  35. data/configuration/rwdshellversion.cnf +0 -2
  36. data/configuration/rwdtinkerversion.cnf +0 -2
  37. data/configuration/tinkerwin2version.cnf +0 -3
  38. data/installed/rwdshell-0.95.inf +0 -14
@@ -10,7 +10,7 @@ $rwdguivar=
10
10
 
11
11
  <horizontal>
12
12
  <button caption=\"Execute\" action=\"playscript\"/>
13
- <button caption=\"Cancel\" action=\"main\"/>
13
+ <button caption=\"Help\" action=\"runhelpwindowrwdshell\"/>
14
14
 
15
15
  </horizontal>
16
16
  <p>%playscript_display%</p>"
@@ -7,7 +7,7 @@ $rwdguivar=
7
7
 
8
8
  <horizontal>
9
9
  <button caption=\"ViewScript\" action=\"viewscript\"/>
10
- <button caption=\"Cancel\" action=\"main\"/>
10
+
11
11
 
12
12
  </horizontal>
13
13
  <p>%displayscripttext%</p>
@@ -15,7 +15,7 @@ $rwdguivar=
15
15
  <horizontal>
16
16
 
17
17
  <button caption=\"ListFiles\" action=\"listscripts\"/>
18
- <button caption=\"Cancel\" action=\"main\"/>
18
+
19
19
 
20
20
  </horizontal>
21
21
  <p>%%listscriptresult%%</p>
@@ -4,13 +4,12 @@ $rwdguivar=
4
4
 
5
5
  <table>
6
6
  <row> <p align=\"right\">Shell Command:</p> <text name=\"a_shelleval\"/> </row>
7
-
8
- </table>
9
- <p>%result%</p>
10
7
  <horizontal>
11
8
  <button caption=\"Execute\" action=\"shelleval\"/>
12
- <button caption=\"Cancel\" action=\"main\"/>
13
9
 
14
10
  </horizontal>
15
11
 
12
+ </table>
13
+ <p>%result%</p>
14
+
16
15
  </tab>"
@@ -0,0 +1,6 @@
1
+
2
+ $rwdguivar=
3
+ "
4
+ <row> <p align=\"left\">
5
+ <a href=HowTo_Shell.txt>Howto_Shell.txt</a></p></row>"
6
+
data/init.rb CHANGED
@@ -23,6 +23,7 @@
23
23
 
24
24
  require "ev/rwd"
25
25
  require 'fileutils'
26
+ require 'extras/rconftool'
26
27
 
27
28
  $progdir = File::expand_path( File.dirname(__FILE__))
28
29
 
@@ -59,8 +60,25 @@ $progdir = File::expand_path( File.dirname(__FILE__))
59
60
  end
60
61
  end
61
62
 
63
+ # integrate the new configuration files
64
+ MAINconfignew = "rwdconfig.cnf"
65
+ MAINconfigdist = "rwdconfig.dist"
66
+ Rconftool::install(MAINconfigdist,MAINconfignew)
67
+
68
+ Dir.chdir("configuration") #changes the current working directory
69
+
70
+ fileList = Dir.new(".").entries.sort.reverse.delete_if { |x| ! (x =~ /dist$/) } #creates an Array separated with \n
71
+ @doc = ""
72
+ fileList.length.times{ #opening of a block
73
+ configdist =fileList.pop #pops the first item out of the Array
74
+ tempconfigfile = configdist.gsub(/\.dist$/, "")
75
+ confignew = tempconfigfile + ".cnf"
76
+ Rconftool::install(configdist,confignew) #integrates new file with old
77
+ } #closing block
78
+ # END of configuration integration
79
+ Dir.chdir($progdir)
80
+
62
81
  # Read in the configuration files
63
-
64
82
  Dir.chdir("configuration") #changes the current working directory
65
83
 
66
84
  fileList = Dir.new(".").entries.sort.reverse.delete_if { |x| ! (x =~ /cnf$/) } #creates an Array separated with \n
@@ -70,7 +88,7 @@ $progdir = File::expand_path( File.dirname(__FILE__))
70
88
  load fileName #loads the the config file thats in fileName
71
89
  } #closing block
72
90
  # END of configuration reading
73
-
91
+
74
92
  Dir.chdir($progdir) # change back to top program directory
75
93
 
76
94
  # build the English Language hash file from the parts
@@ -193,9 +193,18 @@ http://www.erikveen.dds.nl/rubywebdialogs/index.html
193
193
  Thanks, Steven Gibson
194
194
 
195
195
  == Changelog
196
+ version 0.97
197
+ correct bug in shell command eval
198
+ beginning to add context help
199
+ updated for rwdtinker version 1.58
200
+ added rconftool use to update configuration files
201
+ changed applets removal to not use external rm
202
+ removed version number from directory name
203
+
196
204
  version 0.96
197
205
  updated for rwdtinker 1.56
198
206
  first debian version
207
+ correct execute shell script to work with changed scripts directory
199
208
 
200
209
  version 0.95
201
210
  added ruby script running
@@ -227,6 +227,14 @@ http://www.erikveen.dds.nl/rubywebdialogs/index.html
227
227
  Thanks, Steven Gibson
228
228
 
229
229
  == Changelog
230
+ version 1.58
231
+ check for zlib
232
+ check for files to delete
233
+
234
+ version 1.57
235
+ added rconftool use to update configuration files
236
+ changed applets remove to not used external rm
237
+
230
238
  version 1.56
231
239
  refactored gui files to load without intermediate files
232
240
  refactored code files to load without intermediate files
data/rwdconfig.dist ADDED
@@ -0,0 +1,6 @@
1
+ ##VERSION:1.57
2
+ # rwdtinker core configuration file
3
+ ##NAME: ConfigLocation:0
4
+ ConfigLocation=""
5
+ ##NAME: ZipsLocation:0
6
+ ZipsLocation=""
@@ -0,0 +1,4 @@
1
+ #!/bin/sh
2
+ ruby rdep.rb ../*.rb
3
+ echo "checking installapplet.rb"
4
+ ruby rdep.rb ../code/superant.com.rwdtinkerbackwindow/installapplet.rb
data/tests/cleancnf.sh ADDED
@@ -0,0 +1,5 @@
1
+ #!/bin/sh
2
+ rm *.cnf
3
+ rm *.bak
4
+ rm configuration/*.cnf
5
+ rm configuration/*.bak
data/tests/makedist.rb ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/ruby -w
2
+ #***********************************************************************
3
+ #* Rwd/shell -- A Ruby program for the RudyWebDialog.
4
+ #* Copyright (c) 2004, 2005 by Steven Gibson. All Rights Reserved.
5
+ #* at "steven@superant.com".
6
+ #***********************************************************************/
7
+
8
+ require 'fileutils'
9
+ load 'configuration/rwdshell.dist'
10
+
11
+ $progdir = File::expand_path( File.dirname(__FILE__))
12
+ results = " "
13
+ puts "creating rwdshell distribution files version #{RwdShellVersion}"
14
+ puts "cleaning conf files"
15
+ `tests/cleancnf.sh`
16
+ puts "moving up one directory"
17
+ Dir.chdir("..")
18
+
19
+ zipcreatecmd = "zip -r rwdshell-#{RwdShellVersion}.zip rwdshell"
20
+ puts "#{zipcreatecmd}"
21
+ `#{zipcreatecmd}`
22
+ tarcreatecmd = "tar --gzip -cf rwdshell-#{RwdShellVersion}.tar.gz rwdshell"
23
+ puts "#{tarcreatecmd}"
24
+ `#{tarcreatecmd}`
25
+ tarcreatecmd2 = "tar --bzip2 -cf rwdshell-#{RwdShellVersion}.tar.bz2 rwdshell"
26
+ puts "#{tarcreatecmd2}"
27
+ `#{tarcreatecmd2}`
28
+
29
+ print Dir["rwdshell*.{gz,bz2,deb,gem}"]
data/tests/rdep.rb ADDED
@@ -0,0 +1,354 @@
1
+ =begin
2
+
3
+ rdep - The Ruby Dependency Tool
4
+ Version 1.4
5
+
6
+ Hal E. Fulton
7
+ 2 November 2002
8
+ Ruby's license
9
+
10
+ Purpose
11
+
12
+ Determine the library files on which a specified Ruby file is dependent
13
+ (and their location and availability).
14
+
15
+ Usage notes
16
+
17
+ Usage: ruby rdep.rb sourcefile
18
+
19
+ The sourcefile may or may not have a .rb extension.
20
+
21
+ The directories in the $: array (which includes the RUBYLIB environment
22
+ variable) are searched first. File extensions are currently searched for
23
+ in this order: no extension, .rb, .o, .so, .dll (this may not be correct).
24
+
25
+ If there are no detected dependencies, the program will give the
26
+ message, "No dependencies found."
27
+
28
+ If the program finds [auto]load and require statements that it can
29
+ understand, it searches for the specified files. Any recognized Ruby
30
+ source files (*.rb) are processed recursively in the same way. No attempt
31
+ is made to open the files that appear to be binary.
32
+
33
+ The program will print up to four lists (any or all may be omitted):
34
+ 1. A list of files it found by going through RUBYLIB.;
35
+ 2. A list of files found under the searchroot (or under '.');
36
+ 3. A list of directories under searchroot which should perhaps be
37
+ added to RUBYLIB; and
38
+ 4. A list of files (without extensions) which could not be found.
39
+
40
+ If there were unparseable [auto]load or require statements, a warning
41
+ will be issued.
42
+
43
+ Between lists 3 and 4, the program will give an opinion about the overall
44
+ situation. The worst case is that files were not found; the uncertain
45
+ case is when there were unparseable statements; and the best case is
46
+ when all files could be found (lists 1 and 2).
47
+
48
+ Exit codes
49
+
50
+ 0 - Usage or successful execution
51
+ 1 - Nonexistent sourcefile specified
52
+ 2 - Improper sourcefile (pipe, special file, ...)
53
+ 3 - Some kind of problem reading a file
54
+
55
+ Limitations
56
+
57
+ Requires Ruby 1.6.0 or higher
58
+ No recursion on binaries
59
+ Can't look at dynamically built names
60
+ Can't detect "tested" requires (e.g.: flag = require "foo.rb")
61
+ [auto]load/require can be preceded only by whitespace on the line
62
+ Only recognizes simple strings ("file" or 'file')
63
+ Does not recognized named constants (e.g.: require MyFile)
64
+ Assumes every directory entry is either a file or subdirectory
65
+ Does not handle the Windows variable RUBYLIB_PREFIX
66
+ May be SLOW if a directory structure is deep (especially
67
+ on Windows with 1.6.x)
68
+
69
+ Known bugs:
70
+
71
+ Logic may be incorrect in terms of search order, file extensions, etc.
72
+ Injected a bug in 1.3: In rare cases will recurse until stack overflow
73
+
74
+ Revision history
75
+
76
+ Version 1.0 - 13 October 2000 - Initial release
77
+ Version 1.1 - 10 July 2001 - Bug fixes
78
+ Version 1.2 - 15 August 2002 - Works correctly on Win98
79
+ Version 1.3 - 21 October 2002 - Removed globals; removed search root;
80
+ added $: instead of RUBYLIB; etc.
81
+ Version 1.4 - 2 November 2002 - Fixed autoload recursion bug
82
+
83
+ To-do list
84
+
85
+ Possibly change extension search order?
86
+ Possibly add extensions to list?
87
+ Are explicit extensions allowed other than .rb?
88
+ Is a null extension really legal?
89
+ Additional tests/safeguards? (file permissions, non-empty files,...)
90
+ Change inconsistent expansion of tilde, dot, etc.?
91
+ Make it smarter somehow??
92
+
93
+ =end
94
+
95
+ #
96
+ # File.doc_skip - iterator to skip embedded docs in Ruby input file
97
+ #
98
+
99
+ class File
100
+
101
+ def doc_skip
102
+ loop do
103
+ str = gets
104
+ break if not str
105
+ if str =~ /^=begin([ \t]|$)/
106
+ loop do
107
+ str = gets
108
+ break if not str
109
+ break if str =~ /^=end([ \t]|$)/
110
+ end
111
+ else
112
+ yield str
113
+ end
114
+ end
115
+ end
116
+
117
+ end
118
+
119
+ class Dependency
120
+
121
+ #
122
+ # unquote - Find the value of a string. Called from scan.
123
+ #
124
+
125
+ def unquote(str)
126
+ # Still more kludgy code.
127
+ return nil if str == nil
128
+ if [?', ?"].include? str[0] # ' Unconfuse gvim
129
+ str = str[1..-2]
130
+ else
131
+ ""
132
+ end
133
+ end
134
+
135
+ #
136
+ # scan - Scans a line and returns the filename from a load or require
137
+ # statement. Returns null string if there was a parsing problem.
138
+ # Returns nil if this is not a load or require.
139
+ #
140
+
141
+ def scan(line)
142
+ line.strip!
143
+ if line =~ /^load/ or line =~ /^auto/ or line =~ /^require/
144
+ @has_dep = true # At least one dependency found.
145
+ # Kludge!!
146
+ junk = %w[ require load autoload ( ) , ] + [""]
147
+ temp = line.split(/[ \t\(\),]/) - junk
148
+ if temp[2] and temp[2][0].chr =~ /[#;]/ # Comments, semi...
149
+ temp = temp[0..1]
150
+ end
151
+ if temp[-1] =~ /\#\{/ # #{} means trouble
152
+ str = ""
153
+ else
154
+ str = unquote(temp[-1]) # May return nil.
155
+ end
156
+ str
157
+ else
158
+ nil
159
+ end
160
+ end
161
+
162
+ #
163
+ # find_files - The heart of the program. Search for files using $:
164
+ #
165
+
166
+ def find_files(source)
167
+ # loadable - This file or some variant can be found in one of the
168
+ # directories in $:
169
+ loadable = false
170
+
171
+ files = [] # Save a list of load/require files.
172
+ found = [] # Save a list of files found (.rb only for now)
173
+
174
+ # Open the file, strip embedded docs, and look for load/require statements.
175
+
176
+ begin
177
+ File.open(source).doc_skip {|line| files << scan(line)}
178
+ rescue => err
179
+ puts "Problem processing file #{source}: #{err}"
180
+ caller.each {|x| puts " #{x}"}
181
+ exit 3
182
+ end
183
+
184
+ # If no dependencies, don't bother searching!
185
+ if ! @has_dep
186
+ puts "No dependencies found."
187
+ exit 0
188
+ end
189
+
190
+ files.compact!
191
+ catch(:skip) do
192
+ for file in files
193
+
194
+ if file == "" # Warning
195
+ @warnfiles << source
196
+ next
197
+ end
198
+
199
+ throw :skip if (@inpath.include? file) || (@cantfind.include? file)
200
+
201
+ if file =~ /\.rb$/ then # Don't add suffix to *.rb
202
+ suffixes = [""] # Hmm... .rbw?? Probably not needed.
203
+ else
204
+ suffixes = @suffixes # Use any suffix (extension)
205
+ end
206
+
207
+ # Look through search path (@search_path)
208
+
209
+ for dir in @search_path
210
+
211
+ for suf in suffixes
212
+ filename = dir + file + suf
213
+ loadable = test ?e, filename
214
+ break if loadable
215
+ end
216
+
217
+ if loadable
218
+ @inpath << filename # Files we found in RUBYLIB
219
+ # Add to 'found' if it's a source file (so we can recurse)
220
+ found << filename if filename =~ /\.rb$/
221
+ break
222
+ end
223
+
224
+ end
225
+
226
+ @cantfind << file if !loadable
227
+ end
228
+ end
229
+
230
+ found.uniq!
231
+ found.compact!
232
+ list = found
233
+ found.each {|x| list += find_files(x)}
234
+
235
+ list
236
+ end
237
+
238
+ #
239
+ # print_list - Print a header message followed by a list of files
240
+ # or directories.
241
+ #
242
+
243
+ def print_list(header, list)
244
+ return if list.empty?
245
+ puts header + "\n\n" # Extra newlines
246
+ list.each {|x| puts " #{x}"}
247
+ puts "\n" # Extra newline
248
+ end
249
+
250
+ SEP = File::Separator
251
+ DIRSEP = if SEP=="/" then ":" else ";" end
252
+
253
+ def execute
254
+ @has_dep = false
255
+ @warnfiles = []
256
+ @newdirs = []
257
+ @inpath = []
258
+ @cantfind = []
259
+ @suffixes = [""] + %w[ .rb .o .so .dll ]
260
+ @rdirs = []
261
+ @global_found = []
262
+
263
+ # No parameters? Usage message
264
+
265
+ if not ARGV[0]
266
+ puts "Usage: ruby rdep.rb sourcefile [searchroot]"
267
+ exit 0
268
+ end
269
+
270
+ # Does sourcefile exist?
271
+
272
+ if ! test ?e, ARGV[0]
273
+ puts "#{ARGV[0]} does not exist."
274
+ exit 1
275
+ end
276
+
277
+ # Is sourcefile a "real" file?
278
+
279
+ if ! test ?f, ARGV[0]
280
+ puts "#{ARGV[0]} is not a regular file."
281
+ exit 2
282
+ end
283
+
284
+ # Be sure to search under the dir where the
285
+ # program lives...
286
+
287
+ @proghome = File.dirname(File.expand_path(ARGV[0]))
288
+ if @proghome != File.expand_path(".")
289
+ $: << @proghome
290
+ end
291
+
292
+ # Get list of dirs in $:
293
+
294
+ @search_path = $:
295
+ @search_path.collect! {|x| x[-1] == SEP ? x : x + SEP }
296
+
297
+ # All real work happens here -- big recursive find
298
+
299
+ find_files(ARGV[0])
300
+
301
+ @warnfiles.uniq!
302
+ @cantfind.uniq!
303
+ @newdirs.uniq!
304
+ @inpath.map! {|x| File.expand_path(x)}
305
+ @inpath.uniq!
306
+
307
+ #
308
+ # Now, what are all the results? Report to user.
309
+ #
310
+
311
+ if @inpath[0]
312
+ print_list("Found in search path:", @inpath)
313
+ if ! @cantfind.empty? && @warnfiles.empty?
314
+ puts "This will probably be sufficient.\n"
315
+ end
316
+ end
317
+
318
+ # Did we use any dirs under the "home"?
319
+
320
+ homedirs = @inpath.find_all {|x| x =~ Regexp.new("^"+@proghome)}
321
+ if homedirs[0] # not empty
322
+ homedirs.map! {|x| File.dirname(x) }.uniq!
323
+ puts "Consider adding these directories to RUBYPATH:\n\n"
324
+ homedirs.each {|x| puts " #{x}" }
325
+ puts
326
+ if @warnfiles[0] and homedirs == [] # There are unparseable statements.
327
+ puts "This will probably NOT be sufficient. See below.\n\n"
328
+ end
329
+ end
330
+
331
+ # What's our opinion?
332
+
333
+ if @cantfind[0] # There are unknown files.
334
+ puts "This will probably NOT be sufficient. See below.\n\n"
335
+ elsif @warnfiles[0] and homedirs == [] # There are unparseable statements.
336
+ puts "Files may still be missing. See below.\n\n"
337
+ else # We think everything is OK.
338
+ puts "This will probably be sufficient."
339
+ end
340
+
341
+ # Report unknown files
342
+ print_list("Not located anywhere:", @cantfind)
343
+
344
+ # Print warning about load/require strings we couldn't understand
345
+ print_list("Warning: Unparseable usages of 'load' or 'require' in:",
346
+ @warnfiles)
347
+ end
348
+
349
+ end
350
+
351
+ Dependency.new.execute
352
+
353
+ exit 0
354
+