rwdaddresses 1.03 → 1.04

Sign up to get free protection for your applications and to get access to all the features.
Files changed (183) hide show
  1. data/Readme.txt +10 -0
  2. data/bin/rwdaddresses +0 -0
  3. data/code/01rwdcore/01rwdcore.rb +0 -0
  4. data/code/01rwdcore/02helptexthashbegin.rb +0 -0
  5. data/code/01rwdcore/03helptexthash.rb +0 -0
  6. data/code/01rwdcore/04helptextend.rb +0 -0
  7. data/code/01rwdcore/jumplinkcommand.rb +0 -0
  8. data/code/01rwdcore/openhelpwindow.rb +0 -0
  9. data/code/01rwdcore/returntomain.rb +0 -0
  10. data/code/01rwdcore/rundocuments.rb +0 -0
  11. data/code/01rwdcore/runeditconfiguration.rb +0 -0
  12. data/code/01rwdcore/runhelpabout.rb +0 -0
  13. data/code/01rwdcore/rwdtinkerversion.rb +0 -0
  14. data/code/01rwdcore/rwdwindowreturn.rb +0 -0
  15. data/code/01rwdcore/selectiontab.rb +0 -0
  16. data/code/01rwdcore/test_cases.rb +0 -0
  17. data/code/01rwdcore/test_harness.rb +0 -0
  18. data/code/01rwdcore/uploadreturns.rb +0 -0
  19. data/code/superant.com.rwdaddresses/attachtmpcontactphoto.rb +0 -0
  20. data/code/superant.com.rwdaddresses/clearscreendisplay.rb +0 -0
  21. data/code/superant.com.rwdaddresses/createnewnamerecord.rb +0 -0
  22. data/code/superant.com.rwdaddresses/deletecontactrecord.rb +0 -0
  23. data/code/superant.com.rwdaddresses/deleterwdaddressesupdatefiles.rb +0 -0
  24. data/code/superant.com.rwdaddresses/downloadrwdaddressfiles.rb +0 -0
  25. data/code/superant.com.rwdaddresses/helptexthashrwdaddresses.rb +0 -0
  26. data/code/superant.com.rwdaddresses/jumplinkupdate.rb +0 -0
  27. data/code/superant.com.rwdaddresses/listnamerecord.rb +0 -0
  28. data/code/superant.com.rwdaddresses/listvcardrecord.rb +0 -0
  29. data/code/superant.com.rwdaddresses/loadconfigurationrecord.rb +0 -0
  30. data/code/superant.com.rwdaddresses/loadconfigurationvariables.rb +0 -0
  31. data/code/superant.com.rwdaddresses/loadnamerecord.rb +0 -0
  32. data/code/superant.com.rwdaddresses/openhelpwindowrwdaddresses.rb +0 -0
  33. data/code/superant.com.rwdaddresses/renamecontact.rb +0 -0
  34. data/code/superant.com.rwdaddresses/returntomain.rb +0 -0
  35. data/code/superant.com.rwdaddresses/runaddresseswindow.rb +0 -0
  36. data/code/superant.com.rwdaddresses/runrwdaddressesmenu1.rb +0 -0
  37. data/code/superant.com.rwdaddresses/runrwdaddresssyncbackwindow.rb +0 -0
  38. data/code/superant.com.rwdaddresses/rwdaddressesbackwindow.rb +0 -0
  39. data/code/superant.com.rwdaddresses/rwdaddresseshelpabout.rb +0 -0
  40. data/code/superant.com.rwdaddresses/saveconfigurationrecord.rb +0 -0
  41. data/code/superant.com.rwdaddresses/savevcardrecord.rb +0 -0
  42. data/code/superant.com.rwdaddresses/syncrwdaddress.rb +0 -0
  43. data/code/superant.com.rwdaddresses/test_cases.rb +0 -0
  44. data/code/superant.com.rwdaddresses/uploadrwdaddressfiles.rb +0 -0
  45. data/code/superant.com.rwdaddresses/viewaddressconfiguration.rb +0 -0
  46. data/code/superant.com.rwdaddresses/viewnamedata.rb +0 -0
  47. data/code/superant.com.rwdaddresses/viewphoto.rb +0 -0
  48. data/code/superant.com.rwdaddresses/viewrwdaddressesconfiguration.rb +0 -0
  49. data/code/superant.com.rwdaddresses/viewtmpcontactphoto.rb +0 -0
  50. data/code/superant.com.rwdaddresses/viewvcarddata.rb +0 -0
  51. data/code/superant.com.rwdtinkerbackwindow/controlclient.rb +0 -0
  52. data/code/superant.com.rwdtinkerbackwindow/diagnostictab.rb +0 -0
  53. data/code/superant.com.rwdtinkerbackwindow/helptexthashtinkerwin2.rb +0 -0
  54. data/code/superant.com.rwdtinkerbackwindow/installapplet.rb +0 -0
  55. data/code/superant.com.rwdtinkerbackwindow/installgemapplet.rb +0 -0
  56. data/code/superant.com.rwdtinkerbackwindow/installremotegem.rb +0 -0
  57. data/code/superant.com.rwdtinkerbackwindow/listgemdirs.rb +0 -0
  58. data/code/superant.com.rwdtinkerbackwindow/listgemzips.rb +0 -0
  59. data/code/superant.com.rwdtinkerbackwindow/listinstalledfiles.rb +0 -0
  60. data/code/superant.com.rwdtinkerbackwindow/listzips.rb +0 -0
  61. data/code/superant.com.rwdtinkerbackwindow/loadconfigurationrecord.rb +0 -0
  62. data/code/superant.com.rwdtinkerbackwindow/loadconfigurationvariables.rb +0 -0
  63. data/code/superant.com.rwdtinkerbackwindow/network.rb +0 -0
  64. data/code/superant.com.rwdtinkerbackwindow/openappletname.rb +0 -0
  65. data/code/superant.com.rwdtinkerbackwindow/openhelpwindowtinkerwin2.rb +0 -0
  66. data/code/superant.com.rwdtinkerbackwindow/remotegemlist.rb +0 -0
  67. data/code/superant.com.rwdtinkerbackwindow/removeapplet.rb +0 -0
  68. data/code/superant.com.rwdtinkerbackwindow/runremoteinstall.rb +0 -0
  69. data/code/superant.com.rwdtinkerbackwindow/runrwdtinkerbackwindow.rb +0 -0
  70. data/code/superant.com.rwdtinkerbackwindow/rwdtinkerwin2version.rb +0 -0
  71. data/code/superant.com.rwdtinkerbackwindow/saveconfigurationrecord.rb +0 -0
  72. data/code/superant.com.rwdtinkerbackwindow/viewappletcontents.rb +0 -0
  73. data/code/superant.com.rwdtinkerbackwindow/viewgemappletcontents.rb +0 -0
  74. data/code/zz0applicationend/zz0end.rb +0 -0
  75. data/configuration/language.dist +0 -0
  76. data/configuration/rwdaddresses.dist +2 -2
  77. data/configuration/rwdapplicationidentity.dist +0 -0
  78. data/configuration/rwdtinker.dist +2 -2
  79. data/configuration/tinkerwin2variables.dist +2 -2
  80. data/ev/browser.rb +24 -10
  81. data/ev/ftools.rb +23 -19
  82. data/ev/mime.rb +328 -0
  83. data/ev/net.rb +154 -38
  84. data/ev/ruby.rb +96 -26
  85. data/ev/rwd.rb +162 -89
  86. data/ev/sgml.rb +1 -1
  87. data/ev/tree.rb +33 -5
  88. data/ev/xml.rb +97 -0
  89. data/extras/rconftool.rb +0 -0
  90. data/extras/vpim/date.rb +0 -0
  91. data/extras/vpim/dirinfo.rb +0 -0
  92. data/extras/vpim/enumerator.rb +0 -0
  93. data/extras/vpim/field.rb +0 -0
  94. data/extras/vpim/maker/vcard.rb +0 -0
  95. data/extras/vpim/rfc2425.rb +0 -0
  96. data/extras/vpim/rrule.rb +0 -0
  97. data/extras/vpim/time.rb +0 -0
  98. data/extras/vpim/vcard.rb +0 -0
  99. data/extras/vpim/vpim.rb +0 -0
  100. data/extras/zip/ioextras.rb +0 -0
  101. data/extras/zip/stdrubyext.rb +0 -0
  102. data/extras/zip/tempfile_bugfixed.rb +0 -0
  103. data/extras/zip/zip.rb +0 -0
  104. data/extras/zip/zipfilesystem.rb +0 -0
  105. data/extras/zip/ziprequire.rb +0 -0
  106. data/gui/00coreguibegin/applicationguitop.rwd +0 -0
  107. data/gui/frontwindow0/superant.com.rwdaddresses/11viewnamedata.rwd +0 -0
  108. data/gui/frontwindow0/superant.com.rwdaddresses/13listnamerecordfiles.rwd +0 -0
  109. data/gui/frontwindow0/superant.com.rwdaddresses/16editrecord.rwd +0 -0
  110. data/gui/frontwindow0/superant.com.rwdaddresses/17viewvcardrecord.rwd +0 -0
  111. data/gui/frontwindow0/superant.com.rwdaddresses/18contactutilities.rwd +0 -0
  112. data/gui/frontwindowselectionbegin/selectiontabbegin/selectiontabbegin.rwd +0 -0
  113. data/gui/frontwindowselections/superant.com.rwdtinkerwin2selectiontab/jumplinkcommands.rwd +0 -0
  114. data/gui/frontwindowselectionzend/viewselectionzend/viewselectionend.rwd +0 -0
  115. data/gui/frontwindowtdocumentbegin/superant.com.documentsbegin/tt0documentbegin.rwd +0 -0
  116. data/gui/frontwindowtdocuments/superant.com.addressesdocuments/uu8doc_rwdschedule.rwd +0 -0
  117. data/gui/frontwindowtdocuments/superant.com.documents/uu5documents.rwd +0 -0
  118. data/gui/frontwindowtdocuments/superant.com.tinkerwin2documents/uu5documents.rwd +0 -0
  119. data/gui/frontwindowtdocumentzend/superant.com.documentsend/ww0documentend.rwd +0 -0
  120. data/gui/frontwindowz1end/frontwindowend/xx0rwdfirsttab.rwd +0 -0
  121. data/gui/helpaboutbegin/superant.com.helpaboutbegin/ya0helpscreenstart.rwd +0 -0
  122. data/gui/helpaboutinstalled/superant.com.rwdaddresseshelpabout/1appname.rwd +0 -0
  123. data/gui/helpaboutinstalled/superant.com.rwdaddresseshelpabout/3copyright.rwd +0 -0
  124. data/gui/helpaboutinstalled/superant.com.rwdaddresseshelpabout/5version.rwd +0 -0
  125. data/gui/helpaboutinstalled/superant.com.tinkerhelpabout/1appname.rwd +0 -0
  126. data/gui/helpaboutinstalled/superant.com.tinkerhelpabout/3copyright.rwd +0 -0
  127. data/gui/helpaboutinstalled/superant.com.tinkerhelpabout/5version.rwd +0 -0
  128. data/gui/helpaboutzend/superant.com.helpaboutend/helpscreenend.rwd +0 -0
  129. data/gui/tinkerbackwindows/superant.com.addressesphotowindow/yy7addressesphoto.rwd +0 -0
  130. data/gui/tinkerbackwindows/superant.com.rwdaddressessyncbackwindow/1appname.rwd +0 -0
  131. data/gui/tinkerbackwindows/superant.com.rwdaddressessyncbackwindow/20downloadftp.rwd +0 -0
  132. data/gui/tinkerbackwindows/superant.com.rwdaddressessyncbackwindow/70rwddiagnostics.rwd +0 -0
  133. data/gui/tinkerbackwindows/superant.com.rwdaddressessyncbackwindow/88viewconfiguration.rwd +0 -0
  134. data/gui/tinkerbackwindows/superant.com.rwdaddressessyncbackwindow/94selectiontab.rwd +0 -0
  135. data/gui/tinkerbackwindows/superant.com.rwdaddressessyncbackwindow/95jumplink.rwd +0 -0
  136. data/gui/tinkerbackwindows/superant.com.rwdaddressessyncbackwindow/97selectionend.rwd +0 -0
  137. data/gui/tinkerbackwindows/superant.com.rwdaddressessyncbackwindow/zvbackend.rwd +0 -0
  138. data/gui/tinkerbackwindows/superant.com.tinkerbackwindow/1appname.rwd +0 -0
  139. data/gui/tinkerbackwindows/superant.com.tinkerbackwindow/40rwdlistzips.rwd +0 -0
  140. data/gui/tinkerbackwindows/superant.com.tinkerbackwindow/45installremotezip.rwd +0 -0
  141. data/gui/tinkerbackwindows/superant.com.tinkerbackwindow/50rwdlistapplets.rwd +0 -0
  142. data/gui/tinkerbackwindows/superant.com.tinkerbackwindow/60editconfiguration.rwd +0 -0
  143. data/gui/tinkerbackwindows/superant.com.tinkerbackwindow/70rwddiagnostics.rwd +0 -0
  144. data/gui/tinkerbackwindows/superant.com.tinkerbackwindow/81jumplinkcommands.rwd +0 -0
  145. data/gui/tinkerbackwindows/superant.com.tinkerbackwindow/9backend.rwd +0 -0
  146. data/gui/tinkerbackwindows/superant.com.tinkerhelpwindow/1appname.rwd +0 -0
  147. data/gui/tinkerbackwindows/superant.com.tinkerhelpwindow/9end.rwd +0 -0
  148. data/gui/tinkerbackwindows/superant.com.versionwindow/1appname.rwd +0 -0
  149. data/gui/zzcoreguiend/tinkerapplicationguiend/yy9rwdend.rwd +0 -0
  150. data/init.rb +0 -0
  151. data/installed/rwdviewlogo-0.4.inf +0 -0
  152. data/lang/en/rwdcore/languagefile.rb +0 -0
  153. data/lang/es/rwdcore/languagefile-es.rb +0 -0
  154. data/lang/jp/rwdcore/languagefile.rb +0 -0
  155. data/lang/nl/rwdcore/languagefile.rb +0 -0
  156. data/lib/temp.rb +0 -0
  157. data/names/Angelina Jolie.jpg +0 -0
  158. data/names/Angelina Jolie.nam +0 -0
  159. data/names/Angelina Jolie.vcf +0 -0
  160. data/names/Steven Gibson.jpg +0 -0
  161. data/names/Steven Gibson.nam +0 -0
  162. data/names/elektra.jpg +0 -0
  163. data/names/elektra.nam +0 -0
  164. data/names/nophoto.jpg +0 -0
  165. data/rwd_files/HowTo_Addresses.txt +0 -0
  166. data/rwd_files/HowTo_Tinker.txt +0 -0
  167. data/rwd_files/HowTo_TinkerWin2.txt +0 -0
  168. data/rwd_files/Readme.txt +0 -0
  169. data/rwd_files/contacttmp.jpg +0 -0
  170. data/rwd_files/favicon.ico +0 -0
  171. data/rwd_files/rdoc-style.css +0 -0
  172. data/rwd_files/rwdapplications.html +0 -0
  173. data/rwd_files/rwdindex.html +0 -0
  174. data/rwd_files/tinker.png +0 -0
  175. data/rwdconfig.dist +1 -1
  176. data/tests/checkdepends.sh +0 -0
  177. data/tests/cleancnf.sh +0 -0
  178. data/tests/makedist.rb +0 -0
  179. data/tests/rdep.rb +0 -0
  180. data/tests/totranslate.lang +0 -0
  181. data/zips/rwdahelloworld-0.5.zip +0 -0
  182. metadata +248 -234
  183. data/gui/tinkerbackwindows/superant.com.tinkerbackwindow/75rwdcontrol.rwd +0 -33
data/Readme.txt CHANGED
@@ -147,6 +147,16 @@ erik = secret
147
147
  Thanks, Steven Gibson
148
148
 
149
149
  == Changelog
150
+ Version 1.04
151
+ update to rwd tinker 1.68
152
+ changed path for debian linux in config
153
+ removed remote control - was not working
154
+
155
+ Version 1.03
156
+ fixed sync download
157
+ added more unit test
158
+ updated for rwdtinker 1.64 - jump menu added
159
+
150
160
  Version 1.02
151
161
  Export vCard
152
162
  view raw vCard
data/bin/rwdaddresses CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- ##VERSION:1.03
1
+ ##VERSION:1.04
2
2
  #rwdaddresses contact book
3
3
  $photodelay = 1
4
4
  ##NAME:$addressfiles_directory:0
@@ -16,4 +16,4 @@ $rwdaddresses_ftpdirectory = "/incoming/rwdnames/"
16
16
  ##NAME:$rwdaddresses_updatedirectory:0
17
17
  $rwdaddresses_updatedirectory = "updates"
18
18
  $testharnessarray += ["rwdaddresses_all_tests"]
19
- RwdAddressesVersion = "1.03"
19
+ RwdAddressesVersion = "1.04"
File without changes
@@ -1,4 +1,4 @@
1
- ##VERSION:1.64
1
+ ##VERSION:1.68
2
2
  ConfigurationDir = "configuration" # for use in program - init.rb has this value without using this constant
3
3
  CodeName = "rwdtinker"
4
4
  CodeNameFile = CodeName + ".rb"
@@ -12,4 +12,4 @@ LangDir = "lang"
12
12
  $rwdcontrolports =["13713","13714","13715","13716","13717","13718"]
13
13
  $port = 7705
14
14
  $rwdjumplink = ["helpscreen","tinkerbackwindow","returntomain","opendocuments","editconfiguration"]
15
- RwdTinkerVersion = "1.64"
15
+ RwdTinkerVersion = "1.68"
@@ -7,11 +7,11 @@ $zipslocation = "zips" # location of applets to add
7
7
  $xpcommand = " " # Linux machines
8
8
  # $xpcommand = "cmd /C " # XP machines with cmd shell
9
9
  ##NAME:$gemdirectory_withgemfiles:0
10
- $gemdirectory_withgemfiles = "/usr/lib/ruby/gems/1.8/gems"
10
+ $gemdirectory_withgemfiles = "/var/lib/gems/1.8/gems"
11
11
  # $gemdirectory_withgemfiles = "c:\\ruby\\lib\\ruby\\gems\\1.8\\gems" # XP machine
12
12
  ##NAME:$geminstalled_directory:0
13
13
  # $geminstalled_directory = "/ruby/lib/ruby/gems/1.8/gems" # XP machine
14
- $geminstalled_directory = "/usr/lib/ruby/gems/1.8/gems" # Debian Linux
14
+ $geminstalled_directory = "/var/lib/gems/1.8/gems" # Debian Linux
15
15
 
16
16
  RwdTinkerWin2Version = "0.8"
17
17
 
data/ev/browser.rb CHANGED
@@ -16,20 +16,33 @@ def windowsbrowser
16
16
  application = nil
17
17
 
18
18
  begin
19
- Win32::Registry::HKEY_CLASSES_ROOT.open('.html') do |reg|
19
+ Win32::Registry::HKEY_CLASSES_ROOT.open(".html") do |reg|
20
20
  filetype = reg[""]
21
21
  end
22
22
 
23
- Win32::Registry::HKEY_CLASSES_ROOT.open(filetype + '\shell\open\command') do |reg|
23
+ Win32::Registry::HKEY_CLASSES_ROOT.open(filetype + "\\shell\\open\\command") do |reg|
24
24
  application = reg[""]
25
25
  end
26
26
  rescue NameError
27
- $stderr.puts "Only available for Windows."
27
+ $stderr.puts "Only available for Windows and Cygwin."
28
28
  end
29
29
 
30
30
  application
31
31
  end
32
32
 
33
+ def cygwinbrowser
34
+ browser, *args = windowsbrowser.splitwords
35
+ browser = browser.gsub(/\\/, "/")
36
+ #browser = browser
37
+
38
+ args.collect!{|a| a.gsub(/\\/, "/")}
39
+ #args.collect!{|a| "\"%s\"" % [a.gsub(/\\/, "/")]}
40
+ #args.collect!{|a| "\"%s\"" % [a]}
41
+
42
+ res = "\"%s\" %s" % [browser, args.join(" ")]
43
+ res
44
+ end
45
+
33
46
  def linuxbrowser
34
47
  application = ""
35
48
 
@@ -47,25 +60,26 @@ end
47
60
  def defaultbrowser
48
61
  res = nil
49
62
  res = windowsbrowser if windows?
63
+ res = cygwinbrowser if cygwin?
50
64
  res = linuxbrowser if linux?
51
65
  res
52
66
  end
53
67
 
68
+ def showurlinbrowser(url, browser=defaultbrowser)
69
+ command = "#{browser} \"#{url}\""
70
+
71
+ system(command) or $stderr.puts "Starting of the browser failed, or the browser terminated abnormally.\nCommand => #{command}"
72
+ end
73
+
54
74
  def showinbrowser(html, browser=defaultbrowser)
55
75
  port, io = TCPServer.freeport(7701, 7709)
56
76
 
57
77
  unless browser.nil?
58
78
  Thread.new do
59
79
  begin
60
- #command = "1234 \"http://localhost:#{port}\"" if linux?
61
- #command = "L:/prog/MozillaFirefox/firefox.exe \"http://localhost:#{port}\"" if cygwin?
62
- #command = Win32::Registry::HKEY_CLASSES_ROOT.open('htmlfile\shell\open\command')[0] + " \"http://localhost:#{port}/\"" if windows?
63
-
64
- command = "#{browser} \"http://localhost:#{port}\""
65
-
66
80
  Thread.pass
67
81
 
68
- system(command)
82
+ showurlinbrowser("http://localhost:#{port}/", browser)
69
83
  rescue
70
84
  end
71
85
  end
data/ev/ftools.rb CHANGED
@@ -1,22 +1,12 @@
1
1
  require "ftools"
2
2
 
3
3
  class Dir
4
- def self.mkdirrec(dir)
5
- pdir = File.dirname(dir)
6
-
7
- if not pdir.empty? and not File.directory?(pdir)
8
- Dir.mkdirrec(pdir)
9
- end
10
-
11
- Dir.mkdir(dir) rescue nil
12
- end
13
-
14
4
  def self.copy(from, to)
15
5
  if File.directory?(from)
16
6
  pdir = Dir.pwd
17
7
  todir = File.expand_path(to)
18
8
 
19
- mkdirrec(todir)
9
+ File.mkpath(todir)
20
10
 
21
11
  Dir.chdir(from)
22
12
  Dir.new(".").each do |e|
@@ -26,7 +16,7 @@ class Dir
26
16
  else
27
17
  todir = File.dirname(File.expand_path(to))
28
18
 
29
- mkdirrec(todir)
19
+ File.mkpath(todir)
30
20
 
31
21
  File.copy(from, to)
32
22
  end
@@ -38,6 +28,8 @@ class Dir
38
28
  end
39
29
 
40
30
  def self.rm_rf(entry)
31
+ File.chmod(0755, entry)
32
+
41
33
  if File.ftype(entry) == "directory"
42
34
  pdir = Dir.pwd
43
35
 
@@ -47,16 +39,24 @@ class Dir
47
39
  end
48
40
  Dir.chdir(pdir)
49
41
 
50
- Dir.delete(entry)
42
+ begin
43
+ Dir.delete(entry)
44
+ rescue => e
45
+ $stderr.puts e.message
46
+ end
51
47
  else
52
- File.delete(entry)
48
+ begin
49
+ File.delete(entry)
50
+ rescue => e
51
+ $stderr.puts e.message
52
+ end
53
53
  end
54
54
  end
55
55
 
56
56
  def self.find(entry=nil, mask=nil)
57
57
  entry = "." if entry.nil?
58
58
 
59
- entry = entry.gsub!(/[\/\\]*$/, "") unless entry.nil?
59
+ entry = entry.gsub(/[\/\\]*$/, "") unless entry.nil?
60
60
 
61
61
  mask = /^#{mask}$/i if mask.kind_of?(String)
62
62
 
@@ -77,8 +77,8 @@ class Dir
77
77
  ensure
78
78
  Dir.chdir(pdir)
79
79
  end
80
- rescue Errno::EACCES => error
81
- puts error
80
+ rescue Errno::EACCES => e
81
+ $stderr.puts e.message
82
82
  end
83
83
  else
84
84
  res += [entry] if mask.nil? or entry =~ mask
@@ -99,7 +99,7 @@ class File
99
99
  # Rollback
100
100
 
101
101
  if File.file?(backupfile) and File.file?(controlfile)
102
- $stdout.puts "Restoring #{file}..."
102
+ $stderr.puts "Restoring #{file}..."
103
103
 
104
104
  File.copy(backupfile, file) # Rollback from phase 3
105
105
  end
@@ -139,7 +139,11 @@ class File
139
139
  end
140
140
 
141
141
  def self.touch(file)
142
- File.open(file, "a"){|f|}
142
+ if File.exists?(file)
143
+ File.utime(Time.now, File.mtime(file), file)
144
+ else
145
+ File.open(file, "a"){|f|}
146
+ end
143
147
  end
144
148
 
145
149
  def self.which(file)