Sha256: 0400fa2ce2bff4aa32821d89bded809cf3f4e329375f60e13721883065aba50b
Contents?: true
Size: 1.49 KB
Versions: 2
Compression:
Stored size: 1.49 KB
Contents
# frozen_string_literal: true require 'travis/tools/assets' require 'travis/cli' require 'fileutils' require 'erb' module Travis module Tools module Completion RCS = ['.zshrc', '.bashrc'].map { |f| File.expand_path(f, ENV['HOME']) } include FileUtils module_function def config_path ENV.fetch('TRAVIS_CONFIG_PATH') { File.expand_path('.travis', ENV['HOME']) } end def cmp_file File.expand_path('travis.sh', config_path) end def install_completion update_completion source = 'source ' << cmp_file RCS.each do |file| next unless File.exist?(file) && File.writable?(file) next if File.read(file).include? source File.open(file, 'a') { |f| f.puts('', '# added by travis gem', "[ ! -s #{cmp_file} ] || #{source}") } end end def update_completion mkdir_p(config_path) cp(Assets['travis.sh'], cmp_file) end def completion_installed? source = 'source ' << config_path RCS.each do |file| next unless File.exist?(file) && File.writable?(file) return false unless File.read(file).include? source end true end def compile commands = Travis::CLI.commands.sort_by { |c| c.command_name } template = Assets.read('travis.sh.erb') source = ERB.new(template).result(binding).gsub(/^ +\n/, '') File.write(Assets['travis.sh'], source) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
travis-1.13.0 | lib/travis/tools/completion.rb |
travis-1.12.0 | lib/travis/tools/completion.rb |