backup_paradise 1.2.13
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.
- checksums.yaml +7 -0
- data/README.md +231 -0
- data/backup_paradise.gemspec +51 -0
- data/bin/backup_paradise +7 -0
- data/doc/README.gen +214 -0
- data/doc/TODO.md +221 -0
- data/lib/backup_paradise.rb +5 -0
- data/lib/backup_paradise/advanced_backup/advanced_backup.rb +53 -0
- data/lib/backup_paradise/advanced_backup/audio.rb +124 -0
- data/lib/backup_paradise/advanced_backup/constants.rb +34 -0
- data/lib/backup_paradise/advanced_backup/data_directory.rb +50 -0
- data/lib/backup_paradise/advanced_backup/do_perform_the_backup_tasks.rb +95 -0
- data/lib/backup_paradise/advanced_backup/initialize.rb +38 -0
- data/lib/backup_paradise/advanced_backup/menu.rb +280 -0
- data/lib/backup_paradise/advanced_backup/misc.rb +836 -0
- data/lib/backup_paradise/advanced_backup/reset.rb +56 -0
- data/lib/backup_paradise/advanced_backup/run.rb +26 -0
- data/lib/backup_paradise/advanced_backup/system_directory.rb +35 -0
- data/lib/backup_paradise/base/base.rb +440 -0
- data/lib/backup_paradise/base/colours.rb +123 -0
- data/lib/backup_paradise/base/constants.rb +16 -0
- data/lib/backup_paradise/constants/constants.rb +192 -0
- data/lib/backup_paradise/gui/gtk2/backup.rb +345 -0
- data/lib/backup_paradise/gui/gtk3/backup.rb +383 -0
- data/lib/backup_paradise/project/project_base_directory.rb +22 -0
- data/lib/backup_paradise/requires/require_the_backup_paradise_project.rb +14 -0
- data/lib/backup_paradise/tab/tab.rb +84 -0
- data/lib/backup_paradise/toplevel_methods/cliner.rb +16 -0
- data/lib/backup_paradise/toplevel_methods/colours.rb +80 -0
- data/lib/backup_paradise/toplevel_methods/e.rb +16 -0
- data/lib/backup_paradise/toplevel_methods/help.rb +88 -0
- data/lib/backup_paradise/toplevel_methods/misc.rb +343 -0
- data/lib/backup_paradise/toplevel_methods/mountpoint.rb +80 -0
- data/lib/backup_paradise/toplevel_methods/opnn.rb +21 -0
- data/lib/backup_paradise/version/version.rb +19 -0
- data/lib/backup_paradise/yaml/config.yml +22 -0
- metadata +178 -0
@@ -0,0 +1,56 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'backup_paradise/advanced_backup/reset.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
module BackupParadise
|
8
|
+
|
9
|
+
class AdvancedBackup < ::BackupParadise::Base # === BackupParadise::AdvancedBackup
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === reset
|
13
|
+
# ========================================================================= #
|
14
|
+
def reset
|
15
|
+
super()
|
16
|
+
# ======================================================================= #
|
17
|
+
# === @perform_backup
|
18
|
+
#
|
19
|
+
# The next variable determines whether we will perform a backup
|
20
|
+
# job or not. By default this will be false - it will be set
|
21
|
+
# to true by default through the menu() interface, via its
|
22
|
+
# else clause.
|
23
|
+
# ======================================================================= #
|
24
|
+
@perform_backup = false
|
25
|
+
# ======================================================================= #
|
26
|
+
# === @date
|
27
|
+
# ======================================================================= #
|
28
|
+
@date = dd_mm_yyyy
|
29
|
+
# ======================================================================= #
|
30
|
+
# === @use_this_as_timestamp
|
31
|
+
#
|
32
|
+
# The next variable will keep the timestamp as-is.
|
33
|
+
#
|
34
|
+
# This may include ':' characters, which Windows NTFS does not seem
|
35
|
+
# to like. Thus, since as of September 2020, a slightly simpler
|
36
|
+
# variant is used here.
|
37
|
+
# ======================================================================= #
|
38
|
+
@use_this_as_timestamp = "#{@date}-#{current_time.tr(':','_')}"
|
39
|
+
# ======================================================================= #
|
40
|
+
# === @array_store_times
|
41
|
+
#
|
42
|
+
# The next Array will keep track of how long it took to backup
|
43
|
+
# the data.
|
44
|
+
# ======================================================================= #
|
45
|
+
@array_store_times = []
|
46
|
+
# ======================================================================= #
|
47
|
+
# === @show_popup_notification
|
48
|
+
# ======================================================================= #
|
49
|
+
@show_popup_notification = CONFIG['show_popup_notification']
|
50
|
+
# ======================================================================= #
|
51
|
+
# === @last_backup_directory
|
52
|
+
# ======================================================================= #
|
53
|
+
@last_backup_directory = nil
|
54
|
+
end
|
55
|
+
|
56
|
+
end; end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'backup_paradise/advanced_backup/run.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
module BackupParadise
|
8
|
+
|
9
|
+
class AdvancedBackup < ::BackupParadise::Base # === BackupParadise::AdvancedBackup
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === run
|
13
|
+
# ========================================================================= #
|
14
|
+
def run
|
15
|
+
# ======================================================================= #
|
16
|
+
# The next method will determine the main mountpoint in use, such as
|
17
|
+
# "/Mount/USB1/".
|
18
|
+
# ======================================================================= #
|
19
|
+
determine_the_target_mountpoint
|
20
|
+
menu
|
21
|
+
if @perform_backup
|
22
|
+
do_perform_the_backup_tasks # ← This is the main method of this class.
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end; end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'backup_paradise/advanced_backup/system_directory.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
module BackupParadise
|
8
|
+
|
9
|
+
class AdvancedBackup < ::BackupParadise::Base # === BackupParadise::AdvancedBackup
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === backup_the_system_directory
|
13
|
+
#
|
14
|
+
# This method can be used to backup the "/System/Settings/" directory,
|
15
|
+
# as it may be found in GoboLinux.
|
16
|
+
# ========================================================================= #
|
17
|
+
def backup_the_system_directory(
|
18
|
+
target_directory = SYSTEM_SETTINGS_DIRECTORY
|
19
|
+
)
|
20
|
+
if File.directory? target_directory
|
21
|
+
cliner
|
22
|
+
e 'Now backing up the system-settings directory from '+
|
23
|
+
sfancy(target_directory)+' into '+
|
24
|
+
sfile(main_target?+File.basename(target_directory))
|
25
|
+
cliner
|
26
|
+
report_total_size_of(target_directory)
|
27
|
+
backup_this_directory_if_it_exists(
|
28
|
+
target_directory, :default, :do_not_continue
|
29
|
+
)
|
30
|
+
else
|
31
|
+
can_not_backup_this_directory_as_it_does_not_exist(target_directory)
|
32
|
+
end
|
33
|
+
end; alias backup_system_directory backup_the_system_directory # === backup_system_directory
|
34
|
+
|
35
|
+
end; end
|
@@ -0,0 +1,440 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'backup_paradise/base/base.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
require 'backup_paradise/base/colours.rb'
|
8
|
+
require 'backup_paradise/base/constants.rb'
|
9
|
+
require 'backup_paradise/constants/constants.rb'
|
10
|
+
require 'backup_paradise/toplevel_methods/cliner.rb'
|
11
|
+
require 'backup_paradise/toplevel_methods/colours.rb'
|
12
|
+
require 'backup_paradise/toplevel_methods/e.rb'
|
13
|
+
require 'backup_paradise/toplevel_methods/misc.rb'
|
14
|
+
require 'backup_paradise/toplevel_methods/mountpoint.rb'
|
15
|
+
require 'backup_paradise/tab/tab.rb'
|
16
|
+
require 'backup_paradise/project/project_base_directory.rb'
|
17
|
+
|
18
|
+
module BackupParadise
|
19
|
+
|
20
|
+
class Base
|
21
|
+
|
22
|
+
# ========================================================================= #
|
23
|
+
# Next, external code is loaded.
|
24
|
+
# ========================================================================= #
|
25
|
+
begin
|
26
|
+
require 'roebe/time/time.rb'
|
27
|
+
rescue LoadError; end
|
28
|
+
|
29
|
+
begin
|
30
|
+
require 'opn'
|
31
|
+
rescue LoadError; end
|
32
|
+
|
33
|
+
# ========================================================================= #
|
34
|
+
# === BackupParadise.e
|
35
|
+
# ========================================================================= #
|
36
|
+
def e(i = '')
|
37
|
+
BackupParadise.e(i)
|
38
|
+
end
|
39
|
+
|
40
|
+
# ========================================================================= #
|
41
|
+
# === all_important_directories?
|
42
|
+
# ========================================================================= #
|
43
|
+
def all_important_directories?
|
44
|
+
ARRAY_THE_FIVE_MAIN_ENTRIES
|
45
|
+
end
|
46
|
+
|
47
|
+
# ========================================================================= #
|
48
|
+
# === reset
|
49
|
+
# ========================================================================= #
|
50
|
+
def reset
|
51
|
+
@use_this_program_to_rename_tabs = nil
|
52
|
+
end
|
53
|
+
|
54
|
+
# ========================================================================= #
|
55
|
+
# === home_dir_of_user_x?
|
56
|
+
# ========================================================================= #
|
57
|
+
def home_dir_of_user_x?
|
58
|
+
'/home/x/'
|
59
|
+
end
|
60
|
+
|
61
|
+
# ========================================================================= #
|
62
|
+
# === use_colours?
|
63
|
+
# ========================================================================= #
|
64
|
+
def use_colours?
|
65
|
+
BackupParadise.use_colours?
|
66
|
+
end
|
67
|
+
|
68
|
+
# ========================================================================= #
|
69
|
+
# === n_files_in?
|
70
|
+
#
|
71
|
+
# This method will return how many files are in the given directory.
|
72
|
+
# ========================================================================= #
|
73
|
+
def n_files_in?(i)
|
74
|
+
_ = 0
|
75
|
+
if File.directory? i
|
76
|
+
_ = Dir["#{i}*"].size
|
77
|
+
end
|
78
|
+
_
|
79
|
+
end
|
80
|
+
|
81
|
+
# ========================================================================= #
|
82
|
+
# === create_directory
|
83
|
+
#
|
84
|
+
# The first argument to this method should be the name of the directory
|
85
|
+
# that has to be created, such as 'foobar/'.
|
86
|
+
# ========================================================================= #
|
87
|
+
def create_directory(
|
88
|
+
i, options = { mode_to_use: 0755 }
|
89
|
+
)
|
90
|
+
BackupParadise.create_directory(i, options)
|
91
|
+
end; alias mkdir create_directory # === mkdir
|
92
|
+
|
93
|
+
# ========================================================================= #
|
94
|
+
# === rds
|
95
|
+
# ========================================================================= #
|
96
|
+
def rds(i)
|
97
|
+
BackupParadise.rds(i)
|
98
|
+
end
|
99
|
+
|
100
|
+
# ========================================================================= #
|
101
|
+
# === no_such_directory_exists_at
|
102
|
+
# ========================================================================= #
|
103
|
+
def no_such_directory_exists_at(i)
|
104
|
+
e "No such directory exists at `#{sdir(i)}`."
|
105
|
+
end
|
106
|
+
|
107
|
+
# ========================================================================= #
|
108
|
+
# === cliner
|
109
|
+
# ========================================================================= #
|
110
|
+
def cliner
|
111
|
+
BackupParadise.cliner
|
112
|
+
end
|
113
|
+
|
114
|
+
# ========================================================================= #
|
115
|
+
# === no_target_at
|
116
|
+
# ========================================================================= #
|
117
|
+
def no_target_at(i)
|
118
|
+
e "No target at #{sfile(i)} could be found."
|
119
|
+
end
|
120
|
+
|
121
|
+
# ========================================================================= #
|
122
|
+
# === target_hdd_does_not_have_enough_space_left?
|
123
|
+
# ========================================================================= #
|
124
|
+
def target_hdd_does_not_have_enough_space_left?
|
125
|
+
false # for now this is always false. stub
|
126
|
+
# MINIMAL_FILESIZE
|
127
|
+
end
|
128
|
+
|
129
|
+
# ========================================================================= #
|
130
|
+
# === opnn
|
131
|
+
# ========================================================================= #
|
132
|
+
def opnn(i = NAMESPACE)
|
133
|
+
if i.is_a? String
|
134
|
+
i = {
|
135
|
+
namespace: i,
|
136
|
+
use_colours: use_colours?
|
137
|
+
}
|
138
|
+
end
|
139
|
+
BackupParadise.opnn(i)
|
140
|
+
end
|
141
|
+
|
142
|
+
# ========================================================================= #
|
143
|
+
# === delete_symlink
|
144
|
+
# ========================================================================= #
|
145
|
+
def delete_symlink(i)
|
146
|
+
if File.symlink? i
|
147
|
+
File.delete(i)
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
# ========================================================================= #
|
152
|
+
# === has_superuser_abilities?
|
153
|
+
# ========================================================================= #
|
154
|
+
def has_superuser_abilities?
|
155
|
+
Process.uid.zero?
|
156
|
+
end
|
157
|
+
|
158
|
+
# ========================================================================= #
|
159
|
+
# === chdir (cd tag)
|
160
|
+
#
|
161
|
+
# Change directory via this method here.
|
162
|
+
# ========================================================================= #
|
163
|
+
def chdir(i)
|
164
|
+
BackupParadise.change_directory(i)
|
165
|
+
end; alias cd chdir # === cd
|
166
|
+
alias change_directory chdir # === change_directory
|
167
|
+
|
168
|
+
# ========================================================================= #
|
169
|
+
# === cd_to_the_mounted_device
|
170
|
+
# ========================================================================= #
|
171
|
+
def cd_to_the_mounted_device
|
172
|
+
cd target_mountpoint?
|
173
|
+
end
|
174
|
+
|
175
|
+
# ========================================================================= #
|
176
|
+
# === do_symlink
|
177
|
+
# ========================================================================= #
|
178
|
+
def do_symlink(
|
179
|
+
from_this_target, create_a_symlink_here
|
180
|
+
)
|
181
|
+
if File.exist? create_a_symlink_here
|
182
|
+
no_target_at(create_a_symlink_here)
|
183
|
+
else
|
184
|
+
File.symlink(from_this_target, create_a_symlink_here)
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
# ========================================================================= #
|
189
|
+
# === delete_files
|
190
|
+
# ========================================================================= #
|
191
|
+
def delete_files(
|
192
|
+
i, be_verbose = false
|
193
|
+
)
|
194
|
+
case be_verbose
|
195
|
+
when :be_verbose
|
196
|
+
be_verbose = true
|
197
|
+
end
|
198
|
+
if i.is_a? Array
|
199
|
+
i.each {|entry| delete_files(entry, be_verbose) }
|
200
|
+
else
|
201
|
+
if File.file? i
|
202
|
+
if be_verbose
|
203
|
+
opnn; e "Now deleting the file `#{sfile(i)}`."
|
204
|
+
end
|
205
|
+
File.delete(i)
|
206
|
+
else
|
207
|
+
e sfancy(i)+' is not not a file - we thus can not delete it.'
|
208
|
+
end
|
209
|
+
end
|
210
|
+
end; alias delete_file delete_files # === delete_file
|
211
|
+
alias remove_these_files delete_files # === remove_these_files
|
212
|
+
|
213
|
+
# ========================================================================= #
|
214
|
+
# === remove_directory
|
215
|
+
# ========================================================================= #
|
216
|
+
def remove_directory(i)
|
217
|
+
BackupParadise.remove_directory(i)
|
218
|
+
end
|
219
|
+
|
220
|
+
# ========================================================================= #
|
221
|
+
# === register_sigint
|
222
|
+
# ========================================================================= #
|
223
|
+
def register_sigint
|
224
|
+
Signal.trap('SIGINT') { exit_program }
|
225
|
+
end
|
226
|
+
|
227
|
+
# ========================================================================= #
|
228
|
+
# === copy_file
|
229
|
+
# ========================================================================= #
|
230
|
+
def copy_file(from, to)
|
231
|
+
BackupParadise.copy_file(from, to)
|
232
|
+
end; alias copy_this_file copy_file # === copy_this_file
|
233
|
+
|
234
|
+
begin
|
235
|
+
require 'roebe/toplevel_methods/write_what_into.rb'
|
236
|
+
rescue LoadError => error
|
237
|
+
puts 'Please install the roebe-gem ( gem install roebe ).'
|
238
|
+
pp error
|
239
|
+
end
|
240
|
+
|
241
|
+
# ========================================================================= #
|
242
|
+
# === write_what_into
|
243
|
+
# ========================================================================= #
|
244
|
+
def write_what_into(what, into)
|
245
|
+
::Roebe.write_what_into(what, into)
|
246
|
+
end
|
247
|
+
|
248
|
+
# ========================================================================= #
|
249
|
+
# === append_what_into
|
250
|
+
# ========================================================================= #
|
251
|
+
def append_what_into(what, into)
|
252
|
+
::Roebe.append_what_into(what, into)
|
253
|
+
end
|
254
|
+
|
255
|
+
# ========================================================================= #
|
256
|
+
# === remove
|
257
|
+
# ========================================================================= #
|
258
|
+
def remove(i)
|
259
|
+
BackupParadise.remove(i)
|
260
|
+
end
|
261
|
+
|
262
|
+
# ========================================================================= #
|
263
|
+
# === data_directory?
|
264
|
+
# ========================================================================= #
|
265
|
+
def data_directory?
|
266
|
+
DATA_DIRECTORY
|
267
|
+
end; alias data_dir? data_directory? # === data_dir?
|
268
|
+
|
269
|
+
# ========================================================================= #
|
270
|
+
# === dd_mm_yyyy
|
271
|
+
#
|
272
|
+
# This method will return a String such as "25.12.2018".
|
273
|
+
# ========================================================================= #
|
274
|
+
def dd_mm_yyyy
|
275
|
+
::Roebe::Time.dd_mm_yyyy # Tap into the Roebe namespace for this.
|
276
|
+
end
|
277
|
+
|
278
|
+
# ========================================================================= #
|
279
|
+
# === return_current_date_and_time
|
280
|
+
#
|
281
|
+
# This method will return a String such as:
|
282
|
+
#
|
283
|
+
# "24.05.2018-03:48:50"
|
284
|
+
#
|
285
|
+
# ========================================================================= #
|
286
|
+
def return_current_date_and_time
|
287
|
+
"#{dd_mm_yyyy}-#{hh_mm_ss}"
|
288
|
+
end; alias return_full_date return_current_date_and_time # === return_full_date
|
289
|
+
alias date_and_time? return_current_date_and_time # === date_and_time?
|
290
|
+
|
291
|
+
# ========================================================================= #
|
292
|
+
# === size?
|
293
|
+
# ========================================================================= #
|
294
|
+
def size?(i)
|
295
|
+
BackupParadise.size?(i)
|
296
|
+
end
|
297
|
+
|
298
|
+
# ========================================================================= #
|
299
|
+
# === no_file_exists_at
|
300
|
+
# ========================================================================= #
|
301
|
+
def no_file_exists_at(i)
|
302
|
+
e "No file exists at `#{sfile(i)}`."
|
303
|
+
end
|
304
|
+
|
305
|
+
# ========================================================================= #
|
306
|
+
# === exit_program (exit tag)
|
307
|
+
#
|
308
|
+
# This method should be used when we have to exit from the
|
309
|
+
# backup_paradise project.
|
310
|
+
#
|
311
|
+
# The reason why a separate exit-method has been added is so that we
|
312
|
+
# can change this at a later time possibly, if we wish to do further
|
313
|
+
# checks before exiting.
|
314
|
+
# ========================================================================= #
|
315
|
+
def exit_program(be_verbose = false)
|
316
|
+
if be_verbose
|
317
|
+
e 'Quit was called, thus we exit now.'
|
318
|
+
end
|
319
|
+
if @use_this_program_to_rename_tabs
|
320
|
+
rename_tab(@use_this_program_to_rename_tabs)
|
321
|
+
end
|
322
|
+
exit
|
323
|
+
end
|
324
|
+
|
325
|
+
# ========================================================================= #
|
326
|
+
# === target_mountpoint?
|
327
|
+
#
|
328
|
+
# Designate to which target we will backup.
|
329
|
+
# ========================================================================= #
|
330
|
+
def target_mountpoint?
|
331
|
+
BackupParadise.target_mountpoint?
|
332
|
+
end; alias main_target? target_mountpoint? # === main_target?
|
333
|
+
alias backup_to_this_directory? target_mountpoint? # === backup_to_this_directory?
|
334
|
+
alias mount_point? target_mountpoint? # === mount_point?
|
335
|
+
alias mount_target? target_mountpoint? # === mount_target?
|
336
|
+
|
337
|
+
# ========================================================================= #
|
338
|
+
# === report_total_size_of
|
339
|
+
#
|
340
|
+
# Use this method to report the total size of a specific directory. We
|
341
|
+
# expect the input to this method thus be a (local) directory.
|
342
|
+
# ========================================================================= #
|
343
|
+
def report_total_size_of(i)
|
344
|
+
size_result = size?(i)
|
345
|
+
kb_size = (size_result.to_f / 1000.0).round(2)
|
346
|
+
mb_size = (kb_size.to_f / 1000.0).round(2)
|
347
|
+
gb_size = (mb_size.to_f / 1000.0).round(2)
|
348
|
+
e 'Total size of files in bytes at '+sdir(i)+': '+
|
349
|
+
seagreen(size_result)+' bytes.'
|
350
|
+
e 'This corresponds to '+
|
351
|
+
orangered(kb_size.to_s)+lightcoral(' KB ')+
|
352
|
+
orangered(mb_size.to_s)+lightcoral(' MB ')+
|
353
|
+
orangered(gb_size.to_s)+lightcoral(' GB')+'.'
|
354
|
+
end; alias report_file_size_of report_total_size_of # === report_file_size_of
|
355
|
+
|
356
|
+
# ========================================================================= #
|
357
|
+
# === rename
|
358
|
+
# ========================================================================= #
|
359
|
+
def rename(a, b)
|
360
|
+
if File.exist? b
|
361
|
+
e "Can not rename to #{sfancy(b)} as that target already exists."
|
362
|
+
else
|
363
|
+
FileUtils.mv(a, b)
|
364
|
+
end
|
365
|
+
end
|
366
|
+
|
367
|
+
# ========================================================================= #
|
368
|
+
# === copy_recursively
|
369
|
+
# ========================================================================= #
|
370
|
+
def copy_recursively(
|
371
|
+
source,
|
372
|
+
target,
|
373
|
+
be_verbose = :be_verbose
|
374
|
+
)
|
375
|
+
BackupParadise.copy_recursively(
|
376
|
+
source, target, be_verbose
|
377
|
+
)
|
378
|
+
end; alias cpr copy_recursively # === cpr
|
379
|
+
|
380
|
+
# ========================================================================= #
|
381
|
+
# === rename_tab
|
382
|
+
#
|
383
|
+
# This method can be used to rename the tab of e. g. mrxvt or KDE konsole.
|
384
|
+
# ========================================================================= #
|
385
|
+
def rename_tab(
|
386
|
+
use_this_terminal = :konsole, # or :mrxvt
|
387
|
+
use_this_as_new_title = 'Hello world!'
|
388
|
+
)
|
389
|
+
BackupParadise::Tab.rename_tab(
|
390
|
+
use_this_terminal,
|
391
|
+
use_this_as_new_title
|
392
|
+
)
|
393
|
+
end
|
394
|
+
|
395
|
+
# ========================================================================= #
|
396
|
+
# === set_target_mountpoint
|
397
|
+
# ========================================================================= #
|
398
|
+
def set_target_mountpoint(i)
|
399
|
+
i = i.to_s
|
400
|
+
case i
|
401
|
+
# ======================================================================= #
|
402
|
+
# Specify some shortcuts to be used here.
|
403
|
+
# ======================================================================= #
|
404
|
+
when '1',
|
405
|
+
'2',
|
406
|
+
'3',
|
407
|
+
'4',
|
408
|
+
'5',
|
409
|
+
'6',
|
410
|
+
'7',
|
411
|
+
'8',
|
412
|
+
'9',
|
413
|
+
'usb1',
|
414
|
+
'usb2',
|
415
|
+
'usb3',
|
416
|
+
'usb4',
|
417
|
+
'usb5',
|
418
|
+
'usb6'
|
419
|
+
i = i.dup if i.frozen?
|
420
|
+
if i.start_with? 'usb'
|
421
|
+
i.sub!(/^usb/,'')
|
422
|
+
elsif i.start_with? 'to'
|
423
|
+
i.sub!(/^to(-| |_)?usb/,'')
|
424
|
+
end
|
425
|
+
i = "/Mount/USB#{i}/"
|
426
|
+
end
|
427
|
+
BackupParadise.target_mountpoint = i
|
428
|
+
end; alias set_target_device set_target_mountpoint # === set_target_device
|
429
|
+
alias set_backup_to_this_directory set_target_mountpoint # === set_backup_to_this_directory
|
430
|
+
alias set_target set_target_mountpoint # === set_target
|
431
|
+
alias set_main_target set_target_mountpoint # === set_main_target
|
432
|
+
|
433
|
+
# ========================================================================= #
|
434
|
+
# === hh_mm_ss
|
435
|
+
# ========================================================================= #
|
436
|
+
def hh_mm_ss
|
437
|
+
::Roebe::Time.hh_mm_ss # This will yield something like: "03:53:55"
|
438
|
+
end; alias current_time hh_mm_ss # === current_time
|
439
|
+
|
440
|
+
end; end
|