Module: Travis::Tools::Completion

Extended by:
Completion
Includes:
FileUtils
Included in:
Completion
Defined in:
lib/travis/tools/completion.rb

Constant Summary collapse

RCS =
['.zshrc', '.bashrc'].map { |f| File.expand_path(f, ENV['HOME']) }

Instance Method Summary collapse

Instance Method Details

#cmp_fileObject


17
18
19
# File 'lib/travis/tools/completion.rb', line 17

def cmp_file
  File.expand_path('travis.sh', config_path)
end

#compileObject


46
47
48
49
50
51
# File 'lib/travis/tools/completion.rb', line 46

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

#completion_installed?Boolean

Returns:

  • (Boolean)

37
38
39
40
41
42
43
44
# File 'lib/travis/tools/completion.rb', line 37

def completion_installed?
  source = "source " << config_path
  RCS.each do |file|
    next unless File.exist? file and File.writable? file
    return false unless File.read(file).include? source
  end
  true
end

#config_pathObject


13
14
15
# File 'lib/travis/tools/completion.rb', line 13

def config_path
  ENV.fetch('TRAVIS_CONFIG_PATH') { File.expand_path('.travis', ENV['HOME']) }
end

#install_completionObject


21
22
23
24
25
26
27
28
29
30
# File 'lib/travis/tools/completion.rb', line 21

def install_completion
  update_completion
  source = "source " << cmp_file

  RCS.each do |file|
    next unless File.exist? file and File.writable? file
    next if File.read(file).include? source
    File.open(file, "a") { |f| f.puts("", "# added by travis gem", "[ -f #{cmp_file} ] && #{source}") }
  end
end

#update_completionObject


32
33
34
35
# File 'lib/travis/tools/completion.rb', line 32

def update_completion
  mkdir_p(config_path)
  cp(Assets['travis.sh'], cmp_file)
end