backup_paradise 1.2.40

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of backup_paradise might be problematic. Click here for more details.

Files changed (54) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +390 -0
  3. data/backup_paradise.gemspec +50 -0
  4. data/bin/backup_for_ingrid +10 -0
  5. data/bin/backup_paradise +7 -0
  6. data/bin/windows_backup_paradise +9 -0
  7. data/doc/README.gen +347 -0
  8. data/doc/TODO.md +130 -0
  9. data/lib/backup_paradise/actions/README.md +2 -0
  10. data/lib/backup_paradise/actions/backup.rb +62 -0
  11. data/lib/backup_paradise/base/base.rb +493 -0
  12. data/lib/backup_paradise/base/colours.rb +137 -0
  13. data/lib/backup_paradise/base/namespace.rb +16 -0
  14. data/lib/backup_paradise/base/tab.rb +47 -0
  15. data/lib/backup_paradise/colours/colours.rb +88 -0
  16. data/lib/backup_paradise/constants/constants.rb +162 -0
  17. data/lib/backup_paradise/gui/glimmer/libui/backup_for_ingrid/backup_for_ingrid.rb +87 -0
  18. data/lib/backup_paradise/gui/gtk2/OLD_backup.rb +222 -0
  19. data/lib/backup_paradise/gui/gtk3/simple_backup_widget/create.rb +64 -0
  20. data/lib/backup_paradise/gui/gtk3/simple_backup_widget/misc.rb +34 -0
  21. data/lib/backup_paradise/gui/gtk3/simple_backup_widget/simple_backup_widget.rb +167 -0
  22. data/lib/backup_paradise/gui/libui/backup_for_ingrid/backup_for_ingrid.rb +99 -0
  23. data/lib/backup_paradise/gui/libui/simple_backup_widget/simple_backup_widget.rb +119 -0
  24. data/lib/backup_paradise/gui/shared_code/simple_backup_widget/simple_backup_widget_module.rb +595 -0
  25. data/lib/backup_paradise/gui/tk/backup.rb +108 -0
  26. data/lib/backup_paradise/images/BACKUP_IMAGE.png +0 -0
  27. data/lib/backup_paradise/images/right_arrow.png +0 -0
  28. data/lib/backup_paradise/project/project.rb +40 -0
  29. data/lib/backup_paradise/requires/require_the_backup_paradise_project.rb +18 -0
  30. data/lib/backup_paradise/requires/require_yaml.rb +7 -0
  31. data/lib/backup_paradise/tab/tab.rb +87 -0
  32. data/lib/backup_paradise/toplevel_methods/cliner.rb +16 -0
  33. data/lib/backup_paradise/toplevel_methods/config.rb +77 -0
  34. data/lib/backup_paradise/toplevel_methods/create_and_remove.rb +63 -0
  35. data/lib/backup_paradise/toplevel_methods/e.rb +16 -0
  36. data/lib/backup_paradise/toplevel_methods/esystem.rb +19 -0
  37. data/lib/backup_paradise/toplevel_methods/files_and_directories.rb +181 -0
  38. data/lib/backup_paradise/toplevel_methods/help.rb +93 -0
  39. data/lib/backup_paradise/toplevel_methods/misc.rb +153 -0
  40. data/lib/backup_paradise/toplevel_methods/mountpoint.rb +185 -0
  41. data/lib/backup_paradise/toplevel_methods/opnn.rb +25 -0
  42. data/lib/backup_paradise/utility_scripts/backup/backup.rb +1416 -0
  43. data/lib/backup_paradise/utility_scripts/backup/constants.rb +44 -0
  44. data/lib/backup_paradise/utility_scripts/backup/initialize.rb +71 -0
  45. data/lib/backup_paradise/utility_scripts/backup/menu.rb +361 -0
  46. data/lib/backup_paradise/utility_scripts/backup/run.rb +20 -0
  47. data/lib/backup_paradise/version/version.rb +19 -0
  48. data/lib/backup_paradise/windows/README.md +1 -0
  49. data/lib/backup_paradise/windows/windows.rb +101 -0
  50. data/lib/backup_paradise/www/backup.cgi +63 -0
  51. data/lib/backup_paradise/yaml/config.yml +78 -0
  52. data/lib/backup_paradise.rb +5 -0
  53. data/test/testing_toplevel_functionality.rb +11 -0
  54. metadata +198 -0
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'backup_paradise/utility_scripts/backup/constants.rb'
6
+ # =========================================================================== #
7
+ require 'backup_paradise/base/base.rb'
8
+
9
+ module BackupParadise
10
+
11
+ class Backup < ::BackupParadise::Base
12
+
13
+ # ========================================================================= #
14
+ # === NAMESPACE
15
+ # ========================================================================= #
16
+ NAMESPACE = inspect
17
+
18
+ # ========================================================================= #
19
+ # === MINIMAL_FILESIZE
20
+ # ========================================================================= #
21
+ MINIMAL_FILESIZE = 5 * (1000 ** 3) # 5 * 1024 * 1024 * 1024
22
+
23
+ # ========================================================================= #
24
+ # === FILE_BACKUP_LOG
25
+ #
26
+ # Denote where to keep the backup.log file, if we log that is.
27
+ # ========================================================================= #
28
+ if File.directory? '/home/Temp/'
29
+ FILE_BACKUP_LOG = '/home/Temp/backup.log'
30
+ else
31
+ FILE_BACKUP_LOG = '/tmp/backup.log'
32
+ end
33
+
34
+ # ========================================================================= #
35
+ # === TRY_TO_SHOW_BACKUP_COMPLETE_MESSAGE_VIA_LIBUI
36
+ #
37
+ # If the following constant is true then this class will try to make
38
+ # use of libui and the libui_paradise gem to show a little libui
39
+ # message box (a window) about how the backup action is now
40
+ # complete.
41
+ # ========================================================================= #
42
+ TRY_TO_SHOW_BACKUP_COMPLETE_MESSAGE_VIA_LIBUI = true
43
+
44
+ end; end
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'backup_paradise/utility_scripts/backup/initialize.rb'
6
+ # =========================================================================== #
7
+ require 'backup_paradise/base/base.rb'
8
+
9
+ module BackupParadise
10
+
11
+ class Backup < ::BackupParadise::Base # === BackupParadise::Backup
12
+
13
+ # ========================================================================= #
14
+ # === initialize
15
+ #
16
+ # Invocation example:
17
+ #
18
+ # x = BackupParadise::Backup.new(nil, :do_not_run_yet)
19
+ #
20
+ # ========================================================================= #
21
+ def initialize(
22
+ commandline_arguments = nil,
23
+ run_already = true,
24
+ &block
25
+ )
26
+ register_sigint
27
+ reset
28
+ if commandline_arguments
29
+ if commandline_arguments.is_a?(Symbol)
30
+ case commandline_arguments
31
+ # =================================================================== #
32
+ # === :do_not_run_yet
33
+ # =================================================================== #
34
+ when :do_not_run_yet
35
+ run_already = false
36
+ end
37
+ else
38
+ set_commandline_arguments(
39
+ commandline_arguments
40
+ )
41
+ end
42
+ end
43
+ case run_already
44
+ # ======================================================================= #
45
+ # === :do_not_run_yet
46
+ # ======================================================================= #
47
+ when :do_not_run_yet
48
+ run_already = false
49
+ end
50
+ # ======================================================================= #
51
+ # === Handle blocks given next
52
+ # ======================================================================= #
53
+ if block_given?
54
+ yielded = yield
55
+ case yielded
56
+ # ===================================================================== #
57
+ # === :do_not_run_yet
58
+ # ===================================================================== #
59
+ when :do_not_run_yet
60
+ run_already = false
61
+ # ===================================================================== #
62
+ # === :we_are_on_windows
63
+ # ===================================================================== #
64
+ when :we_are_on_windows
65
+ @internal_hash[:are_we_on_windows] = true
66
+ end
67
+ end
68
+ run if run_already
69
+ end
70
+
71
+ end; end
@@ -0,0 +1,361 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'backup_paradise/utility_scripts/backup/menu.rb'
6
+ # =========================================================================== #
7
+ require 'backup_paradise/base/base.rb'
8
+
9
+ module BackupParadise
10
+
11
+ class Backup < ::BackupParadise::Base # === BackupParadise::Backup
12
+
13
+ require 'backup_paradise/version/version.rb'
14
+
15
+ # ========================================================================= #
16
+ # === menu (menu tag)
17
+ # ========================================================================= #
18
+ def menu(
19
+ i = commandline_arguments?
20
+ )
21
+ return if i.nil?
22
+ # ======================================================================= #
23
+ # === Handle Hashes
24
+ #
25
+ # Note that this is the default entry point.
26
+ #
27
+ # An example for how this may be used is given next:
28
+ #
29
+ # BackupParadise::Actions.backup(
30
+ # backup_these_directories: i,
31
+ # where_to: to
32
+ # )
33
+ #
34
+ # ======================================================================= #
35
+ if i.is_a? Hash
36
+ # ===================================================================== #
37
+ # === :backup_to_this_target
38
+ #
39
+ # The next check must come early, on top.
40
+ # ===================================================================== #
41
+ # ===================================================================== #
42
+ # === :where_to
43
+ # ===================================================================== #
44
+ if i.has_key? :where_to
45
+ set_backup_to_this_target(i[:where_to])
46
+ elsif i.has_key? :backup_to_this_target
47
+ set_backup_to_this_target(i[:backup_to_this_target])
48
+ end
49
+ # ===================================================================== #
50
+ # === :commandline_arguments
51
+ # ===================================================================== #
52
+ if i.has_key? :commandline_arguments
53
+ menu(i[:commandline_arguments])
54
+ # ===================================================================== #
55
+ # === :backup_these_directories
56
+ # ===================================================================== #
57
+ elsif i.has_key? :backup_these_directories
58
+ menu(i[:backup_these_directories])
59
+ end
60
+ # ======================================================================= #
61
+ # === Handle Arrays
62
+ # ======================================================================= #
63
+ elsif i.is_a? Array
64
+ i.each {|entry| menu(entry) }
65
+ else
66
+ case i # case tag
67
+ # ===================================================================== #
68
+ # === rbackup --audio-dir
69
+ #
70
+ # This entry point can be used to specifically backup the
71
+ # audio-directory - that is, the local directory that
72
+ # contains all songs.
73
+ #
74
+ # Usage example:
75
+ #
76
+ # rbackup --audio-dir
77
+ #
78
+ # A more advanced invocation example is:
79
+ #
80
+ # rbackup --backup-to=/opt/ --audio-dir
81
+ #
82
+ # ===================================================================== #
83
+ when /^-?-?audio(-| |_)?dir$/i,
84
+ /^-?-?audio$/i,
85
+ /^-?-?aud$/i,
86
+ /^-?-?audi$/i,
87
+ /^-?-?aonly$/i,
88
+ /^-?-?audio(-| |_)?only$/i
89
+ determine_whether_the_target_harddisc_is_a_ntfs_system
90
+ backup_the_audio_directory
91
+ do_not_perform_the_regular_backup_routine
92
+ # ===================================================================== #
93
+ # === rbackup --libui
94
+ # ===================================================================== #
95
+ when /^-?-?lib-?ui$/i,
96
+ /^-?-?gui2$/i
97
+ require 'backup_paradise/gui/libui/backup_for_ingrid/backup_for_ingrid.rb'
98
+ BackupParadise::GUI::LibUI::BackupForIngrid.new
99
+ exit
100
+ # ===================================================================== #
101
+ # === rbackup --gui
102
+ #
103
+ # Alternatively use rbackup --gtk3.
104
+ # ===================================================================== #
105
+ when /^-?-?gui$/i,
106
+ /^-?-?gtk3$/i,
107
+ /^-?-?gtk$/i,
108
+ /^-?-?gui1$/i
109
+ start_the_gtk3_bindings
110
+ do_not_perform_the_regular_backup_routine
111
+ # ===================================================================== #
112
+ # === rbackup --version?
113
+ # ===================================================================== #
114
+ when /^-?-?version\??$/i
115
+ e BackupParadise::VERSION
116
+ do_not_perform_the_regular_backup_routine
117
+ # ===================================================================== #
118
+ # === rbackup --are-we-on-windows?
119
+ # ===================================================================== #
120
+ when /^-?-?are(-| |_)?we(-| |_)?on(-| |_)?windows\??$/i
121
+ e rev+'Are we on windows? '+
122
+ steelblue(are_we_on_windows?.to_s)
123
+ do_not_perform_the_regular_backup_routine
124
+ # ===================================================================== #
125
+ # === rbackup --help
126
+ #
127
+ # The user can use this entry point to obtain helpful information in
128
+ # how to use this class, on the commandline.
129
+ # ===================================================================== #
130
+ when /help/i,
131
+ /^-?-?show(-| |_)?help$/i,
132
+ 'hel',
133
+ 'he','h','?','*'
134
+ show_help
135
+ do_not_perform_the_regular_backup_routine
136
+ # ===================================================================== #
137
+ # === rbackup --video-dir
138
+ # ===================================================================== #
139
+ when /^-?-?video(-| |_)?dir$/i,
140
+ /^-?-?video(-| |_)?directory$/i,
141
+ /^-?-?video$/i
142
+ backup_the_video_directory
143
+ do_not_perform_the_regular_backup_routine
144
+ # ===================================================================== #
145
+ # === rbackup --books
146
+ #
147
+ # This entry point allows the user to backup the /home/x/books/
148
+ # directory.
149
+ # ===================================================================== #
150
+ when /^-?-?books$/i,
151
+ /^-?-?books(-| |_)?directory$/i
152
+ backup_the_books_directory
153
+ do_not_perform_the_regular_backup_routine
154
+ # ===================================================================== #
155
+ # === rbackup --source-dir
156
+ # === rbackup --source-directory
157
+ # === rbackup --source
158
+ # === rbackup --src-dir
159
+ # === rbackup --src
160
+ #
161
+ # This entry point allows the user to backup the /home/x/src/
162
+ # directory.
163
+ # ===================================================================== #
164
+ when /^-?-?source(-| |_)?dir$/i,
165
+ /^-?-?source(-| |_)?directory$/i,
166
+ /^-?-?source$/i,
167
+ /^-?-?src(-| |_)?dir$/i,
168
+ /^-?-?src$/i
169
+ backup_the_source_directory
170
+ do_not_perform_the_regular_backup_routine
171
+ # ===================================================================== #
172
+ # === Backup all relevant entries to the chroot-directory
173
+ #
174
+ # This entry point is mostly used for my local Chroot directory. We
175
+ # will quickly backup the important files to that directory, which
176
+ # then allows us to cd into a better chroot-environment.
177
+ #
178
+ # Invocation examples:
179
+ #
180
+ # rbackup --chroot
181
+ # rbackup --to-chroot
182
+ #
183
+ # ===================================================================== #
184
+ when /^-?-?chroot$/i,
185
+ /^-?-?to(-| |_)?chroot$/i,
186
+ /^-?-?into(-| |_)?chroot$/i
187
+ backup_into_the_default_chroot_directory
188
+ do_not_perform_the_regular_backup_routine
189
+ # ===================================================================== #
190
+ # === rbackup --studium-dir
191
+ # === rbackup --studium-directory
192
+ # === rbackup --studium
193
+ #
194
+ # This entry point allows the user to backup the /home/x/studium/
195
+ # directory, by making use of the constant STUDIUM_DIRECTORY.
196
+ # ===================================================================== #
197
+ when /^-?-?studium(-| |_)?dir$/i,
198
+ /^-?-?studium(-| |_)?directory$/i,
199
+ /^-?-?studium$/i
200
+ backup_the_studium_directory
201
+ do_not_perform_the_regular_backup_routine
202
+ # ===================================================================== #
203
+ # === rbackup --data-dir
204
+ # ===================================================================== #
205
+ when /^-?-?data(-| |_)?dir$/i,
206
+ /^-?-?data(-| |_)?directory$/i,
207
+ /^-?-?data$/i,
208
+ /^-?-?ONLY(-| |_)?DATA$/i,
209
+ /^-?-?DATA(-| |_)?ONLY$/i,
210
+ /^-?-?donly$/i
211
+ backup_the_data_directory_then_exit
212
+ # ===================================================================== #
213
+ # === rbackup --system-dir
214
+ # ===================================================================== #
215
+ when /^-?-?system(-| |_)?dir$/i,
216
+ /^-?-?system(-| |_)?directory$/i,
217
+ /^-?-?system$/i
218
+ backup_the_system_directory
219
+ do_not_perform_the_regular_backup_routine
220
+ # ===================================================================== #
221
+ # === rbackup --programs-dir
222
+ #
223
+ # This entry point can be used to backup /home/Programs/ specifically.
224
+ # ===================================================================== #
225
+ when /^-?-?programs(-| |_)?dir$/i,
226
+ /^-?-?programs$/i
227
+ backup_the_programs_directory
228
+ do_not_perform_the_regular_backup_routine
229
+ # ===================================================================== #
230
+ # === rbackup default
231
+ # ===================================================================== #
232
+ when 'default' # Default entry point is for /Mount/USB1 aka :usb1.
233
+ set_target_mountpoint(:usb1)
234
+ # ===================================================================== #
235
+ # === rbackup --mountpoints
236
+ # ===================================================================== #
237
+ when /^-?-?mountpoints/
238
+ show_available_mountpoints_then_exit
239
+ # ===================================================================== #
240
+ # === rbackup --logfile
241
+ # ===================================================================== #
242
+ when /^-?-?logfile\??$/i
243
+ show_the_logfile
244
+ do_not_perform_the_regular_backup_routine
245
+ # ===================================================================== #
246
+ # === rbackup --show-file-size-of-popular_directories
247
+ # === rbackup --overview
248
+ # ===================================================================== #
249
+ when /^-?-?show(-| |_)?file(-| |_)?size(-| |_)?of(-| |_)?popular(-| |_)?directories$/i,
250
+ /^-?-?overview$/i
251
+ use_this_array = [
252
+ return_the_songs_directory,
253
+ PROGRAMS_DIRECTORY,
254
+ VIDEO_DIRECTORY,
255
+ STUDIUM_DIRECTORY,
256
+ DATA_DIRECTORY,
257
+ SOURCE_DIRECTORY
258
+ ].map {|entry|
259
+ return_this_absolute_directory(entry)
260
+ }
261
+ use_this_array.each {|this_entry|
262
+ report_file_size_of(this_entry)
263
+ }
264
+ do_not_perform_the_regular_backup_routine
265
+ # ===================================================================== #
266
+ # === rbackup --use-this-as-target-for-backup=/opt/
267
+ # === rbackup --use-this-as-target=/opt/
268
+ # === rbackup --backup-to=/opt/
269
+ #
270
+ # This entry point allows the user to specify another target to
271
+ # be used from the commandline.
272
+ # ===================================================================== #
273
+ when /^-?-?backup(-| |_)?to=(.+)$/i,
274
+ /^-?-?use(-| |_)?this(-| |_)?as(-| |_)?target=(.+)$/i,
275
+ /^-?-?use(-| |_)?this(-| |_)?as(-| |_)?target(-| |_)?for(-| |_)?backup=(.+)$/i
276
+ _ = $2.to_s.dup
277
+ _ = $4.to_s.dup if $4
278
+ _ = $6.to_s.dup if $6
279
+ opnn; e 'The target device will be at '+sfancy(_)+'.'
280
+ set_target_device(_)
281
+ # ===================================================================== #
282
+ # === Use a shorter name for the backup-directory
283
+ #
284
+ # This entry point has been created to allow simpler backup onto
285
+ # NTFS devices. I ran into a problem with a too-long, and special
286
+ # name for a directory.
287
+ #
288
+ # Usage example:
289
+ #
290
+ # rbackup --use-shorter-name
291
+ # rbackup tousb1 --use-shorter-name
292
+ #
293
+ # ===================================================================== #
294
+ when /^-?-?use(-| |_)?shorter(-| |_)?name$/i,
295
+ /^-?-?windows$/i,
296
+ /^-?-?sane-symlink$/i
297
+ do_use_simplified_directory
298
+ # ===================================================================== #
299
+ # === rbackup --pwd
300
+ # ===================================================================== #
301
+ when /^-?-?pwd$/i
302
+ current_directory = (Dir.pwd+'/').squeeze('/')
303
+ set_target_mountpoint(current_directory)
304
+ # ===================================================================== #
305
+ # === rbackup --autogenerated
306
+ # ===================================================================== #
307
+ when /^-?-?autogen$/,
308
+ 'agen',
309
+ 'autog',
310
+ /^-?-?autogenerated$/i
311
+ determine_whether_the_target_harddisc_is_a_ntfs_system
312
+ try_to_backup_the_autogenerated_directory
313
+ do_not_perform_the_regular_backup_routine
314
+ else # else tag
315
+ # =================================================================== #
316
+ # === Backup an existing directory
317
+ #
318
+ # This entry point allows us to quickly backup an existing
319
+ # directory.
320
+ #
321
+ # Usage example:
322
+ #
323
+ # rbackup /home/x/data/rpg/
324
+ #
325
+ # =================================================================== #
326
+ if File.directory?(i)
327
+ i = File.absolute_path(i)
328
+ i << '/' unless i.end_with? '/'
329
+ new_target = @mountpoint.squeeze('/')
330
+ cpr(i, new_target)
331
+ all_done_message
332
+ do_not_perform_the_regular_backup_routine
333
+ # =================================================================== #
334
+ # === Backup individual .h files quickly
335
+ #
336
+ # This is a short circuit action here - we just backup an existing
337
+ # .h file quickly.
338
+ #
339
+ # Invocation example:
340
+ #
341
+ # rbackup /usr/include/xvid.h
342
+ #
343
+ # =================================================================== #
344
+ elsif File.exist?(i) and i.end_with?('.h')
345
+ base_directory = '/BACKUP/include/'
346
+ verbose_create_a_directory_at_this_position(base_directory)
347
+ target = "#{base_directory}#{File.basename(i)}"
348
+ opnn; e "Backing up towards `#{sfile(target)}` (a mere copy operation)."
349
+ copy_file(i, target)
350
+ do_not_perform_the_regular_backup_routine
351
+ else
352
+ if i and i.start_with?('--')
353
+ e "Option #{i} was not found. Exiting now."
354
+ exit
355
+ end
356
+ end
357
+ end
358
+ end
359
+ end
360
+
361
+ end; end
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'backup_paradise/utility_scripts/backup/run.rb'
6
+ # =========================================================================== #
7
+ module BackupParadise
8
+
9
+ class Backup < ::BackupParadise::Base # === BackupParadise::Backup
10
+
11
+ # ========================================================================= #
12
+ # === run (run tag)
13
+ # ========================================================================= #
14
+ def run
15
+ sanitize_the_commandline_arguments
16
+ menu
17
+ do_perform_the_backup_tasks if perform_the_regular_backup_routine?
18
+ end
19
+
20
+ end; end
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'backup_paradise/version/version.rb'
6
+ # =========================================================================== #
7
+ module BackupParadise
8
+
9
+ # ========================================================================= #
10
+ # === VERSION
11
+ # ========================================================================= #
12
+ VERSION = '1.2.40'
13
+
14
+ # ========================================================================= #
15
+ # === LAST_UPDATE
16
+ # ========================================================================= #
17
+ LAST_UPDATE = '09.09.2022'
18
+
19
+ end
@@ -0,0 +1 @@
1
+ This directory may contain code that we will use on windows.
@@ -0,0 +1,101 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'backup_paradise/windows/windows.rb'
6
+ # BackupParadise::Windows.backup_ingrid_directory
7
+ # =========================================================================== #
8
+ module BackupParadise
9
+
10
+ module Windows # === BackupParadise::Windows
11
+
12
+ require 'fileutils'
13
+ require 'backup_paradise/toplevel_methods/misc.rb'
14
+
15
+ alias e puts
16
+
17
+ # ========================================================================= #
18
+ # === BackupParadise::Windows.e
19
+ # ========================================================================= #
20
+ def self.e(i = '')
21
+ puts i
22
+ end
23
+
24
+ # ========================================================================= #
25
+ # === BackupParadise::Windows.return_the_current_time
26
+ # ========================================================================= #
27
+ def self.return_the_current_time
28
+ Time.now.strftime('%d.%m.%Y')
29
+ end
30
+
31
+ # ========================================================================= #
32
+ # === BackupParadise.do_use_fileutils_for_the_copy_action
33
+ # ========================================================================= #
34
+ def self.do_use_fileutils_for_the_copy_action
35
+ BackupParadise::CONFIG['use_system_cp'] = false
36
+ end
37
+
38
+ # ========================================================================= #
39
+ # === BackupParadise::Windows.backup_ingrid_directory
40
+ #
41
+ # This will try to backup c:\\ingrid\. It only works on windows really.
42
+ #
43
+ # The trailing '.' is necessary, so that the content of the directory
44
+ # is copied, rather than the directory itself and THEN its content.
45
+ # ========================================================================= #
46
+ def self.backup_ingrid_directory(
47
+ from = 'c://ingrid/.',
48
+ to = :infer_the_first_external_device
49
+ )
50
+ case to
51
+ # ======================================================================= #
52
+ # === :infer_the_first_external_device
53
+ #
54
+ # Here we will infer which external device is the first one.
55
+ # ======================================================================= #
56
+ when :infer_the_first_external_device
57
+ begin
58
+ require 'mountpoints'
59
+ rescue LoadError; end
60
+ if Object.const_defined? :Mountpoints
61
+ to = Mountpoints[]
62
+ else # else we will use a hardcoded approach.
63
+ e 'Assuming a hardcoded path at: e://'
64
+ to = "e://"
65
+ end
66
+ end
67
+ if to.is_a? Array
68
+ to = to.first
69
+ end
70
+ unless to.include? '_'
71
+ from = from.to_s.dup
72
+ from.chop! if from.end_with? '/'
73
+ if from.start_with?('c://') and BackupParadise.are_we_on_linux?
74
+ from[0,4] = ''
75
+ end
76
+ _ = to.to_s+
77
+ File.basename(from.to_s.delete('.'))+ # We remove '.' to avoid "ingrid/." stuff.
78
+ '_'+
79
+ return_the_current_time
80
+ _ = _.squeeze '/'
81
+ e 'Now creating the directory '+_+'.'
82
+ FileUtils.mkdir_p(_)
83
+ to = _
84
+ end
85
+ if File.directory?(from) and !from.end_with?('/', '.')
86
+ from = from.dup if from.frozen?
87
+ from << '/'
88
+ end
89
+ if File.directory?(to) and !to.end_with?('/')
90
+ to = to.dup if to.frozen?
91
+ to << '/'
92
+ end
93
+ do_use_fileutils_for_the_copy_action
94
+ BackupParadise.simple_backup(from, to)
95
+ end
96
+
97
+ end; end
98
+
99
+ if __FILE__ == $PROGRAM_NAME
100
+ BackupParadise::Windows.backup_ingrid_directory
101
+ end # backupingriddirectory
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # This file may also mix non-objectified HTML tags.
6
+ # =========================================================================== #
7
+ # http://localhost/programming/ruby/src/cyberweb/examples/advanced/hybrid_experiment.cgi
8
+ # =========================================================================== #
9
+ require 'cyberweb/requires/require_objectified_html_tags_files.rb'
10
+ require 'cyberweb/requires/require_the_toplevel_methods_files.rb'
11
+ require 'cyberweb/requires/require_the_html_template.rb'
12
+ require 'cyberweb/web_images/map_symbol_to_image_location.rb'
13
+ require 'cyberweb/javascript/drag_and_drop.rb'
14
+ require 'cyberweb/toplevel_methods/jquery.rb'
15
+ require 'backup_paradise'
16
+
17
+ alias ee print
18
+
19
+ Cyberweb.require_objectified_html_tags_files
20
+ Cyberweb.require_toplevel_methods_files
21
+
22
+ include Cyberweb::Objectified::HtmlTags
23
+ include Cyberweb
24
+
25
+ ee "Content-type: text/html\n\n"
26
+ ee '<html><head>'
27
+
28
+ Title.report('Backup-related actions')
29
+ ee '<style>'
30
+ ee Cyberweb.return_content_of_all_the_CSS_files
31
+ ee '</style>'
32
+ ee Cyberweb.return_jquery_string
33
+ ee '</head>'
34
+ ee '<body class="mar4px">'
35
+
36
+ ee Cyberweb.params?
37
+ # =========================================================================== #
38
+ # Hello world div:
39
+ # =========================================================================== #
40
+ ee '<form method="POST" id="backup_form" name="backup_form" class="FS1_5em mars1em mart1em" action="">'
41
+
42
+ ee 'Backup c:\ingrid\\<br><br>'
43
+ _ = submit_button
44
+ _.name = 'do_backup_for_ingrid'
45
+ _.value = 'Do backup c:\ingrid\\'
46
+ _.bblack2
47
+ _.css_class 'pad8px mar4px mars2em FS1_3em'
48
+ _.style 'border: 3px dotted tomato'
49
+ _.report
50
+ # ee '<img src="../../../../../../../data/images/'+Cyberweb.get_webimage(:backup_image)+'">'
51
+ ee '<input name="do_backup_for_ingrid" type="image" src="../../../../../../../data/images/'+
52
+ Cyberweb.get_webimage(:backup_image)+'" border="0" alt="Submit"/>'
53
+
54
+ # <form class="spacer" action="" method="post">
55
+ # <input class="submit" type="submit" value="Submit" />
56
+ # </form>
57
+
58
+
59
+
60
+ ee '</form>'
61
+
62
+ ee '</body>'
63
+ ee '</html>'