storazzo 0.0.6 โ†’ 0.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 06f3ee99606822e20e1d8410578fd8194b416f9ccdcc4cf2a17d1b7a44e09d45
4
- data.tar.gz: c92b3712561fb31e049052f35ffe500800b5dab6537eb0cb8f2313e898b2558d
3
+ metadata.gz: b20663eda1cb6d0a43c4391e3c50a111802c4ddbdfdfe28c0f99fd3a12af2d9f
4
+ data.tar.gz: 7efd0bf78085f676796c91f24fece24621e18477ca67d0b002536b6c13492fe7
5
5
  SHA512:
6
- metadata.gz: 3c05485035eee8f1092a8c8c05a765f3d1492233ec22b8bf3539ad82bc6ded2cc46cbaacb49bb86539fdea6ee48c8a99c491a6daab1f0b3f6d408af48f610669
7
- data.tar.gz: 79c252ed51045da677895a8c5e891de78e7490354212eaa4a93594914734ee66eff0423e643aecb3d476b5d8c2367f6900bd625a21e7bbc9f0cf0a3a790397ed
6
+ metadata.gz: 17baa0e81ee526a21bf5a4129b66d51f04db26cecb3215288fd410468a0d8212aba2f22b1163a9be89f20d4e79791e778f74f7a7d965fcbff0c67f1f7054c43e
7
+ data.tar.gz: d2d208632520d5f65bf9a0292f336271eaef1c1b88ee605222f1970d3127e47cb1229add34d310bed8af74d536a1a520b8c3dc290dc24be46037a9e740ab50ce
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ # useless now
2
+
3
+
4
+ # to troubleshoot/debug things
5
+ gem 'rubocop'
data/LICENSE ADDED
@@ -0,0 +1 @@
1
+ # todo
data/Makefile ADDED
@@ -0,0 +1,46 @@
1
+
2
+ VER = $(shell cat VERSION)
3
+
4
+ .PHONY: test clean
5
+
6
+
7
+ help:
8
+ cat Makefile
9
+
10
+ build-local:
11
+ gem build storazzo.gemspec
12
+
13
+ build: build-local
14
+
15
+ install:
16
+ gem install ./storazzo-$(VER).gem
17
+
18
+ push-to-rubygems: build-local test
19
+ gem push ./storazzo-$(VER).gem
20
+
21
+ list:
22
+ gem list -r storazzo
23
+
24
+ test:
25
+ echo 1. Testing the library end to end by requiring it..
26
+ echo "Storazzo::Main.all_tests " | irb -Ilib -rstorazzo
27
+ make mounts
28
+ #echo 2. Testing ricdisk-magic
29
+ #bin/ricdisk-magic Ciao-da-Makefile
30
+ echo 3. run rake test.. ont configured yet just a memo for the future.
31
+ RUBYOPT="-W0" rake test
32
+ echo 4. Prove I can include local gem in irb and play around. Similarly to rails console without reload.
33
+ make irb-test
34
+ @echo 'OK: ALL TESTS PASSED. #STIKA'
35
+
36
+ # RicDisk test
37
+ mounts:
38
+ echo "Storazzo::Main.all_mounts ; nil" | irb -Ilib -rstorazzo
39
+
40
+ irb:
41
+ irb -Ilib -rstorazzo
42
+ irb-test:
43
+ ./irb-test.sh
44
+
45
+ watch-test:
46
+ watch -c make test
data/README.md ADDED
@@ -0,0 +1,19 @@
1
+
2
+ # storazzo Gem
3
+
4
+ ๐Ÿ“ฆ Storazzo ๐Ÿ’Ž gem - a Gem to automatically parse your FS for mounts (๐Ÿ’ฝ ๐Ÿ’พ ๐Ÿ’ฟ ) and compute MD5 (๐Ÿค) of all files therein and then collect in central DB ๐Ÿ”‹ through ๐Ÿ“ฆ StorazzoApp๐Ÿ“ฆ (TM).
5
+
6
+ # INSTALL
7
+
8
+ `gem install storazzo`
9
+
10
+ (Latest version is hosted in https://rubygems.org/gems/storazzo)
11
+
12
+ # Thanks
13
+
14
+ Inspiration from:
15
+
16
+ * hola gem awesome guide: https://guides.rubygems.org/make-your-own-gem/
17
+ * RubyGem from DHH: https://github.com/rails/strong_parameters/tree/master/lib for how to trustucre lib/ and gemspec.
18
+ * Stackoverflow and Google for the rest.
19
+ * Elio e le Storie Tese: _Sai chi ti scandisce il disco un casino? Storazzo!_
data/Rakefile ADDED
@@ -0,0 +1,32 @@
1
+ #require 'rake'
2
+
3
+ # from hola: https://guides.rubygems.org/make-your-own-gem/#adding-an-executable
4
+ require "rake/testtask"
5
+
6
+ Rake::TestTask.new do |t|
7
+ t.libs << "test"
8
+ t.verbose = false
9
+ t.warning = false
10
+ end
11
+
12
+ desc "Run tests"
13
+ task default: :test
14
+
15
+
16
+ # begin
17
+ # require 'bundler/setup'
18
+ # Bundler::GemHelper.install_tasks
19
+ # rescue LoadError
20
+ # puts 'although not required, bundler is recommended for running the tests'
21
+ # end
22
+
23
+ # task default: :spec
24
+
25
+ # require 'rspec/core/rake_task'
26
+ # RSpec::Core::RakeTask.new(:spec)
27
+
28
+ # require 'rubocop/rake_task'
29
+ # RuboCop::RakeTask.new do |task|
30
+ # task.requires << 'rubocop-performance'
31
+ # task.requires << 'rubocop-rspec'
32
+ # end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.2.0
data/bin/ricdisk-magic ADDED
@@ -0,0 +1,152 @@
1
+ #!/usr/bin/env ruby
2
+
3
+
4
+
5
+ ############# ############# ############# ############# ############# ############# ############# #############
6
+ # placeholder until i make it work..
7
+ # https://guides.rubygems.org/make-your-own-gem/#adding-an-executable
8
+ require 'storazzo'
9
+ require 'yaml'
10
+ require 'socket'
11
+ require 'optparse' # http://ruby.about.com/od/advancedruby/a/optionparser.htm
12
+
13
+ #require_relative '../lib/storazzo'
14
+
15
+ puts "First I need to figure out how to bring in all the libraries in here.."
16
+ puts Storazzo::Main.hi(ARGV[0])
17
+ exit(0)
18
+ ############# ############# ############# ############# ############# ############# ############# #############
19
+
20
+
21
+ # I believe this is wrong
22
+ #require 'storazzo'
23
+ # required to have methods wiothout self.
24
+ #include 'lib/ric_disk'
25
+ #extend Storazzo::Colors
26
+
27
+ if RUBY_VERSION.split('.')[0] == 1
28
+ puts "Refusing to launch a script form Ruby 1. Sorry Ric, its 2020 damn it!"
29
+ exit 2020
30
+ end
31
+
32
+ $PROG_VER = '0.3'
33
+ $DEBUG = false
34
+
35
+ HISTORY = <<-BIG_LONG_MULTILINE
36
+ 2022-07-11 v0.3 Ported from private files in GIC into storazzo (open source on gitHub) and cleaned up italian and libs
37
+ 2022-07-DD v0.2 Some private stuff on GIC
38
+ BIG_LONG_MULTILINE
39
+
40
+ =begin
41
+
42
+ ############################################################
43
+ @author: Riccardo Carlesso
44
+ @email: riccardo.carlesso@gmail.com
45
+ @maturity: development
46
+ @language: Ruby
47
+ @synopsis: Brief Description here
48
+ @tags: development, rcarlesso, test
49
+ @description: See description
50
+ ############################################################
51
+
52
+ =end
53
+
54
+
55
+ $myconf = {
56
+ :app_name => "RicDisk Magic should be sth like #{$0}",
57
+ :description => "
58
+ This program is loosely inspired to ricdisk-magic.sh but its much better.
59
+ Idea di base: trovare tutti le directory con file ricdisk e da esso estrarre info e magari METTERE info.
60
+ Il tutto condito con un bel protobuf e un'entita che metto in Lib.
61
+ ".strip.gsub(/^\s+/, "").gsub(/\s+$/, ""),
62
+ # TODO move to some class default
63
+ :media_dirs => %w{ /media/riccardo/ /Volumes/ /mnt/ ~/git/storazzo/var/test/ /sobenme/giusto/per/imparare/ad/ammutolire/gli/errori/ },
64
+ :mount_types => %w{ vfat ntfs },
65
+ }
66
+ $stats_file = "ricdisk_stats_v11.rds" # => RicDiskStatsFile
67
+ $gcs_bucket = 'TODO-CHANGE-CONFIG-palladius'
68
+
69
+ # This template from scripta.rb. from 2.1.0 removed aby ric gem dependency.
70
+ # 2022-04-26 2.1.1 Added more colors
71
+ # 2022-04-26 2.1.0 Historical momemnt: removed gem 'ric' dependency
72
+ $TEMPLATE_VER = '2.1.1'
73
+
74
+
75
+ def usage(comment=nil)
76
+ puts white($optparse.banner)
77
+ puts($optparse.summarize)
78
+ puts("Description: " + gray($myconf[:description]))
79
+ puts red(comment) if comment
80
+ #puts "Description: #{ $myconf[:description] }"
81
+ exit 13
82
+ end
83
+
84
+ # include it in main if you want a custome one
85
+ def init() # see lib_autoinit in lib/util.rb
86
+ $opts = {}
87
+ # setting defaults
88
+ $opts[:verbose] = false
89
+ $opts[:dryrun] = false
90
+ $opts[:debug] = false
91
+ $opts[:force] = false
92
+
93
+ $optparse = OptionParser.new do |opts|
94
+ opts.banner = "#{$0} v.#{$PROG_VER}\n Usage: #{File.basename $0} [options] file1 file2 ..."
95
+ opts.on( '-d', '--debug', 'enables debug (DFLT=false)' ) { $opts[:debug] = true ; $DEBUG = true }
96
+ opts.on( '-f', '--force', 'force stuff (DFLT=false)' ) { $opts[:force] = true }
97
+ opts.on( '-h', '--help', 'Display this screen' ) { usage }
98
+ #opts.on( '-j', '--jabba', 'Activates my Jabber powerful CLI' ) { $opts[:jabba] = true }
99
+ opts.on( '-n', '--dryrun', "Don't really execute code" ) { $opts[:dryrun] = true }
100
+ opts.on( '-l', '--logfile FILE', 'Write log to FILE' ) {|file| $opts[:logfile] = file }
101
+ opts.on( '-v', '--verbose', 'Output more information' ) { $opts[:verbose] = true}
102
+ end
103
+ $optparse.parse!
104
+ end
105
+
106
+ def real_program
107
+ deb("Hello world from a templated '#{yellow $0 }'")
108
+ deb "+ Options are: #{gray $opts}"
109
+ deb "+ Depured args: #{azure ARGV}"
110
+ deb "+ Script-specifig super-cool conf: #{green $prog_conf_d}"
111
+ deb "+ Your configuration: #{purple $myconf.inspect}"
112
+
113
+ # Your code goes here...
114
+ puts white("Hello world from #{$myconf[:app_name]}!")
115
+ puts "Description: '''#{white $myconf[:description] }'''"
116
+
117
+
118
+ config = RicDiskConfig.auto_sbrodola(ARGV)
119
+
120
+ # if ARGV == [] # empty -> ALL
121
+ # dirs = RicDisk.find_active_dirs()
122
+ # dirs.each {|dir|
123
+ # RicDisk.sbrodola_ricdisk(dir)
124
+ # RicDisk.calculate_stats_files(dir) # dir is inutile
125
+ # } # TODO refactor in option sbrodola_afterwards=true. :)
126
+ # else
127
+ # deb "I consider ARGV come la lista di directories da parsare :)"
128
+ # dirs = RicDisk.find_active_dirs()
129
+ # ARGV.each{ |dir|
130
+ # dir = File.expand_path(dir)
131
+ # if dirs.include?(dir)
132
+ # deb "Legit dir: #{green dir}"
133
+ # RicDisk.sbrodola_ricdisk(dir)
134
+ # RicDisk.calculate_stats_files(dir) # dir is inutile
135
+ # else
136
+ # deb "Figghiu ri buttana: doesnt exist #{red dir}"
137
+ # end
138
+ # }
139
+ # end #/if aRGV
140
+
141
+ end
142
+
143
+ def main(filename)
144
+ deb "I'm called by #{white filename}"
145
+ deb "HISTORY: #{gray HISTORY}"
146
+ #deb "To remove this shit, just set $DEBUG=false :)"
147
+ init # Enable this to have command line parsing capabilities!
148
+ #warn "[warn] template v#{$TEMPLATE_VER }: proviamo il warn che magari depreca il DEB"
149
+ real_program
150
+ end
151
+
152
+ main(__FILE__)
@@ -1,8 +1,12 @@
1
1
  # Use EXTEND vs INCLUDE and magically the Class will inherit instead of instance. Magical! :)
2
2
  # http://www.railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby/
3
3
 
4
+ module Storazzo
5
+ # needs to be defined before
6
+ end
7
+
4
8
  module Storazzo::Colors
5
- # class Storazzo::Colors
9
+
6
10
  PREPEND_ME = "[Storazzo::Colors] "
7
11
 
8
12
  def deb(s); puts "#DEB #{gray(s)}" if $DEBUG; end
@@ -38,5 +42,5 @@ module Storazzo::Colors
38
42
  def pred(s) puts(red(s)); end
39
43
  def pyellow(s) puts(yellow(s)); end
40
44
 
41
-
42
- end
45
+ end
46
+ #end
@@ -0,0 +1,12 @@
1
+ # Ric common stuff! :)
2
+
3
+
4
+ module Storazzo::Common
5
+
6
+
7
+ def deb(str)
8
+ puts "[DEB] #{str}"
9
+ end
10
+
11
+
12
+ end
@@ -0,0 +1,10 @@
1
+
2
+ # idea from https://medium.com/@leo_hetsch/ruby-modules-include-vs-prepend-vs-extend-f09837a5b073
3
+ module Debug
4
+
5
+ def log(message)
6
+ # debug output
7
+ puts "TODO(ricc): LOG '#{message}' on GCP :)"
8
+ end
9
+
10
+ end
@@ -0,0 +1,33 @@
1
+ # copied from https://dev.to/ayushn21/how-to-generate-yaml-from-ruby-objects-without-type-annotations-4fli
2
+ module Storazzo
3
+ module Hashify
4
+ # Classes that include this module can exclude certain
5
+ # instance variable from its hash representation by overriding
6
+ # this method
7
+ def ivars_excluded_from_hash
8
+ [ 'this_doesnt_exist' ]
9
+ end
10
+
11
+ def to_hash
12
+ hash = {}
13
+ excluded_ivars = ivars_excluded_from_hash
14
+
15
+ # Iterate over all the instance variables and store their
16
+ # names and values in a hash
17
+ instance_variables.each do |var|
18
+ next if excluded_ivars.include? var.to_s
19
+
20
+ value = instance_variable_get(var)
21
+ value = value.map(&:to_hash) if value.is_a? Array
22
+
23
+ hash[var.to_s.delete("@")] = value
24
+ end
25
+
26
+ return hash
27
+ end
28
+
29
+ def to_yaml
30
+ to_hash.to_yaml
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,69 @@
1
+ # main entrypoint for tests and silly stuff from Makefile..
2
+ # This Class externalizes all relevant things from other libs while I learn how to do it from there
3
+ # eg from RicDisk.
4
+
5
+ module Storazzo
6
+
7
+ # This is the Main Class - an entrypoint to call the meravilles hidden therein.
8
+ #
9
+ # Example:
10
+ # >> Storazzo.hi("ciao bello")
11
+ # => Hello from Storazzo v0.1.1!
12
+ #
13
+ # Arguments:
14
+ # message: (String) - optional
15
+
16
+
17
+ class Storazzo::Main # Can be same name as Module: https://stackoverflow.com/questions/13261474/ruby-modules-and-classes-same-name-in-structure
18
+ require 'storazzo/colors'
19
+ extend Storazzo::Colors
20
+
21
+ # version 1.2
22
+ def self.hi(message=nil)
23
+ str = "Hello from Storazzo v#{white Storazzo::version rescue "Error: #{$!}"}!"
24
+ str += " Message: '#{yellow message.to_s}'" if message
25
+ puts str
26
+ str
27
+ end
28
+
29
+ def self.all_mounts(opts={})
30
+ opts_verbose = opts.fetch :verbose, true
31
+
32
+ self.hi "Storazzo::Main.all_mounts(): BEGIN - RicDiskVersion is: #{Storazzo::RicDiskUgly::RICDISK_VERSION}"
33
+
34
+ pwhite("1. First I load the config in verbose mode..")
35
+ config = Storazzo::RicDiskConfig.instance
36
+ config.load
37
+ # puts config.object_id
38
+ # puts Storazzo::RicDiskConfig.instance.object_id
39
+ pwhite "TODO(ricc): show a list of all RicDisk relevant mounts" if opts_verbose
40
+ #d = Storazzo::RicDisk.new
41
+ config.iterate_through_file_list_for_disks() # analyze_local_system
42
+ #sbrodola_ricdisk("/Volumes/")
43
+ Storazzo::RicDisk.test
44
+ Storazzo::RicDisk.find_active_dirs
45
+ #Storazzo::RicDisk.sbrodola_ricdisk StorazzoMod::root + "./var/disks/"
46
+ #sbrodola_ricdisk(StorazzoMod::root + "./var/disks/") rescue "[Storazzo::AllMount] SomeError: #{$!}"
47
+ self.hi 'Storazzo::Main.all_mounts(): END'
48
+ end
49
+
50
+ def self.all_tests
51
+ # include vs extend: https://stackoverflow.com/questions/15097929/ruby-module-require-and-include
52
+ # => http://www.railstips.org/blog/archives/2009/05/15/include-vs-extend-in-ruby/
53
+ #include Storazzo::Colors
54
+ extend Storazzo::Colors
55
+
56
+ pwhite "All tests BEGIN - todo obsolete this now that I have proper Rake testing suite..."
57
+ deb "Maybe debug is enabled?"
58
+ hi
59
+ # This works with EXTEND..
60
+ puts(yellow "Just YELLOW 0")
61
+ # This reqwuires a INCLUDE.
62
+ #puts(Storazzo::Colors.yellow "Test YELLOW 1 self")
63
+ #puts(Colors.yellow "Test YELLOW 1 self")
64
+ #puts(Colors.green "Test YELLOW 2 ohne self")
65
+ pwhite "All tests END"
66
+ #puts "All tests END"
67
+ end
68
+ end
69
+ end
File without changes