storazzo 0.5.1 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +7 -5
  3. data/LICENSE +20 -1
  4. data/Makefile +9 -5
  5. data/Rakefile +22 -9
  6. data/VERSION +1 -1
  7. data/bin/hello-storazzo +1 -0
  8. data/bin/ricdisk-magic +33 -30
  9. data/bin/stats-with-md5 +146 -176
  10. data/bin/storazzo +158 -0
  11. data/bin/storazzo-symlink.rb +1 -0
  12. data/bin/storazzo-util +1 -0
  13. data/lib/storazzo/colors.rb +77 -36
  14. data/lib/storazzo/common.rb +72 -65
  15. data/lib/storazzo/debug.rb +2 -0
  16. data/lib/storazzo/hashify.rb +7 -5
  17. data/lib/storazzo/main.rb +59 -49
  18. data/lib/storazzo/media/abstract_ric_disk.rb +190 -161
  19. data/lib/storazzo/media/gcs_bucket.rb +78 -47
  20. data/lib/storazzo/media/local_folder.rb +56 -42
  21. data/lib/storazzo/media/mount_point.rb +22 -6
  22. data/lib/storazzo/ric_disk.rb +386 -383
  23. data/lib/storazzo/ric_disk_config.rb +229 -197
  24. data/lib/storazzo/ric_disk_sample_config.rb +26 -24
  25. data/lib/storazzo/ric_disk_statsfile.rb +19 -17
  26. data/lib/storazzo/ric_disk_ugly.rb +1 -0
  27. data/lib/storazzo/version.rb +3 -3
  28. data/lib/storazzo.rb +6 -7
  29. data/storazzo.gemspec +31 -19
  30. data/test/benchmark/for_future_use.rb +15 -0
  31. data/test/benchmark/test_hashing_functions-speed.rb +17 -0
  32. data/test/bin/new-idea.rb +17 -0
  33. data/test/bin/storazzo.rb +25 -0
  34. data/test/media/test_abstract_ric_disk.rb +6 -4
  35. data/test/media/test_gcs_bucket.rb +55 -21
  36. data/test/media/test_local_folder.rb +28 -29
  37. data/test/media/test_mount_point.rb +7 -5
  38. data/test/test_ric_disk.rb +8 -6
  39. data/test/test_ric_disk_config.rb +13 -12
  40. data/test/test_ric_disk_stats_file.rb +5 -3
  41. data/test/test_storazzo.rb +6 -4
  42. data/var/test/disks/disk02-full/Rakefile +7 -5
  43. data/var/test/disks/ricdisk_stats_v11.rds +11 -22
  44. metadata +22 -22
data/bin/storazzo ADDED
@@ -0,0 +1,158 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'storazzo'
5
+ # gem 'storazzo', :path => File.expand_path("../lib", __FILE__)
6
+
7
+ require 'optparse'
8
+
9
+ extend Storazzo::Colors
10
+ include Storazzo::Common # instead
11
+
12
+ if RUBY_VERSION.split('.')[0] == 1
13
+ puts 'Refusing to launch a script form Ruby 1. Sorry Ric, its 2020 damn it!'
14
+ exit 2020
15
+ end
16
+
17
+ $PROG_VER = '0.1'
18
+ $DEBUG = ENV['DEBUG'] == 'true' # (true/false)
19
+
20
+ $actions = %w[
21
+ show auto help
22
+ ].sort
23
+
24
+ # you can't but love Ruby monkey-patching ability..
25
+ class Array
26
+ # puts "array drop"
27
+ def tail
28
+ drop(1) # https://stackoverflow.com/questions/3615700/ruby-what-is-the-easiest-way-to-remove-the-first-element-from-an-array
29
+ end
30
+ end
31
+
32
+ HISTORY = <<-BIG_LONG_MULTILINE
33
+ 2022-0806 v0.1 First stesure
34
+ BIG_LONG_MULTILINE
35
+
36
+ $description = <<DESCRIPTION_HEREFILE.gsub(/\s+/, ' ').strip
37
+ This util shall expose all Storazzo aPIs via CLI: show-local-dirs, ...
38
+ show GCS buckets, ...
39
+
40
+ It's also my dream to add some nice icons which are joy to the eye, like
41
+ some [ ] [x] before the list to show if its agood or bad directory and type also#{' '}
42
+ DESCRIPTION_HEREFILE
43
+ # >> "SELECT * FROM users ORDER BY users.id DESC"
44
+
45
+ $myconf = {
46
+ app_name: "Storazzo CLI: #{$PROGRAM_NAME}",
47
+ description: $description
48
+ # TODO: move to some class default
49
+ # :media_dirs => %w{/media/riccardo/ /Volumes/ /mnt/ ~/git/storazzo/var/test/
50
+ # /sobenme/giusto/per/imparare/ad/ammutolire/gli/errori/},
51
+ # :mount_types => %w{vfat ntfs},
52
+ }
53
+
54
+ def usage(comment = nil)
55
+ puts white($optparse.banner)
56
+ puts($optparse.summarize)
57
+ # puts("Description: " + gray($myconf[:description]))
58
+ puts red("ERROR: #{comment}") if comment
59
+ # puts "Description: #{ $myconf[:description] }"
60
+ exit 13
61
+ end
62
+
63
+ # include it in main if you want a custome one
64
+ # see lib_autoinit in lib/util.rb
65
+ def init
66
+ $opts = {}
67
+ # setting defaults
68
+ $opts[:verbose] = false
69
+ $opts[:dryrun] = false
70
+ $opts[:debug] = false
71
+ $opts[:force] = false
72
+
73
+ $optparse = OptionParser.new do |opts|
74
+ opts.banner = "#{$PROGRAM_NAME} v.#{$PROG_VER}\n Usage: #{File.basename $PROGRAM_NAME} [options] ACTION [file1] [file2] ..."
75
+ opts.separator "Actions: #{$actions.join ', '}"
76
+ opts.separator ' $0 show # show options and local folders '
77
+ opts.separator ' $0 auto # takes automated actions based on config and local disk. For lazy users'
78
+ opts.separator 'Options: '
79
+ opts.on('-d', '--debug', 'enables debug (DFLT=false)') do
80
+ $opts[:debug] = true
81
+ $DEBUG = true
82
+ end
83
+ opts.on('-f', '--force', 'force stuff (DFLT=false)') { $opts[:force] = true }
84
+ opts.on('-h', '--help', 'Display this screen') { usage }
85
+ # opts.on( '-j', '--jabba', 'Activates my Jabber powerful CLI' ) { $opts[:jabba] = true }
86
+ opts.on('-n', '--dryrun', "Don't really execute code") { $opts[:dryrun] = true }
87
+ opts.on('-l', '--logfile FILE', 'Write log to FILE') { |file| $opts[:logfile] = file }
88
+ opts.on('-v', '--verbose', 'Output more information') { $opts[:verbose] = true }
89
+ opts.separator("Description: #{gray($myconf[:description])}")
90
+ # opts.separator " -- "
91
+ end
92
+ $optparse.parse!
93
+ end
94
+
95
+ def show_action(argv)
96
+ deb "ARGV remaning is: #{argv}"
97
+ deb('TODO show_action')
98
+ # puts(white("1. Config"))
99
+ # Pry::ColorPrinter.pp $config.to_verbose_s
100
+ puts(white('2. Mounts/Dirs'))
101
+ Pry::ColorPrinter.pp Storazzo::Media::GcsBucket.list_all_with_type
102
+ pp Storazzo::Media::AbstractRicDisk.super_duper_list_all_with_type
103
+ end
104
+
105
+ def real_program
106
+ deb("Hello world from a templated '#{yellow $PROGRAM_NAME}'")
107
+ deb "+ Options are: #{gray $opts}"
108
+ deb "+ Depured args: #{azure ARGV}"
109
+ deb "+ Script-specifig super-cool conf: #{green $prog_conf_d}"
110
+ deb "+ Your configuration: #{purple $myconf.inspect}"
111
+
112
+ # Your code goes here...
113
+ puts white("Hello world from #{$myconf[:app_name]}!")
114
+ puts "Description: '''#{white $myconf[:description]}'''"
115
+ Storazzo::Main.say_hi("Note: if the version of this storazzo is behind local version youre probably using a old library.
116
+ I still need to learn how to call the binary with local/current lib/: bundle exec stiKazzi?")
117
+
118
+ $config = Storazzo::RicDiskConfig.instance
119
+ $config.load
120
+ deb "StorazzoConfig: #{$config}"
121
+ # config.load # auto_sbrodola(ARGV)
122
+ puts yellow("ARGV: #{ARGV}")
123
+ # config.iterate_through_file_list_for_disks(ARGV)
124
+
125
+ if_deb? { Storazzo::Main.say_hi("ARGV: #{ARGV}") }
126
+
127
+ usage('I need at least one argument (storazzo ACTION)') if ARGV == []
128
+ argv_action = ARGV[0]
129
+ case argv_action # first argment - action
130
+ when 'show', 'list'
131
+ show_action(ARGV.tail)
132
+ when 'auto'
133
+ auto_action(ARGV.tail)
134
+ when 'help'
135
+ usage("There you go, here's your HELP :)")
136
+ when String
137
+ usage("Unknown action1: #{argv_action}. Available actions: #{$actions}")
138
+ else
139
+ usage("Unknown action2, really strange!: '#{argv_action}'. Actions: #{$actions}")
140
+ end
141
+ end
142
+
143
+ def main(filename)
144
+ deb "I'm called by #{white filename}"
145
+ deb "HISTORY: #{gray HISTORY}"
146
+ init # Enable this to have command line parsing capabilities!
147
+ puts white("$DEBUG is #{$DEBUG}. Tu turn on, call me with -d") unless $DEBUG
148
+ # warn "[warn] template v#{$TEMPLATE_VER }: proviamo il warn che magari depreca il DEB"
149
+ real_program
150
+
151
+ if_deb? do
152
+ puts 'First I need to figure out how to bring in all the libraries in here..'
153
+ Storazzo::Main.say_hi("ARGV is: #{ARGV.join ', '}")
154
+ puts Storazzo.version
155
+ end
156
+ end
157
+
158
+ main(__FILE__)
@@ -0,0 +1 @@
1
+ bin/storazzo
data/bin/storazzo-util ADDED
@@ -0,0 +1 @@
1
+ bin/storazzo
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Use EXTEND vs INCLUDE and magically the Class will inherit instead of instance. Magical! :)
2
4
  # http://www.railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby/
3
5
  #
@@ -9,41 +11,80 @@ module Storazzo
9
11
  # needs to be defined before
10
12
  end
11
13
 
12
- module Storazzo::Colors
13
- PREPEND_ME = "[Storazzo::Colors] "
14
-
15
- def deb2(s);
16
- puts "#DEB_OBSOLETE #{gray(s)} [include Storazzo::Common instead]" if $DEBUG; end # Use the Common instead
17
-
18
- # colors 16
19
- def yellow(s) "\033[1;33m#{s}\033[0m"; end
20
- def gray(s) "\033[1;30m#{s}\033[0m"; end
21
- def green(s) "\033[1;32m#{s}\033[0m"; end
22
- def red(s) "\033[1;31m#{s}\033[0m"; end
23
- def blue(s) "\033[1;34m#{s}\033[0m"; end
24
- def purple(s) "\033[1;35m#{s}\033[0m"; end
25
- def azure(s) "\033[1;36m#{s}\033[0m"; end
26
- def white(s) "\033[1;37m#{s}\033[0m"; end
27
-
28
- # colors 64k
29
- def orange(s) "\033[38;5;208m#{s}\033[0m"; end
30
-
31
- # i dont undertstand why i need self :/
32
- # SELF version because I'm just stupid or lazy or both.
33
- # def self.yellow(s) "#{PREPEND_ME}\033[1;33m#{s}\033[0m" ; end
34
- # def self.green(s) "#{PREPEND_ME}\033[1;32m#{s}\033[0m" ; end
35
- # def self.gray(s) "#{PREPEND_ME}\033[1;30m#{s}\033[0m" ; end
36
- # def self.green(s) "#{PREPEND_ME}\033[1;32m#{s}\033[0m" ; end
37
- # def self.red(s) "#{PREPEND_ME}\033[1;31m#{s}\033[0m" ; end
38
- # def self.blue(s) "#{PREPEND_ME}\033[1;34m#{s}\033[0m" ; end
39
- # def self.purple(s) "#{PREPEND_ME}\033[1;35m#{s}\033[0m" ; end
40
- # def self.azure(s) "#{PREPEND_ME}\033[1;36m#{s}\033[0m" ; end
41
- # def self.white(s) "#{PREPEND_ME}\033[1;37m#{s}\033[0m" ; end
42
-
43
- # p<COLOR> Carlessian functions..
44
- def pwhite(s) puts(white(s)); end
45
- def pgreen(s) puts(green(s)); end
46
- def pred(s) puts(red(s)); end
47
- def pyellow(s) puts(yellow(s)); end
14
+ module Storazzo
15
+ module Colors
16
+ PREPEND_ME = '[Storazzo::Colors] '
17
+
18
+ def deb2(s)
19
+ puts "#DEB_OBSOLETE #{gray(s)} [include Storazzo::Common instead]" if $DEBUG
20
+ end
21
+
22
+ # colors 16
23
+ def yellow(s)
24
+ "\033[1;33m#{s}\033[0m"
25
+ end
26
+
27
+ def gray(s)
28
+ "\033[1;30m#{s}\033[0m"
29
+ end
30
+
31
+ def green(s)
32
+ "\033[1;32m#{s}\033[0m"
33
+ end
34
+
35
+ def red(s)
36
+ "\033[1;31m#{s}\033[0m"
37
+ end
38
+
39
+ def blue(s)
40
+ "\033[1;34m#{s}\033[0m"
41
+ end
42
+
43
+ def purple(s)
44
+ "\033[1;35m#{s}\033[0m"
45
+ end
46
+
47
+ def azure(s)
48
+ "\033[1;36m#{s}\033[0m"
49
+ end
50
+
51
+ def white(s)
52
+ "\033[1;37m#{s}\033[0m"
53
+ end
54
+
55
+ # colors 64k
56
+ def orange(s)
57
+ "\033[38;5;208m#{s}\033[0m"
58
+ end
59
+
60
+ # i dont undertstand why i need self :/
61
+ # SELF version because I'm just stupid or lazy or both.
62
+ # def self.yellow(s) "#{PREPEND_ME}\033[1;33m#{s}\033[0m" ; end
63
+ # def self.green(s) "#{PREPEND_ME}\033[1;32m#{s}\033[0m" ; end
64
+ # def self.gray(s) "#{PREPEND_ME}\033[1;30m#{s}\033[0m" ; end
65
+ # def self.green(s) "#{PREPEND_ME}\033[1;32m#{s}\033[0m" ; end
66
+ # def self.red(s) "#{PREPEND_ME}\033[1;31m#{s}\033[0m" ; end
67
+ # def self.blue(s) "#{PREPEND_ME}\033[1;34m#{s}\033[0m" ; end
68
+ # def self.purple(s) "#{PREPEND_ME}\033[1;35m#{s}\033[0m" ; end
69
+ # def self.azure(s) "#{PREPEND_ME}\033[1;36m#{s}\033[0m" ; end
70
+ # def self.white(s) "#{PREPEND_ME}\033[1;37m#{s}\033[0m" ; end
71
+
72
+ # p<COLOR> Carlessian functions..
73
+ def pwhite(s)
74
+ puts(white(s))
75
+ end
76
+
77
+ def pgreen(s)
78
+ puts(green(s))
79
+ end
80
+
81
+ def pred(s)
82
+ puts(red(s))
83
+ end
84
+
85
+ def pyellow(s)
86
+ puts(yellow(s))
87
+ end
88
+ end
48
89
  end
49
90
  # end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Ric common stuff! :)
2
4
  #
3
5
  # Usage:
@@ -5,86 +7,91 @@
5
7
  # or
6
8
  # extend Storazzo::Common (def to def self.XX)
7
9
  #
8
- =begin
9
- Emoji to copy:
10
- 👍 👎 👌 ✌ 👋 🤝 👏 🤘 🤟 🤙 🤏 🙌 🙏 🖖 🤞 ✋ 🤚 🖐 🖑 🤲 👐 👊 🤛 🤜 🖕
11
- 👈 👉 👆 👇
12
- 😃 😄 😅 😆 😊 😎 😇 😈 😏 🤣 🤩 🤪 🥳 😁 😀 😂 🤠 🤡 🤑 🤓 🤖 kiss
13
- 😗 😚 😘 😙 flirting
14
- 😉 🤗 😍 🥰 🤤 😋 😛 😜 😝 neutral
15
- 😶 🙃 😐 😑 🤔 🤨 🧐 hush
16
- 🤭 🤫 😯 🤐 😌 😖 😕 😳 😔 🤥 🥴 shocked
17
- 😮 😲 🤯 tired
18
- 😩 😫 🥱 😪 😴 😵 sad
19
- 😦 😞 😥 😟 cry
20
- 😢 😭 sick
21
- 🤢 🤮 😷 🤒 🤕 🥵 🥶 fear
22
- 🥺 😬 😓 😰 😨 😱 angry
23
- 😒 😠 😡 😤 😣 😧 🤬 😸 😹 😺 😻 😼 😽 😾 😿 🙀 🙈 🙉 🙊
24
- [see Animal Emoji 🐰] gesture
25
- 🤦 🤷 🙅 🙆 🙋 🙌 🙍 🙎 🙇 🙏 activity
26
- 👯 💃 🕺 🤳 💇 💈 💆 🧖 🧘 🧍 🧎 👰 🤰 🤱 faces
27
- 👶 🧒 👦 👧 👩 👨 🧑 🧔 🧓 👴 👵 👤 👥 👪 👫 👬 👭 👱 👳 👲 🧕 👸 🤴 🎅 🤶 disabled
28
- 🧏 🦻 🦮 🦯 🦺 🦼 🦽 🦾 🦿 🤵 👮 👷 💁 💂 🕴 🕵 🦸 🦹 🧙 🧚 🧜 🧝 🧞 🧛 🧟 👼 👿 👻 👹 👺 👽 👾 🛸 💀 ☠ 🕱 🧠 🦴 👁 👀 👂 👃 👄 🗢 👅 🦷 🦵 🦶 💭 🗬 🗭 💬 🗨 🗩 🗪 🗫 🗰 🗱 🗮 🗯 🗣 🗤 🗥 🗦 🗧 💦 💧 💢 💫 💤 💨 💥 💪 🗲 🔥 💡 💩 💯 🔟 🔰 🕲
29
- =end
10
+ # Emoji to copy:
11
+ # 👍 👎 👌 ✌ 👋 🤝 👏 🤘 🤟 🤙 🤏 🙌 🙏 🖖 🤞 ✋ 🤚 🖐 🖑 🤲 👐 👊 🤛 🤜 🖕
12
+ # 👈 👉 👆 👇
13
+ # 😃 😄 😅 😆 😊 😎 😇 😈 😏 🤣 🤩 🤪 🥳 😁 😀 😂 🤠 🤡 🤑 🤓 🤖 kiss
14
+ # 😗 😚 😘 😙 flirting
15
+ # 😉 🤗 😍 🥰 🤤 😋 😛 😜 😝 neutral
16
+ # 😶 🙃 😐 😑 🤔 🤨 🧐 hush
17
+ # 🤭 🤫 😯 🤐 😌 😖 😕 😳 😔 🤥 🥴 shocked
18
+ # 😮 😲 🤯 tired
19
+ # 😩 😫 🥱 😪 😴 😵 sad
20
+ # 😦 😞 😥 😟 cry
21
+ # 😢 😭 sick
22
+ # 🤢 🤮 😷 🤒 🤕 🥵 🥶 fear
23
+ # 🥺 😬 😓 😰 😨 😱 angry
24
+ # 😒 😠 😡 😤 😣 😧 🤬 😸 😹 😺 😻 😼 😽 😾 😿 🙀 🙈 🙉 🙊
25
+ # [see Animal Emoji 🐰] gesture
26
+ # 🤦 🤷 🙅 🙆 🙋 🙌 🙍 🙎 🙇 🙏 activity
27
+ # 👯 💃 🕺 🤳 💇 💈 💆 🧖 🧘 🧍 🧎 👰 🤰 🤱 faces
28
+ # 👶 🧒 👦 👧 👩 👨 🧑 🧔 🧓 👴 👵 👤 👥 👪 👫 👬 👭 👱 👳 👲 🧕 👸 🤴 🎅 🤶 disabled
29
+ # 🧏 🦻 🦮 🦯 🦺 🦼 🦽 🦾 🦿 🤵 👮 👷 💁 💂 🕴 🕵 🦸 🦹 🧙 🧚 🧜 🧝 🧞 🧛 🧟 👼 👿 👻 👹 👺 👽 👾 🛸 💀 ☠ 🕱 🧠 🦴 👁 👀 👂 👃 👄 🗢 👅 🦷 🦵 🦶 💭 🗬 🗭 💬 🗨 🗩 🗪 🗫 🗰 🗱 🗮 🗯 🗣 🗤 🗥 🗦 🗧 💦 💧 💢 💫 💤 💨 💥 💪 🗲 🔥 💡 💩 💯 🔟 🔰 🕲
30
30
  require_relative 'colors'
31
31
  require 'pry'
32
32
 
33
- module Storazzo::Common
34
- include Storazzo::Colors
33
+ module Storazzo
34
+ module Common
35
+ include Storazzo::Colors
35
36
 
36
- def deb(s)
37
- puts "[DEB👀] #{yellow(s)}" if _debug_true # $DEBUG
38
- end
37
+ def deb(s)
38
+ # useless: put logic in _debug_true() # return if ENV['RUBYOPT'] == "-W0"
39
+ puts "[DEB👀] #{yellow(s)}" if _debug_true # $DEBUG
40
+ end
39
41
 
40
- # this has a yield
41
- def if_deb?()
42
- if _debug_true # $DEBUG
43
- deb "== yield START =="
44
- yield
45
- deb "== yield END =="
42
+ # this has a yield
43
+ def if_deb?
44
+ if _debug_true # $DEBUG
45
+ deb '== yield START =='
46
+ yield
47
+ deb '== yield END =='
48
+ end
46
49
  end
47
- end
48
50
 
49
- def warn(s)
50
- puts "[W⚠️RN] #{azure(s)}"
51
- end
51
+ def warn(s)
52
+ puts "[W⚠️RN] #{azure(s)}"
53
+ end
52
54
 
53
- def err(str)
54
- puts "[ERR👎] #{red(s)}" # ⛔
55
- end
55
+ def err(_str)
56
+ puts "[ERR👎] #{red(s)}" # ⛔
57
+ end
56
58
 
57
- def bug(s)
58
- puts "[🐛] #{gray s}"
59
- end
59
+ def bug(s)
60
+ puts "[🐛] #{gray s}"
61
+ end
60
62
 
61
- def pverbose(is_verbose, str)
62
- # puts "[V📚RB💀S📚] #{gray str}"
63
- puts "[🦋🐛🐝🐞🐜🕷🕸🦂🦗🦟] #{gray str}" # insects: http://xahlee.info/comp/unicode_insects.html
64
- end
63
+ def pverbose(_is_verbose, str)
64
+ # puts "[V📚RB💀S📚] #{gray str}"
65
+ return if ENV['RUBYOPT'] == '-W0'
65
66
 
66
- def ppp(complex_object_to_colorize)
67
- # TODO i need to learn to return without printing..
68
- Pry::ColorPrinter.pp(complex_object_to_colorize)
69
- end
67
+ puts "[🦋🐛🐝🐞🐜🕷🕸🦂🦗🦟] #{gray str}" # insects: http://xahlee.info/comp/unicode_insects.html
68
+ end
70
69
 
71
- def fatal(s)
72
- raise "[F💀TAL] #{red s}"
73
- end
70
+ def ppp(complex_object_to_colorize)
71
+ # TODO: i need to learn to return without printing..
72
+ Pry::ColorPrinter.pp(complex_object_to_colorize)
73
+ end
74
74
 
75
- def mac?
76
- `uname`.chomp == 'Darwin'
77
- end
75
+ def fatal(s)
76
+ raise "[F💀TAL] #{red s}"
77
+ end
78
78
 
79
- def linux?
80
- `uname`.chomp == 'Linux'
81
- end
79
+ def mac?
80
+ `uname`.chomp == 'Darwin'
81
+ end
82
82
 
83
- private
83
+ def linux?
84
+ `uname`.chomp == 'Linux'
85
+ end
84
86
 
85
- def _debug_true
86
- $DEBUG or ENV["DEBUG"] == 'true'
87
- end
87
+ private
88
+
89
+ def _debug_true
90
+ return false if ENV['RUBYOPT'] == '-W0'
88
91
 
89
- # puts "[DEBUG ENABLED!]" if _debug_true
92
+ $DEBUG or ENV['DEBUG'] == 'true' # but FALSE isor _debug_true
93
+ end
94
+
95
+ # puts "[DEBUG ENABLED!]" if _debug_true
96
+ end
90
97
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # idea from https://medium.com/@leo_hetsch/ruby-modules-include-vs-prepend-vs-extend-f09837a5b073
2
4
  module Debug
3
5
  def log(message)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # copied from https://dev.to/ayushn21/how-to-generate-yaml-from-ruby-objects-without-type-annotations-4fli
2
4
  module Storazzo
3
5
  module Hashify
@@ -20,19 +22,19 @@ module Storazzo
20
22
  value = instance_variable_get(var)
21
23
  value = value.map(&:to_hash) if value.is_a? Array
22
24
 
23
- hash[var.to_s.delete("@")] = value
25
+ hash[var.to_s.delete('@')] = value
24
26
  end
25
27
 
26
- return hash
28
+ hash
27
29
  end
28
30
 
29
31
  def obj_to_hash
30
32
  h = {}
31
33
  puts self
32
- self.instance_variables.each { |var|
34
+ instance_variables.each do |var|
33
35
  # puts var
34
- h[var.to_s.delete('@')] = self.instance_variable_get(var) # send(var.to_s.delete('@'))
35
- }
36
+ h[var.to_s.delete('@')] = instance_variable_get(var) # send(var.to_s.delete('@'))
37
+ end
36
38
  h
37
39
  end
38
40
 
data/lib/storazzo/main.rb CHANGED
@@ -1,7 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # main entrypoint for tests and silly stuff from Makefile..
2
4
  # This Class externalizes all relevant things from other libs while I learn how to do it from there
3
5
  # eg from RicDisk.
4
6
 
7
+ require 'English'
5
8
  module Storazzo
6
9
  # This is the Main Class - an entrypoint to call the meravilles hidden therein.
7
10
  #
@@ -12,62 +15,69 @@ module Storazzo
12
15
  # Arguments:
13
16
  # message: (String) - optional
14
17
 
15
- class Storazzo::Main # Can be same name as Module: https://stackoverflow.com/questions/13261474/ruby-modules-and-classes-same-name-in-structure
16
- require 'storazzo/colors'
17
- extend Storazzo::Colors
18
+ # Can be same name as Module: https://stackoverflow.com/questions/13261474/ruby-modules-and-classes-same-name-in-structure
19
+ module Storazzo
20
+ class Main
21
+ require 'storazzo/colors'
22
+ extend Storazzo::Colors
18
23
 
19
- # version 1.2
20
- def self.say_hi(message = nil)
21
- str = get_hi(message)
22
- puts str
23
- str
24
- end
24
+ # version 1.2
25
+ def self.say_hi(message = nil)
26
+ str = get_hi(message)
27
+ puts str
28
+ str
29
+ end
25
30
 
26
- # salutation
27
- def self.get_hi(message = nil)
28
- str = "Hello from Storazzo v#{white Storazzo::version rescue "Error: #{$!}"}!"
29
- str += " Message: '#{yellow message.to_s}'" if message
30
- str
31
- end
31
+ # salutation
32
+ def self.get_hi(message = nil)
33
+ str = "Hello from Storazzo v#{begin
34
+ white Storazzo.version
35
+ rescue StandardError
36
+ "Error: #{$ERROR_INFO}"
37
+ end}!"
38
+ str += " Message: '#{yellow message.to_s}'" if message
39
+ str
40
+ end
32
41
 
33
- def self.all_mounts(opts = {})
34
- opts_verbose = opts.fetch :verbose, true
42
+ def self.all_mounts(opts = {})
43
+ opts_verbose = opts.fetch :verbose, true
35
44
 
36
- self.say_hi "Storazzo::Main.all_mounts(): BEGIN - RicDiskVersion is: #{Storazzo::RicDiskUgly::RICDISK_VERSION}"
45
+ say_hi "Storazzo::Main.all_mounts(): BEGIN - RicDiskVersion is: #{Storazzo::RicDiskUgly::RICDISK_VERSION}"
37
46
 
38
- pwhite("1. First I load the config in verbose mode..")
39
- config = Storazzo::RicDiskConfig.instance
40
- config.load
41
- # puts config.object_id
42
- # puts Storazzo::RicDiskConfig.instance.object_id
43
- pwhite "TODO(ricc): show a list of all RicDisk relevant mounts" if opts_verbose
44
- # d = Storazzo::RicDisk.new
45
- config.iterate_through_file_list_for_disks() # analyze_local_system
46
- # sbrodola_ricdisk("/Volumes/")
47
- Storazzo::RicDisk.test
48
- Storazzo::RicDisk.find_active_dirs
49
- # Storazzo::RicDisk.sbrodola_ricdisk StorazzoMod::root + "./var/disks/"
50
- # sbrodola_ricdisk(StorazzoMod::root + "./var/disks/") rescue "[Storazzo::AllMount] SomeError: #{$!}"
51
- self.hi 'Storazzo::Main.all_mounts(): END'
52
- end
47
+ pwhite('1. First I load the config in verbose mode..')
48
+ config = Storazzo::RicDiskConfig.instance
49
+ config.load
50
+ # puts config.object_id
51
+ # puts Storazzo::RicDiskConfig.instance.object_id
52
+ pwhite 'TODO(ricc): show a list of all RicDisk relevant mounts' if opts_verbose
53
+ # d = Storazzo::RicDisk.new
54
+ config.iterate_through_file_list_for_disks # analyze_local_system
55
+ # sbrodola_ricdisk("/Volumes/")
56
+ Storazzo::RicDisk.test
57
+ Storazzo::RicDisk.find_active_dirs
58
+ # Storazzo::RicDisk.sbrodola_ricdisk StorazzoMod::root + "./var/disks/"
59
+ # sbrodola_ricdisk(StorazzoMod::root + "./var/disks/") rescue "[Storazzo::AllMount] SomeError: #{$!}"
60
+ hi 'Storazzo::Main.all_mounts(): END'
61
+ end
53
62
 
54
- def self.all_tests
55
- # include vs extend: https://stackoverflow.com/questions/15097929/ruby-module-require-and-include
56
- # => http://www.railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby/
57
- # include Storazzo::Colors
58
- extend Storazzo::Colors
63
+ def self.all_tests
64
+ # include vs extend: https://stackoverflow.com/questions/15097929/ruby-module-require-and-include
65
+ # => http://www.railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby/
66
+ # include Storazzo::Colors
67
+ extend Storazzo::Colors
59
68
 
60
- pwhite "All tests BEGIN - todo obsolete this now that I have proper Rake testing suite..."
61
- deb "Maybe debug is enabled?"
62
- say_hi
63
- # This works with EXTEND..
64
- puts(yellow "Just YELLOW 0")
65
- # This reqwuires a INCLUDE.
66
- # puts(Storazzo::Colors.yellow "Test YELLOW 1 self")
67
- # puts(Colors.yellow "Test YELLOW 1 self")
68
- # puts(Colors.green "Test YELLOW 2 ohne self")
69
- pwhite "All tests END"
70
- # puts "All tests END"
69
+ pwhite 'All tests BEGIN - todo obsolete this now that I have proper Rake testing suite...'
70
+ deb 'Maybe debug is enabled?'
71
+ say_hi
72
+ # This works with EXTEND..
73
+ puts(yellow('Just YELLOW 0'))
74
+ # This reqwuires a INCLUDE.
75
+ # puts(Storazzo::Colors.yellow "Test YELLOW 1 self")
76
+ # puts(Colors.yellow "Test YELLOW 1 self")
77
+ # puts(Colors.green "Test YELLOW 2 ohne self")
78
+ pwhite 'All tests END'
79
+ # puts "All tests END"
80
+ end
71
81
  end
72
82
  end
73
83
  end