vvm-rb 0.2.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,68 +0,0 @@
1
- require 'fileutils'
2
-
3
- class Installer
4
- def initialize(version, conf, silent = false)
5
- vvmopt = ENV['VVMOPT']
6
- @silent = silent ? '> /dev/null 2>&1' : ''
7
- @version = version
8
- @conf = conf.flatten.empty? && vvmopt ? vvmopt.split(' ') : conf
9
- end
10
-
11
- def self.fetch
12
- FileUtils.mkdir_p(get_repos_dir)
13
- repos_dir = get_vimorg_dir
14
- system("hg -q clone #{VIM_URI} #{repos_dir}") unless File.exist?(repos_dir)
15
- end
16
-
17
- def self.pull
18
- Dir.chdir(get_vimorg_dir) { system('hg -q pull') }
19
- end
20
-
21
- def checkout
22
- src_dir = get_src_dir
23
- FileUtils.mkdir_p(src_dir)
24
- unless File.exist?(get_src_dir(@version))
25
- archive = "hg archive -t tar -r #{@version} -p #{@version} -"
26
- expand = "(cd #{src_dir} && tar xf -)"
27
- Dir.chdir get_vimorg_dir do
28
- system("#{archive} | #{expand} #{@silent}")
29
- end
30
- end
31
- end
32
-
33
- def configure
34
- vims_dir = get_vims_dir(@version)
35
- src_dir = get_src_dir(@version)
36
- default = "--prefix=#{vims_dir}"
37
- Dir.chdir src_dir do
38
- system("./configure #{default} #{@conf.join(' ')} #{@silent}")
39
- end
40
- end
41
-
42
- def make_clean
43
- src_dir = get_src_dir(@version)
44
- Dir.chdir src_dir do
45
- system("make clean #{@silent}")
46
- end
47
- end
48
-
49
- def make_install
50
- src_dir = get_src_dir(@version)
51
- Dir.chdir src_dir do
52
- system("make all install #{@silent}")
53
- end
54
- end
55
-
56
- def self.cp_etc
57
- current_login = get_login_file
58
- path = File.join(File.dirname(__FILE__), '..', '..', 'etc', 'login')
59
- login = File.expand_path(path)
60
- if !File.exist?(current_login)
61
- etc_dir = get_etc_dir
62
- FileUtils.mkdir_p(etc_dir)
63
- FileUtils.cp(login, etc_dir)
64
- elsif !FileUtils.compare_file(login, current_login)
65
- FileUtils.cp(login, get_etc_dir)
66
- end
67
- end
68
- end
@@ -1,17 +0,0 @@
1
- require 'fileutils'
2
-
3
- class Switcher
4
- def initialize(version)
5
- @version = version
6
- end
7
-
8
- def use
9
- current = get_current_dir
10
- FileUtils.rm(current) if File.exist?(current)
11
- unless @version == 'system'
12
- vims_dir = get_vims_dir(@version)
13
- abort "#{@version} is not installed." unless File.exist?(vims_dir)
14
- FileUtils.ln_s(vims_dir, current)
15
- end
16
- end
17
- end
@@ -1,21 +0,0 @@
1
- require 'fileutils'
2
-
3
- class Uninstaller
4
- def initialize(version)
5
- @version = version
6
- end
7
-
8
- def uninstall
9
- current = get_current_dir
10
- vims_dir = get_vims_dir(@version)
11
- src_dir = get_src_dir(@version)
12
- if File.exist?(current)
13
- target = File.readlink(current)
14
- if target == vims_dir
15
- abort "#{@version} can not be uninstalled; it is currently used."
16
- end
17
- end
18
- FileUtils.rm_rf(src_dir) if File.exist?(src_dir)
19
- FileUtils.rm_rf(vims_dir) if File.exist?(vims_dir)
20
- end
21
- end
@@ -1,44 +0,0 @@
1
- module Validator
2
- module_function
3
-
4
- def has_hg?
5
- unless Kernel.system('which hg > /dev/null')
6
- abort 'mercurial is required to install.'
7
- end
8
- return true
9
- end
10
-
11
- def version?
12
- if get_version.nil?
13
- abort 'undefined vim version. please run [ vvm-rb list ].'
14
- end
15
- return true
16
- end
17
-
18
- def new_version?(version = get_version)
19
- abort "#{version} is already installed." if version_include?(version)
20
- return true
21
- end
22
-
23
- def has_version?(version = get_version)
24
- abort "#{version} is not installed." unless version_include?(version)
25
- return true
26
- end
27
-
28
- private
29
-
30
- def get_version
31
- version_regex = /\Av7-.+\z|\A(\d\.\d(a|b){0,1}(\.\d+){0,1})\z/
32
- regex = /(\Astart\z|\Atip\z|\Asystem\z|\Alatest\z|#{version_regex})/
33
- version = $*.find { |v| v =~ regex }
34
- return Version.format(version)
35
- end
36
-
37
- def version_include?(version)
38
- return Version.versions.include?(version) || use_system?(version)
39
- end
40
-
41
- def use_system?(version)
42
- return version == 'system' && $*.include?('use')
43
- end
44
- end
@@ -1,41 +0,0 @@
1
- class Version
2
- def self.list
3
- Dir.chdir(get_vimorg_dir) do
4
- list = `hg tags`.split.reverse
5
- return list.values_at(* list.each_index.select { |i| i.odd? })
6
- end
7
- end
8
-
9
- def self.versions
10
- output = []
11
- vims_dir = get_vims_dir
12
- return output unless File.exist?(vims_dir)
13
- Dir.glob(File.join(vims_dir, 'v*')).sort.each do |d|
14
- output << File.basename(d)
15
- end
16
- return output
17
- end
18
-
19
- def self.latest
20
- return list.select { |v| v =~ /\Av7-.+\z/ }.last
21
- end
22
-
23
- def self.current
24
- c = get_current_dir
25
- return File.exist?(c) ? File.basename(File.readlink(c)) : 'system'
26
- end
27
-
28
- def self.convert(version)
29
- return "v#{version.gsub(/\./, '-')}"
30
- end
31
-
32
- def self.format(version)
33
- case version
34
- when /\Alatest\z/
35
- version = latest
36
- when /\A(\d\.\d(a|b){0,1}(\.\d+){0,1})\z/
37
- version = convert(version)
38
- end
39
- return version
40
- end
41
- end
data/lib/vvm-rb.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'vvm-rb/base'
2
- require 'vvm-rb/constants'
3
- require 'vvm-rb/installer'
4
- require 'vvm-rb/uninstaller'
5
- require 'vvm-rb/switcher'
6
- require 'vvm-rb/validator'
7
- require 'vvm-rb/accesser'
8
- require 'vvm-rb/version'
9
-
10
- module VvmRb
11
- include Accesser
12
- include Validator
13
- end
@@ -1,40 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'Accesser' do
4
- it 'can access vvm-rb home directory' do
5
- expect(File.exist?(get_dot_dir)).to be_true
6
- end
7
-
8
- it 'can access etc directory' do
9
- expect(File.exist?(get_etc_dir)).to be_true
10
- end
11
-
12
- it 'can access repos directory' do
13
- expect(File.exist?(get_repos_dir)).to be_true
14
- end
15
-
16
- it 'can access src directory' do
17
- expect(File.exist?(get_src_dir)).to be_true
18
- end
19
-
20
- it 'can access vims directory' do
21
- expect(File.exist?(get_vims_dir)).to be_true
22
- end
23
-
24
- it 'can access vimorg directory' do
25
- expect(File.exist?(get_vimorg_dir)).to be_true
26
- end
27
-
28
- it 'can access login file' do
29
- expect(File.exist?(get_login_file)).to be_true
30
- end
31
-
32
- context 'of current directory' do
33
- before { Switcher.new(VERSION1).use }
34
- after { Switcher.new('system').use }
35
-
36
- it 'can access current directory' do
37
- expect(File.exist?(get_current_dir)).to be_true
38
- end
39
- end
40
- end