Sha256: 4b6baf73455d595b9307e264aab38bf5bea32391816645f392b345664ca5cc76

Contents?: true

Size: 1.41 KB

Versions: 2

Compression:

Stored size: 1.41 KB

Contents

# frozen_string_literal: true

require_relative 'reaver/version'
require_relative 'reaver/banner'
require_relative 'reaver/download'
require_relative 'reaver/metadata'
require_relative 'reaver/collection'

require 'whirly'
require 'fileutils'

module Reaver
  # Where downloads things
  CACHE_DIR = "#{ENV['HOME']}/.cache/reaver"

  # Search collection paths
  if ENV['XDG_CONFIG_HOME']
    WORKDIR = "#{ENV['XDG_CONFIG_HOME']}/reaver"
  else
    WORKDIR = "#{ENV['HOME']}/.config/reaver"
  end

  # Configure Whirly
  Whirly.configure spinner: 'bouncingBar',
    color: true,
    ambiguous_characters_width: 1

  def self.main
    FileUtils.mkdir_p(WORKDIR)

    #puts ">> Search collections in #{WORKDIR}"

    Dir.glob("#{WORKDIR}/*.yml").each do |f|
      name = f.split('/').last
      name = name.split('.').first
      workdir = "#{CACHE_DIR}/#{name}"

      FileUtils.mkdir_p(workdir)

      collection = Collection.new(f)
      collection.load_yaml

      if collection.tasks
        metadata = MetaData.new(workdir, collection)
        metadata.load_yaml
        next_download = metadata.info['next']

        if next_download < Time.new
          #puts ' >> Download time for ' + name
          FileUtils.chdir(workdir)
          #puts "  > chdir #{workdir}"
          collection.launch(metadata)
        else
          puts " > Next download > #{next_download}"
        end

        metadata.save_yaml
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
reaver-0.7.1 lib/reaver.rb
reaver-0.7.0 lib/reaver.rb