rwdshell 0.98 → 0.99

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 (63) hide show
  1. data/Readme.txt +6 -0
  2. data/code/01rwdcore/01rwdcore.rb +16 -16
  3. data/code/01rwdcore/jumplinkcommand.rb +30 -0
  4. data/code/01rwdcore/openhelpwindow.rb +26 -26
  5. data/code/01rwdcore/returntomain.rb +8 -8
  6. data/code/01rwdcore/rwdtinkerversion.rb +12 -13
  7. data/code/01rwdcore/rwdwindowreturn.rb +3 -5
  8. data/code/01rwdcore/test_cases.rb +79 -90
  9. data/code/01rwdcore/test_harness.rb +7 -10
  10. data/code/01rwdcore/uploadreturns.rb +60 -60
  11. data/code/superant.com.rwdshell/clearrubyscreendisplay.rb +7 -0
  12. data/code/superant.com.rwdshell/helptexthashshell.rb +8 -1
  13. data/code/superant.com.rwdshell/jumplinkupdate.rb +9 -0
  14. data/code/superant.com.rwdshell/loadrubyscriptrecord.rb +20 -0
  15. data/code/superant.com.rwdshell/openhelpwindowshell.rb +6 -0
  16. data/code/superant.com.rwdshell/runrwdshellwindow.rb +4 -1
  17. data/code/superant.com.rwdshell/saverubyrecord.rb +19 -0
  18. data/code/superant.com.rwdtinkerbackwindow/controlclient.rb +89 -92
  19. data/code/superant.com.rwdtinkerbackwindow/diagnostictab.rb +15 -21
  20. data/code/superant.com.rwdtinkerbackwindow/installapplet.rb +19 -18
  21. data/code/superant.com.rwdtinkerbackwindow/installgemapplet.rb +20 -19
  22. data/code/superant.com.rwdtinkerbackwindow/installremotegem.rb +19 -18
  23. data/code/superant.com.rwdtinkerbackwindow/listgemdirs.rb +7 -7
  24. data/code/superant.com.rwdtinkerbackwindow/listgemzips.rb +48 -49
  25. data/code/superant.com.rwdtinkerbackwindow/listinstalledfiles.rb +8 -7
  26. data/code/superant.com.rwdtinkerbackwindow/listzips.rb +22 -26
  27. data/code/superant.com.rwdtinkerbackwindow/loadconfigurationrecord.rb +32 -31
  28. data/code/superant.com.rwdtinkerbackwindow/loadconfigurationvariables.rb +14 -13
  29. data/code/superant.com.rwdtinkerbackwindow/network.rb +82 -82
  30. data/code/superant.com.rwdtinkerbackwindow/openappletname.rb +18 -17
  31. data/code/superant.com.rwdtinkerbackwindow/openhelpwindowtinkerwin2.rb +37 -37
  32. data/code/superant.com.rwdtinkerbackwindow/remotegemlist.rb +20 -20
  33. data/code/superant.com.rwdtinkerbackwindow/removeapplet.rb +33 -32
  34. data/code/superant.com.rwdtinkerbackwindow/runrwdtinkerbackwindow.rb +8 -9
  35. data/code/superant.com.rwdtinkerbackwindow/rwdtinkerwin2version.rb +10 -11
  36. data/code/superant.com.rwdtinkerbackwindow/saveconfigurationrecord.rb +19 -18
  37. data/code/superant.com.rwdtinkerbackwindow/viewappletcontents.rb +21 -20
  38. data/code/superant.com.rwdtinkerbackwindow/viewgemappletcontents.rb +23 -20
  39. data/configuration/language.dist +1 -1
  40. data/configuration/rwdapplicationidentity.dist +1 -1
  41. data/configuration/rwdshell.dist +2 -2
  42. data/configuration/rwdtinker.dist +3 -3
  43. data/configuration/tinkerwin2variables.dist +1 -1
  44. data/gui/frontwindow0/superant.com.shellscripts/3editscripts.rwd +1 -0
  45. data/gui/frontwindowselectionbegin/selectiontabbegin/selectiontabbegin.rwd +2 -7
  46. data/gui/frontwindowselections/superant.com.rwdtinkerwin2selectiontab/jumplinkcommands.rwd +15 -0
  47. data/gui/helpaboutinstalled/superant.com.shellhelpabout/3copyright.rwd +1 -1
  48. data/gui/tinkerbackwindows/superant.com.rwdshellbackwindow/46editscriptrecord.rwd +2 -2
  49. data/gui/tinkerbackwindows/superant.com.rwdshellbackwindow/94rwddiagnostics.rwd +0 -17
  50. data/gui/tinkerbackwindows/superant.com.rwdshellbackwindow/98jumplinkcommands.rwd +17 -0
  51. data/gui/tinkerbackwindows/superant.com.tinkerbackwindow/81jumplinkcommands.rwd +17 -0
  52. data/init.rb +228 -228
  53. data/rwd_files/HowTo_Shell.txt +6 -0
  54. data/rwd_files/HowTo_Tinker.txt +6 -0
  55. data/rwdconfig.dist +1 -1
  56. data/scripts/test02.rb +1 -1
  57. data/tests/makedist.rb +26 -12
  58. metadata +10 -8
  59. data/code/superant.com.rwdshell/runrwdshellmenu1.rb +0 -57
  60. data/gui/frontwindowselections/superant.com.rwdshellselectiontab/rwdshellbackwindowselectiontab.rwd +0 -12
  61. data/gui/frontwindowselections/superant.com.rwdtinkerwin2selectiontab/rwdwin2selectiontab.rwd +0 -12
  62. data/gui/tinkerbackwindows/superant.com.rwdshellbackwindow/v9returntab.rwd +0 -11
  63. data/gui/tinkerbackwindows/superant.com.tinkerbackwindow/80tab1.rwd +0 -11
@@ -12,6 +12,7 @@ $rwdguivar=
12
12
  <button caption=\"Load Script\" action=\"loadscriptrecord\"/>
13
13
  <button caption=\"Save Changes\" action=\"savescriptrecord\"/>
14
14
  <button caption=\"Clear\" action=\"clearscriptscreendisplay\"/>
15
+ <button caption=\"Help\" action=\"runhelpwindowrwdshell\"/>
15
16
 
16
17
  </horizontal>
17
18
  <table>
@@ -3,14 +3,9 @@ $rwdguivar=
3
3
  <tab name=\"selectiontab\" caption=#{Message[:selection_panel]}>
4
4
 
5
5
  <table>
6
- <row> <p align=\"right\">Open a new window with callable applets you have loaded</row>
6
+ <row> <p align=\"right\">Open a new location </row>
7
7
 
8
8
  </table>
9
- <horizontal>
10
-
11
- <button caption=#{Message[:rwdtinker_help_window]} action=\"runhelpwindow\"/>
12
-
13
-
14
- </horizontal>"
9
+ "
15
10
 
16
11
 
@@ -0,0 +1,15 @@
1
+ $rwdguivar=
2
+ "
3
+ <horizontal>
4
+ <button caption=\"Show Jump Links\" action=\"showjumplinkoptions\"/>
5
+
6
+ </horizontal>
7
+ <table>
8
+ <select name=\"a_jumplinkinput\"> %%jumplinkoptions%% </select>
9
+
10
+ </table>
11
+
12
+ <horizontal>
13
+ <button caption=\"Jump to Application Location\" action=\"runjumplinkcommand\"/>
14
+ </horizontal>
15
+ "
@@ -1,3 +1,3 @@
1
1
  $rwdguivar=
2
2
  "
3
- <row> <p align=\"center\">copyright s. gibson 2004</p></row>"
3
+ <row> <p align=\"center\">copyright s. gibson 2004,2005</p></row>"
@@ -3,13 +3,13 @@ $rwdguivar=
3
3
  <tab name=\"editrubyrecordfile\" caption=\"Edit Script\">
4
4
  <table>
5
5
  <row> <p> </row>
6
- <row> <p align=\"right\">you can create a new record here or edit one</row>
6
+ <row> <p align=\"right\">:You can create a new record here or edit one</row>
7
7
  <row> <p> </row>
8
8
  <horizontal>
9
9
  <button caption=\"Fill Record\" action=\"loadrubyscriptrecord\"/>
10
10
  <button caption=\"Save Changes\" action=\"saverubyrecord\"/>
11
11
  <button caption=\"Clear\" action=\"clearrubyscreendisplay\"/>
12
- <button caption=\"Help\" action=\"runhelpwindowrwdruby\"/>
12
+ <button caption=\"Help\" action=\"runhelpwindowrwdshell\"/>
13
13
  </horizontal>
14
14
  <horizontal>
15
15
  <row> <p align=\"right\">FileName:</p>
@@ -1,18 +1,7 @@
1
1
  $rwdguivar=
2
2
  "
3
3
  <tab name=\"diagnostictab\" caption=\"Diagnostic Tab\">
4
- <horizontal>
5
- <button caption=\"View Ruby Version\" action=\"runrubyversion\"/>
6
-
7
-
8
- </horizontal>
9
- <p>%rubyversion%</p>
10
-
11
4
 
12
- <table>
13
- <row> <p> </row>
14
-
15
- </table>
16
5
 
17
6
  <horizontal>
18
7
  <button caption=\"view platform\" action=\"runviewplatform\"/>
@@ -20,12 +9,6 @@ $rwdguivar=
20
9
  </horizontal>
21
10
 
22
11
  <p>%platformdisplay%</p>
23
- <horizontal>
24
- <button caption=\"View rwdtinker Version\" action=\"rwdtinkerversiondiagnostic\"/>
25
-
26
- </horizontal>
27
-
28
- <p>%rwdtinkerversionreturn%</p>
29
12
 
30
13
  </tab>"
31
14
 
@@ -0,0 +1,17 @@
1
+ $rwdguivar=
2
+ "
3
+ <tab name=selectiontab caption=\"Selection Tab\">
4
+ <horizontal>
5
+ <button caption=\"Show Jump Links\" action=\"showjumplinkoptions\"/>
6
+
7
+ </horizontal>
8
+ <table>
9
+ <select name=\"a_jumplinkinput\"> %%jumplinkoptions%% </select>
10
+
11
+ </table>
12
+
13
+ <horizontal>
14
+ <button caption=\"Jump to Application Location\" action=\"runjumplinkcommand\"/>
15
+ </horizontal>
16
+ </tab>
17
+ "
@@ -0,0 +1,17 @@
1
+ $rwdguivar=
2
+ "
3
+ <tab name=selectiontab caption=\"Selection Tab\">
4
+ <horizontal>
5
+ <button caption=\"Show Jump Links\" action=\"showjumplinkoptions\"/>
6
+
7
+ </horizontal>
8
+ <table>
9
+ <select name=\"a_jumplinkinput\"> %%jumplinkoptions%% </select>
10
+
11
+ </table>
12
+
13
+ <horizontal>
14
+ <button caption=\"Jump to Application Location\" action=\"runjumplinkcommand\"/>
15
+ </horizontal>
16
+ </tab>
17
+ "
data/init.rb CHANGED
@@ -24,42 +24,42 @@
24
24
  require "ev/rwd"
25
25
  require 'fileutils'
26
26
  require 'extras/rconftool'
27
-
27
+
28
28
  $progdir = File::expand_path( File.dirname(__FILE__))
29
29
 
30
- $tempdoc = " "
31
-
32
- def findfiles(d)
33
- a = Array.new(Dir[d].entries.sort)
34
- #loop through and get the files names
35
- a.each do |x|
36
- #adjust the filters to the files you want to see...
37
- if(!test(?d,x))
38
- # only rwd files
39
- if x =~ /rb|rwd|txt/
40
- fileA=File.open("#{x}","r") #opens the file thats in fileName as read only
41
- $tempdoc+=fileA.read #reads the file into the doc string
42
- fileA.close
43
- end
44
- end
45
- end
46
- end
47
- def loadguifile(d)
48
- a = Array.new(Dir[d].entries.sort)
49
- #loop through and get the files names
50
- a.each do |x|
51
- #adjust the filters to the files you want to see...
52
- if(!test(?d,x))
53
- # only rwd files
54
- if x =~ /rb|rwd|txt/
55
-
56
- load x #opens the file thats in fileName and reads it
57
- $tempdoc += $rwdguivar # adds the file into the doc string
58
- end
59
- end
60
- end
61
- end
62
-
30
+ $tempdoc = " "
31
+
32
+ def findfiles(d)
33
+ a = Array.new(Dir[d].entries.sort)
34
+ #loop through and get the files names
35
+ a.each do |x|
36
+ #adjust the filters to the files you want to see...
37
+ if(!test(?d,x))
38
+ # only rwd files
39
+ if x =~ /rb|rwd|txt/
40
+ fileA=File.open("#{x}","r") #opens the file thats in fileName as read only
41
+ $tempdoc+=fileA.read #reads the file into the doc string
42
+ fileA.close
43
+ end
44
+ end
45
+ end
46
+ end
47
+ def loadguifile(d)
48
+ a = Array.new(Dir[d].entries.sort)
49
+ #loop through and get the files names
50
+ a.each do |x|
51
+ #adjust the filters to the files you want to see...
52
+ if(!test(?d,x))
53
+ # only rwd files
54
+ if x =~ /rb|rwd|txt/
55
+
56
+ load x #opens the file thats in fileName and reads it
57
+ $tempdoc += $rwdguivar # adds the file into the doc string
58
+ end
59
+ end
60
+ end
61
+ end
62
+
63
63
  # integrate the new configuration files
64
64
  MAINconfignew = "rwdconfig.cnf"
65
65
  MAINconfigdist = "rwdconfig.dist"
@@ -68,210 +68,210 @@ Rconftool::install(MAINconfigdist,MAINconfignew)
68
68
  #load main config file
69
69
  load 'rwdconfig.cnf'
70
70
 
71
- Dir.chdir("configuration") #changes the current working directory
72
-
73
- fileList = Dir.new(".").entries.sort.reverse.delete_if { |x| ! (x =~ /dist$/) } #creates an Array separated with \n
74
- @doc = ""
75
- fileList.length.times{ #opening of a block
76
- configdist =fileList.pop #pops the first item out of the Array
71
+ Dir.chdir("configuration") #changes the current working directory
72
+
73
+ fileList = Dir.new(".").entries.sort.reverse.delete_if { |x| ! (x =~ /dist$/) } #creates an Array separated with \n
74
+ @doc = ""
75
+ fileList.length.times{ #opening of a block
76
+ configdist =fileList.pop #pops the first item out of the Array
77
77
  tempconfigfile = configdist.gsub(/\.dist$/, "")
78
78
  confignew = tempconfigfile + ".cnf"
79
79
  Rconftool::install(configdist,confignew) #integrates new file with old
80
80
  } #closing block
81
- # END of configuration integration
82
- Dir.chdir($progdir)
83
-
84
- # Read in the configuration files
85
- Dir.chdir("configuration") #changes the current working directory
86
-
87
- fileList = Dir.new(".").entries.sort.reverse.delete_if { |x| ! (x =~ /cnf$/) } #creates an Array separated with \n
88
- @doc = ""
89
- fileList.length.times{ #opening of a block
90
- fileName=fileList.pop #pops the first item out of the Array
91
- load fileName #loads the the config file thats in fileName
81
+ # END of configuration integration
82
+ Dir.chdir($progdir)
83
+
84
+ # Read in the configuration files
85
+ Dir.chdir("configuration") #changes the current working directory
86
+
87
+ fileList = Dir.new(".").entries.sort.reverse.delete_if { |x| ! (x =~ /cnf$/) } #creates an Array separated with \n
88
+ @doc = ""
89
+ fileList.length.times{ #opening of a block
90
+ fileName=fileList.pop #pops the first item out of the Array
91
+ load fileName #loads the the config file thats in fileName
92
92
  } #closing block
93
- # END of configuration reading
94
-
95
- Dir.chdir($progdir) # change back to top program directory
96
-
97
- # build the English Language hash file from the parts
98
- languagehashvariable = 'Message = Hash.new { |hh, kk| hh[kk] = "ERROR: Message not found: #{kk.inspect}."; hh[kk] }
99
- langmessage = {' + "\n"
100
- startlangdir = File.join(LangDir,"en")
101
- #get a list of the files and subdirectories on the starting directory only
102
- alanghash = Array.new(Dir[startlangdir].entries.sort)
103
- #loop through the list, ignore the files and add all new directories found
104
- alanghash.each do |x|
105
- #if a directory...
106
- if(test(?d,x))
107
- # add to the original list of directories
108
- @@tmproot = x + "/**"
109
- #adds the new ones to the array
110
- blanghash = Dir[@@tmproot].entries.sort
111
- blanghash.each do |x|
112
- if(test(?d,x))
113
- alanghash.push(x) #appends to the end of the array...
114
- end
115
- end
116
- end
117
- end
118
- alanghash.each do |x|
119
- #if it is a file...
120
- if(!test(?d,x))
121
- alanghash.delete(x)
122
- else #it is a directory...
123
- findfiles(x + "/**")
124
- end
125
- end
126
-
127
-
128
- #writes the contents of doc into the languagehashvariable
93
+ # END of configuration reading
94
+
95
+ Dir.chdir($progdir) # change back to top program directory
96
+
97
+ # build the English Language hash file from the parts
98
+ languagehashvariable = 'Message = Hash.new { |hh, kk| hh[kk] = "ERROR: Message not found: #{kk.inspect}."; hh[kk] }
99
+ langmessage = {' + "\n"
100
+ startlangdir = File.join(LangDir,"en")
101
+ #get a list of the files and subdirectories on the starting directory only
102
+ alanghash = Array.new(Dir[startlangdir].entries.sort)
103
+ #loop through the list, ignore the files and add all new directories found
104
+ alanghash.each do |x|
105
+ #if a directory...
106
+ if(test(?d,x))
107
+ # add to the original list of directories
108
+ @@tmproot = x + "/**"
109
+ #adds the new ones to the array
110
+ blanghash = Dir[@@tmproot].entries.sort
111
+ blanghash.each do |x|
112
+ if(test(?d,x))
113
+ alanghash.push(x) #appends to the end of the array...
114
+ end
115
+ end
116
+ end
117
+ end
118
+ alanghash.each do |x|
119
+ #if it is a file...
120
+ if(!test(?d,x))
121
+ alanghash.delete(x)
122
+ else #it is a directory...
123
+ findfiles(x + "/**")
124
+ end
125
+ end
126
+
127
+
128
+ #writes the contents of doc into the languagehashvariable
129
129
  languagehashvariable = languagehashvariable + $tempdoc + "} ; langmessage.each { |kk, vv| Message[kk] = vv }"
130
-
131
- # END of en Lang building
130
+
131
+ # END of en Lang building
132
132
  $tempdoc = " "
133
133
  Dir.chdir($progdir) # change back to top program directory
134
-
135
- # build the local Language hash file from the parts
136
- startlangdir = File.join(LangDir,$lang)
137
- #get a list of the files and subdirectories on the starting directory only
138
- alanghash = Array.new(Dir[startlangdir].entries.sort)
139
- #loop through the list, ignore the files and add all new directories found
140
- alanghash.each do |x|
141
- #if a directory...
142
- if(test(?d,x))
143
- # add to the original list of directories
144
- @@tmproot = x + "/**"
145
- #adds the new ones to the array
146
- blanghash = Dir[@@tmproot].entries.sort
147
- blanghash.each do |x|
148
- if(test(?d,x))
149
- alanghash.push(x) #appends to the end of the array...
150
- end
151
- end
152
- end
153
- end
154
- alanghash.each do |x|
155
- #if it is a file...
156
- if(!test(?d,x))
157
- alanghash.delete(x)
158
- else #it is a directory...
159
- findfiles(x + "/**")
160
- end
161
- end
162
-
163
-
164
- #writes the contents of doc into the variable
134
+
135
+ # build the local Language hash file from the parts
136
+ startlangdir = File.join(LangDir,$lang)
137
+ #get a list of the files and subdirectories on the starting directory only
138
+ alanghash = Array.new(Dir[startlangdir].entries.sort)
139
+ #loop through the list, ignore the files and add all new directories found
140
+ alanghash.each do |x|
141
+ #if a directory...
142
+ if(test(?d,x))
143
+ # add to the original list of directories
144
+ @@tmproot = x + "/**"
145
+ #adds the new ones to the array
146
+ blanghash = Dir[@@tmproot].entries.sort
147
+ blanghash.each do |x|
148
+ if(test(?d,x))
149
+ alanghash.push(x) #appends to the end of the array...
150
+ end
151
+ end
152
+ end
153
+ end
154
+ alanghash.each do |x|
155
+ #if it is a file...
156
+ if(!test(?d,x))
157
+ alanghash.delete(x)
158
+ else #it is a directory...
159
+ findfiles(x + "/**")
160
+ end
161
+ end
162
+
163
+
164
+ #writes the contents of doc into the variable
165
165
  languagehashvariable = languagehashvariable + " ; Message.update(" + $tempdoc + ' :rwdtinker => "Rwdtinker" ) '
166
-
167
166
 
168
- $tempdoc = " "
169
-
170
- Dir.chdir($progdir) # change back to top program directory
171
-
172
- temp = eval( languagehashvariable )
173
-
174
- $tempdoc = " "
175
-
176
- # build the actual program from the code parts
177
- #get a list of the files and subdirectories on the starting directory only
178
- a = Array.new(Dir[CodeDir].entries.sort)
179
- #loop through the list, ignore the files and add all new directories found
180
- a.each do |x|
181
- #if a directory...
182
- if(test(?d,x))
183
- # add to the original list of directories
184
- @@root = x + "/**"
185
- #adds the new ones to the array
186
- b = Dir[@@root].entries.sort
187
- b.each do |x|
188
- if(test(?d,x))
189
- a.push(x) #appends to the end of the array...
190
- end
191
- end
192
- end
193
- end
194
- a.each do |x|
195
- #if it is a file...
196
- if(!test(?d,x))
197
- a.delete(x)
198
- else #it is a directory...
199
- findfiles(x + "/**")
200
- end
201
- end
202
-
203
-
204
- # load the program file
205
- tempcoderesult = eval( $tempdoc )
206
-
207
- # build the actual GUI from the gui parts
208
- $tempdoc = " "
209
- #get a list of the files and subdirectories on the starting directory only
210
- a = Array.new(Dir[GuiDir].entries.sort)
211
- #loop through the list, ignore the files and add all new directories found
212
- a.each do |x|
213
- #if a directory...
214
- if(test(?d,x))
215
- #use this new dir find to add to the original list of directories
216
- @@root = x + "/**"
217
- #adds the new ones to the array
218
- b = Dir[@@root].entries.sort
219
- b.each do |x|
220
- if(test(?d,x))
221
- a.push(x) #appends to the end of the array...
222
- end
223
- end
224
- end
225
- end
226
- a.each do |x|
227
- #if it is a file...
228
- if(!test(?d,x))
229
- a.delete(x)
230
-
231
- else #it is a directory...
232
- loadguifile(x + "/**")
233
- end
234
- end
235
-
236
- # gui variable is done
237
- guiRWD = $tempdoc
238
-
239
- require 'socket' # Network stuff
240
- host = "127.0.0.1"
241
- port = $port
242
-
243
- # Create a socket to listen on and bind it to the host and port
244
- freeportfound = false
245
- until freeportfound
246
- begin
247
- @socket = UDPSocket::new()
248
- @socket.bind(host, port)
249
- freeportfound = true
250
- $port = port
251
- # Rescue the "Address in use" error
252
- rescue Errno::EADDRINUSE
253
- puts "RWD Startup: Port #{port} on host #{host} is already in use."
254
- port=port +1
255
- puts "trying port: #{port}"
256
- # Rescue the "Address not available' error
257
- rescue Errno::EADDRNOTAVAIL
258
- puts "RWD Startup: Address #{host} is not available to bind."
259
- port =port + 1
260
- puts "trying port: #{port}"
261
- # Rescue "permission denied errors
262
- rescue Errno::EACCES
263
- puts "RWD Startup: Access denied when binding interface addresses. ?"
264
- port =port + 1
265
- puts "trying port: #{port}"
266
- # Rescue all other errors
267
- rescue
268
- puts "RWD Startup: An error occured."
269
- port =port + 1
270
- puts "trying port: #{port}"
271
- # Rescue all other errors
272
- end
273
167
 
274
- end
168
+ $tempdoc = " "
169
+
170
+ Dir.chdir($progdir) # change back to top program directory
171
+
172
+ temp = eval( languagehashvariable )
173
+
174
+ $tempdoc = " "
175
+
176
+ # build the actual program from the code parts
177
+ #get a list of the files and subdirectories on the starting directory only
178
+ a = Array.new(Dir[CodeDir].entries.sort)
179
+ #loop through the list, ignore the files and add all new directories found
180
+ a.each do |x|
181
+ #if a directory...
182
+ if(test(?d,x))
183
+ # add to the original list of directories
184
+ @@root = x + "/**"
185
+ #adds the new ones to the array
186
+ b = Dir[@@root].entries.sort
187
+ b.each do |x|
188
+ if(test(?d,x))
189
+ a.push(x) #appends to the end of the array...
190
+ end
191
+ end
192
+ end
193
+ end
194
+ a.each do |x|
195
+ #if it is a file...
196
+ if(!test(?d,x))
197
+ a.delete(x)
198
+ else #it is a directory...
199
+ findfiles(x + "/**")
200
+ end
201
+ end
202
+
203
+
204
+ # load the program file
205
+ tempcoderesult = eval( $tempdoc )
206
+
207
+ # build the actual GUI from the gui parts
208
+ $tempdoc = " "
209
+ #get a list of the files and subdirectories on the starting directory only
210
+ a = Array.new(Dir[GuiDir].entries.sort)
211
+ #loop through the list, ignore the files and add all new directories found
212
+ a.each do |x|
213
+ #if a directory...
214
+ if(test(?d,x))
215
+ #use this new dir find to add to the original list of directories
216
+ @@root = x + "/**"
217
+ #adds the new ones to the array
218
+ b = Dir[@@root].entries.sort
219
+ b.each do |x|
220
+ if(test(?d,x))
221
+ a.push(x) #appends to the end of the array...
222
+ end
223
+ end
224
+ end
225
+ end
226
+ a.each do |x|
227
+ #if it is a file...
228
+ if(!test(?d,x))
229
+ a.delete(x)
230
+
231
+ else #it is a directory...
232
+ loadguifile(x + "/**")
233
+ end
234
+ end
235
+
236
+ # gui variable is done
237
+ guiRWD = $tempdoc
238
+
239
+ require 'socket' # Network stuff
240
+ host = "127.0.0.1"
241
+ port = $port
242
+
243
+ # Create a socket to listen on and bind it to the host and port
244
+ freeportfound = false
245
+ until freeportfound
246
+ begin
247
+ @socket = UDPSocket::new()
248
+ @socket.bind(host, port)
249
+ freeportfound = true
250
+ $port = port
251
+ # Rescue the "Address in use" error
252
+ rescue Errno::EADDRINUSE
253
+ puts "RWD Startup: Port #{port} on host #{host} is already in use."
254
+ port=port +1
255
+ puts "trying port: #{port}"
256
+ # Rescue the "Address not available' error
257
+ rescue Errno::EADDRNOTAVAIL
258
+ puts "RWD Startup: Address #{host} is not available to bind."
259
+ port =port + 1
260
+ puts "trying port: #{port}"
261
+ # Rescue "permission denied errors
262
+ rescue Errno::EACCES
263
+ puts "RWD Startup: Access denied when binding interface addresses. ?"
264
+ port =port + 1
265
+ puts "trying port: #{port}"
266
+ # Rescue all other errors
267
+ rescue
268
+ puts "RWD Startup: An error occured."
269
+ port =port + 1
270
+ puts "trying port: #{port}"
271
+ # Rescue all other errors
272
+ end
273
+
274
+ end
275
275
 
276
276
 
277
- RwdTinker.new( guiRWD).serve(port) # start the main class and program
277
+ RwdTinker.new( guiRWD).serve(port) # start the main class and program