rbbt-util 5.33.11 → 5.33.12
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 +4 -4
- data/lib/rbbt/util/misc/communication.rb +79 -0
- data/lib/rbbt/util/misc/development.rb +0 -26
- data/lib/rbbt/util/misc/system.rb +0 -19
- data/lib/rbbt/util/misc.rb +1 -0
- data/lib/rbbt/util/open.rb +8 -1
- data/test/rbbt/util/misc/test_communication.rb +11 -0
- metadata +5 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 729b93bb0b82b05a03eb9cdf99728b4793ecd002ab06a92c08dc899341d26810
         | 
| 4 | 
            +
              data.tar.gz: 568b263ae5bbc16e18383bd0fc5fb42054d2954b674bb1df97f80280ade9e7b2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 1c56e3f171523bb412b391899b93ba88d80038a2a201ed4573897c3039526fbf1f05d2a2bcb81b837d6cb9ad31672c7c5a67572d7baa3789c10f3fc3929db274
         | 
| 7 | 
            +
              data.tar.gz: b178ecce6c10f7933bdafd3cf495e3a185d6f0005b5111ed6b86f79f70b9608d613c837d7141c6ca42bf4504d352f46102d2ac628bc19d6e9a2001dbcc081284
         | 
| @@ -0,0 +1,79 @@ | |
| 1 | 
            +
            module Misc
         | 
| 2 | 
            +
              PUSHBULLET_KEY=begin
         | 
| 3 | 
            +
                               if ENV["PUSHBULLET_KEY"]
         | 
| 4 | 
            +
                                 ENV["PUSHBULLET_KEY"]
         | 
| 5 | 
            +
                               else
         | 
| 6 | 
            +
                                 config_api = File.join(ENV['HOME'], 'config/apps/pushbullet/apikey')
         | 
| 7 | 
            +
                                 if File.exist? config_api
         | 
| 8 | 
            +
                                   File.read(config_api).strip
         | 
| 9 | 
            +
                                 else
         | 
| 10 | 
            +
                                   nil
         | 
| 11 | 
            +
                                 end
         | 
| 12 | 
            +
                               end
         | 
| 13 | 
            +
                             end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              def self.notify(description, event='notification', key = nil)
         | 
| 16 | 
            +
                if PUSHBULLET_KEY.nil? and key.nil?
         | 
| 17 | 
            +
                  Log.warn "Could not notify, no PUSHBULLET_KEY"
         | 
| 18 | 
            +
                  return
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                Thread.new do
         | 
| 22 | 
            +
                  application = 'rbbt'
         | 
| 23 | 
            +
                  event ||= 'notification'
         | 
| 24 | 
            +
                  key ||= PUSHBULLET_KEY
         | 
| 25 | 
            +
                  `curl -s --header "Authorization: Bearer #{key}" -X POST https://api.pushbullet.com/v2/pushes --header 'Content-Type: application/json' --data-binary '{"type": "note", "title": "#{event}", "body": "#{description}"}'`
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
              def self.send_email_old(from, to, subject, message, options = {})
         | 
| 30 | 
            +
                IndiferentHash.setup(options)
         | 
| 31 | 
            +
                options = Misc.add_defaults options, :from_alias => nil, :to_alias => nil, :server => 'localhost', :port => 25, :user => nil, :pass => nil, :auth => :login
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                server, port, user, pass, from_alias, to_alias, auth = Misc.process_options options, :server, :port, :user, :pass, :from_alias, :to_alias, :auth
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                msg = <<-END_OF_MESSAGE
         | 
| 36 | 
            +
            From: #{from_alias} <#{from}>
         | 
| 37 | 
            +
            To: #{to_alias} <#{to}>
         | 
| 38 | 
            +
            Subject: #{subject}
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            #{message}
         | 
| 41 | 
            +
            END_OF_MESSAGE
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                Net::SMTP.start(server, port, server, user, pass, auth) do |smtp|
         | 
| 44 | 
            +
                  smtp.send_message msg, from, to
         | 
| 45 | 
            +
                end
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
              def self.send_email(from, to, subject, message, options = {})
         | 
| 49 | 
            +
                require 'mail'
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                IndiferentHash.setup(options)
         | 
| 52 | 
            +
                options = Misc.add_defaults options, :from_alias => nil, :to_alias => nil, :server => 'localhost', :port => 25, :user => nil, :pass => nil, :auth => :login, :files => []
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                server, port, user, pass, from_alias, to_alias, auth, files = Misc.process_options options, :server, :port, :user, :pass, :from_alias, :to_alias, :auth, :files
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                files = [] if files.nil?
         | 
| 57 | 
            +
                files = [files] unless Array === files
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                Mail.defaults do
         | 
| 60 | 
            +
                  delivery_method :smtp, address: server, port: port, user_name: user, password: pass
         | 
| 61 | 
            +
                end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                mail = Mail.deliver do 
         | 
| 64 | 
            +
                  from  "#{from_alias} <#{from}>"
         | 
| 65 | 
            +
                  to "#{to_alias} <#{to}>"
         | 
| 66 | 
            +
                  subject subject
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                  text_part do 
         | 
| 69 | 
            +
                    body message
         | 
| 70 | 
            +
                  end
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                  files.each do |file|
         | 
| 73 | 
            +
                    file = file.find if Path === file
         | 
| 74 | 
            +
                    file = file.path if Step === file
         | 
| 75 | 
            +
                  end
         | 
| 76 | 
            +
                end
         | 
| 77 | 
            +
              end
         | 
| 78 | 
            +
             | 
| 79 | 
            +
            end
         | 
| @@ -385,32 +385,6 @@ def self.add_libdir(dir=nil) | |
| 385 385 | 
             
                `ps -o rss -p #{pid || $$}`.strip.split.last.to_i
         | 
| 386 386 | 
             
              end
         | 
| 387 387 |  | 
| 388 | 
            -
              PUSHBULLET_KEY=begin
         | 
| 389 | 
            -
                               if ENV["PUSHBULLET_KEY"]
         | 
| 390 | 
            -
                                 ENV["PUSHBULLET_KEY"]
         | 
| 391 | 
            -
                               else
         | 
| 392 | 
            -
                                 config_api = File.join(ENV['HOME'], 'config/apps/pushbullet/apikey')
         | 
| 393 | 
            -
                                 if File.exist? config_api
         | 
| 394 | 
            -
                                   File.read(config_api).strip
         | 
| 395 | 
            -
                                 else
         | 
| 396 | 
            -
                                   nil
         | 
| 397 | 
            -
                                 end
         | 
| 398 | 
            -
                               end
         | 
| 399 | 
            -
                             end
         | 
| 400 | 
            -
             | 
| 401 | 
            -
              def self.notify(description, event='notification', key = nil)
         | 
| 402 | 
            -
                if PUSHBULLET_KEY.nil? and key.nil?
         | 
| 403 | 
            -
                  Log.warn "Could not notify, no PUSHBULLET_KEY"
         | 
| 404 | 
            -
                  return
         | 
| 405 | 
            -
                end
         | 
| 406 | 
            -
             | 
| 407 | 
            -
                Thread.new do
         | 
| 408 | 
            -
                  application = 'rbbt'
         | 
| 409 | 
            -
                  event ||= 'notification'
         | 
| 410 | 
            -
                  key ||= PUSHBULLET_KEY
         | 
| 411 | 
            -
                  `curl -s --header "Authorization: Bearer #{key}" -X POST https://api.pushbullet.com/v2/pushes --header 'Content-Type: application/json' --data-binary '{"type": "note", "title": "#{event}", "body": "#{description}"}'`
         | 
| 412 | 
            -
                end
         | 
| 413 | 
            -
              end
         | 
| 414 388 |  | 
| 415 389 | 
             
              def self.unzip_in_dir(file, dir)
         | 
| 416 390 | 
             
                raise "Target is not a directory: #{file}" if File.exist?(dir) and not File.directory?(dir)
         | 
| @@ -16,25 +16,6 @@ module Misc | |
| 16 16 | 
             
                end
         | 
| 17 17 | 
             
              end
         | 
| 18 18 |  | 
| 19 | 
            -
              def self.send_email(from, to, subject, message, options = {})
         | 
| 20 | 
            -
                IndiferentHash.setup(options)
         | 
| 21 | 
            -
                options = Misc.add_defaults options, :from_alias => nil, :to_alias => nil, :server => 'localhost', :port => 25, :user => nil, :pass => nil, :auth => :login
         | 
| 22 | 
            -
             | 
| 23 | 
            -
                server, port, user, pass, from_alias, to_alias, auth = Misc.process_options options, :server, :port, :user, :pass, :from_alias, :to_alias, :auth
         | 
| 24 | 
            -
             | 
| 25 | 
            -
                msg = <<-END_OF_MESSAGE
         | 
| 26 | 
            -
            From: #{from_alias} <#{from}>
         | 
| 27 | 
            -
            To: #{to_alias} <#{to}>
         | 
| 28 | 
            -
            Subject: #{subject}
         | 
| 29 | 
            -
             | 
| 30 | 
            -
            #{message}
         | 
| 31 | 
            -
            END_OF_MESSAGE
         | 
| 32 | 
            -
             | 
| 33 | 
            -
            Net::SMTP.start(server, port, server, user, pass, auth) do |smtp|
         | 
| 34 | 
            -
              smtp.send_message msg, from, to
         | 
| 35 | 
            -
            end
         | 
| 36 | 
            -
              end
         | 
| 37 | 
            -
             | 
| 38 19 | 
             
              def self.env_add(var, value, sep = ":", prepend = true)
         | 
| 39 20 | 
             
                ENV[var] ||= ""
         | 
| 40 21 | 
             
                return if ENV[var] =~ /(#{sep}|^)#{Regexp.quote value}(#{sep}|$)/
         | 
    
        data/lib/rbbt/util/misc.rb
    CHANGED
    
    
    
        data/lib/rbbt/util/open.rb
    CHANGED
    
    | @@ -678,7 +678,14 @@ module Open | |
| 678 678 | 
             
                  if Open.exists? notification_file
         | 
| 679 679 | 
             
                    key = Open.read(notification_file).strip
         | 
| 680 680 | 
             
                    key = nil if key.empty?
         | 
| 681 | 
            -
                     | 
| 681 | 
            +
                    if key.include?("@")
         | 
| 682 | 
            +
                      to = from = key
         | 
| 683 | 
            +
                      subject = "Wrote " << file
         | 
| 684 | 
            +
                      message = "Content attached"
         | 
| 685 | 
            +
                      Misc.send_email(from, to, subject, message, :files => [file])
         | 
| 686 | 
            +
                    else
         | 
| 687 | 
            +
                      Misc.notify("Wrote " << file, nil, key)
         | 
| 688 | 
            +
                    end
         | 
| 682 689 | 
             
                    Open.rm notification_file
         | 
| 683 690 | 
             
                  end
         | 
| 684 691 | 
             
                rescue
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            require File.join(File.expand_path(File.dirname(__FILE__)), '../../..', 'test_helper.rb')
         | 
| 2 | 
            +
            require 'rbbt/util/misc/communication'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            class TestCommunication < Test::Unit::TestCase
         | 
| 5 | 
            +
              def test_send_email
         | 
| 6 | 
            +
                to = from = 'mvazque2@localhost'
         | 
| 7 | 
            +
                subject = message = "Test"
         | 
| 8 | 
            +
                iii Misc.send_email(to, from, subject, message)
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
            end
         | 
| 11 | 
            +
             | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rbbt-util
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 5.33. | 
| 4 | 
            +
              version: 5.33.12
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Miguel Vazquez
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2022-04- | 
| 11 | 
            +
            date: 2022-04-20 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rake
         | 
| @@ -292,6 +292,7 @@ files: | |
| 292 292 | 
             
            - lib/rbbt/util/misc.rb
         | 
| 293 293 | 
             
            - lib/rbbt/util/misc/annotated_module.rb
         | 
| 294 294 | 
             
            - lib/rbbt/util/misc/bgzf.rb
         | 
| 295 | 
            +
            - lib/rbbt/util/misc/communication.rb
         | 
| 295 296 | 
             
            - lib/rbbt/util/misc/concurrent_stream.rb
         | 
| 296 297 | 
             
            - lib/rbbt/util/misc/development.rb
         | 
| 297 298 | 
             
            - lib/rbbt/util/misc/exceptions.rb
         | 
| @@ -531,6 +532,7 @@ files: | |
| 531 532 | 
             
            - test/rbbt/util/concurrency/test_threads.rb
         | 
| 532 533 | 
             
            - test/rbbt/util/log/test_progress.rb
         | 
| 533 534 | 
             
            - test/rbbt/util/misc/test_bgzf.rb
         | 
| 535 | 
            +
            - test/rbbt/util/misc/test_communication.rb
         | 
| 534 536 | 
             
            - test/rbbt/util/misc/test_development.rb
         | 
| 535 537 | 
             
            - test/rbbt/util/misc/test_format.rb
         | 
| 536 538 | 
             
            - test/rbbt/util/misc/test_lock.rb
         | 
| @@ -611,6 +613,7 @@ test_files: | |
| 611 613 | 
             
            - test/rbbt/util/misc/test_omics.rb
         | 
| 612 614 | 
             
            - test/rbbt/util/misc/test_pipes.rb
         | 
| 613 615 | 
             
            - test/rbbt/util/misc/test_format.rb
         | 
| 616 | 
            +
            - test/rbbt/util/misc/test_communication.rb
         | 
| 614 617 | 
             
            - test/rbbt/util/misc/test_lock.rb
         | 
| 615 618 | 
             
            - test/rbbt/util/misc/test_multipart_payload.rb
         | 
| 616 619 | 
             
            - test/rbbt/util/misc/test_bgzf.rb
         |