Sha256: 1eec8984a5294c31a445ba9cede76fffe9888456ad0a6f98da1fd7478921163f

Contents?: true

Size: 880 Bytes

Versions: 3

Compression:

Stored size: 880 Bytes

Contents

module Getch
  module Gentoo
    class Use
      def initialize(pkg = nil)
        @use_dir = "#{MOUNTPOINT}/etc/portage/package.use"
        @pkg = pkg
        @file = @pkg ? @pkg.match(/[\w]+$/) : nil
        @make = "#{MOUNTPOINT}/etc/portage/make.conf"
      end

      def add(*flags)
        @flags = flags.join(' ')
        write
      end

      def add_global(*flags)
        @flags = flags
        write_global
      end

      private

      def write
        content = "#{@pkg} #{@flags}\n"
        File.write("#{@use_dir}/#{@file}", content, mode: 'w')
      end

      def write_global
        list = []

        @flags.each { |f|
          unless Helpers::grep?(@make, /#{f}/)
            list << f
          end
        }

        use = list.join(' ')
        line = "USE=\"${USE} #{use}\"\n"
        File.write(@make, line, mode: 'a')
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
getch-0.1.6 lib/getch/gentoo/use.rb
getch-0.1.5 lib/getch/gentoo/use.rb
getch-0.1.3 lib/getch/gentoo/use.rb