Sha256: 1c393a8e05876791b1d65ec99514eabc2b8af20f2c2c8b3944938b9203833300

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

module WGif
  class Installer

    DEPENDENCIES = [['ffmpeg', 'ffmpeg'],
                    ['imagemagick', 'convert']]

    def run
      if dependencies_installed?
        puts "All dependencies are installed. Go make a GIF."
        Kernel.exit 0
      end
      if homebrew_installed?
        DEPENDENCIES.each do |dependency, binary|
          install(dependency, binary)
        end
      else
        puts "WGif can't find Homebrew. Visit http://brew.sh/ to get it."
        Kernel.exit 1
      end
      Kernel.exit 0
    end

    def dependencies_installed?
      DEPENDENCIES.map {|_, binary| installed?(binary)}.inject(:&)
    end

    def homebrew_installed?
      Kernel.system 'brew info > /dev/null'
    end

    def install(dependency, binary)
      unless installed?(binary)
        puts "Installing #{dependency}..."
        Kernel.system "brew install #{dependency}"
        puts "Successfully installed #{dependency}."
      end
    end

    def installed?(binary)
      Kernel.system "which #{binary} > /dev/null"
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
wgif-0.2.0 lib/wgif/installer.rb
wgif-0.0.1 lib/wgif/installer.rb