backup_paradise 1.2.40

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.

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>'