vimpk 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/vimpk/cli.rb +25 -16
- data/lib/vimpk/install.rb +4 -4
- data/lib/vimpk/list.rb +24 -0
- data/lib/vimpk/move.rb +4 -4
- data/lib/vimpk/options.rb +4 -3
- data/lib/vimpk/remove.rb +2 -2
- data/lib/vimpk/update.rb +2 -2
- data/lib/vimpk/version.rb +1 -1
- data/lib/vimpk.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d6e8ca14353f2e289dcf72b6049f1f694b7277ca702c48e95526a3bbc736a7a
|
4
|
+
data.tar.gz: efddf087e1596aa801a174dd30242bcf72913aeac50ba443976f7f0c5b64111a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78c8fbb9298b12bce49f149507c7b89b7f2437b2942f53320f42e0c79fc63843ef83e565f0cbfc716657669f19c04b2150715aa8e8a60ed959cbca410065f7df
|
7
|
+
data.tar.gz: 575726746604f123e148bee44fc9c001222df4d7dfa9bf7cb092021a08e34aadd522c23d2b949ba383c9d86dbd5cfd2c4e1891ee775ac27d0e3b6797d23d4cc5
|
data/lib/vimpk/cli.rb
CHANGED
@@ -19,6 +19,7 @@ module VimPK
|
|
19
19
|
def call
|
20
20
|
if @command
|
21
21
|
send(@command, *@argv)
|
22
|
+
exit 0
|
22
23
|
else
|
23
24
|
puts @parser.parser
|
24
25
|
end
|
@@ -37,6 +38,8 @@ module VimPK
|
|
37
38
|
case name
|
38
39
|
when "i", "install"
|
39
40
|
:install_command
|
41
|
+
when "l", "list"
|
42
|
+
:list_command
|
40
43
|
when "mv", "move"
|
41
44
|
:move_command
|
42
45
|
when "u", "update"
|
@@ -49,12 +52,18 @@ module VimPK
|
|
49
52
|
end
|
50
53
|
end
|
51
54
|
|
55
|
+
def list_command
|
56
|
+
command = List.new(@options)
|
57
|
+
list = command.call
|
58
|
+
puts list.sort_by(&:downcase)
|
59
|
+
end
|
60
|
+
|
52
61
|
def install_command(package = nil)
|
53
62
|
time = Time.now
|
54
|
-
|
55
|
-
puts "Installing #{package} to #{
|
56
|
-
|
57
|
-
puts colorize("Installed #{package} to #{
|
63
|
+
command = Install.new(package, @options)
|
64
|
+
puts "Installing #{package} to #{command.dest}…"
|
65
|
+
command.call
|
66
|
+
puts colorize("Installed #{package} to #{command.dest}. Took #{Time.now - time} seconds.", color: :green)
|
58
67
|
rescue Git::GitError => e
|
59
68
|
warn colorize("Error: #{e.message}", color: :yellow)
|
60
69
|
abort e.output.lines.map { |line| " #{line}" }.join
|
@@ -65,27 +74,27 @@ module VimPK
|
|
65
74
|
end
|
66
75
|
|
67
76
|
def move_command(name = nil)
|
68
|
-
|
69
|
-
|
70
|
-
puts colorize("Moved #{name} to #{
|
77
|
+
command = Move.new(name, @options)
|
78
|
+
command.call
|
79
|
+
puts colorize("Moved #{name} to #{command.dest}.", color: :green)
|
71
80
|
rescue Move::PackageNotFoundError, Move::MultiplePackagesFoundError, ArgumentError => e
|
72
81
|
abort colorize(e.message, color: :red)
|
73
82
|
end
|
74
83
|
|
75
84
|
def update_command
|
76
|
-
|
77
|
-
puts "Updating #{
|
85
|
+
command = Update.new(@options)
|
86
|
+
puts "Updating #{command.plugins.size} packages in #{@options[:path]}…"
|
78
87
|
start_time = Time.now
|
79
|
-
|
88
|
+
command.call
|
80
89
|
|
81
90
|
statuses = {}
|
82
91
|
|
83
|
-
while (log =
|
92
|
+
while (log = command.logs.pop)
|
84
93
|
basename = log[:basename]
|
85
94
|
statuses[basename] = log[:log]
|
86
95
|
end
|
87
96
|
|
88
|
-
basenames =
|
97
|
+
basenames = command.plugins.map { |dir| File.basename(dir) }.sort_by(&:downcase)
|
89
98
|
|
90
99
|
max_name_length = statuses.keys.map(&:length).max
|
91
100
|
|
@@ -97,11 +106,11 @@ module VimPK
|
|
97
106
|
end
|
98
107
|
end
|
99
108
|
|
100
|
-
if statuses.size <
|
101
|
-
puts "The remaining #{
|
109
|
+
if statuses.size < command.jobs.size
|
110
|
+
puts "The remaining #{command.jobs.size - statuses.size} plugins are up to date."
|
102
111
|
end
|
103
112
|
|
104
|
-
puts colorize("Finished updating #{
|
113
|
+
puts colorize("Finished updating #{command.jobs.size} plugins. Took #{Time.now - start_time} seconds.")
|
105
114
|
|
106
115
|
if statuses.size.nonzero?
|
107
116
|
print "Display diffs? (Y/n) "
|
@@ -120,7 +129,7 @@ module VimPK
|
|
120
129
|
end
|
121
130
|
|
122
131
|
def remove_command(name = nil)
|
123
|
-
Remove.new(name, @options
|
132
|
+
Remove.new(name, @options).call
|
124
133
|
|
125
134
|
puts colorize("Package #{name} removed.", color: :green)
|
126
135
|
rescue ArgumentError, VimPK::Remove::PackageNotFoundError => e
|
data/lib/vimpk/install.rb
CHANGED
@@ -6,11 +6,11 @@ module VimPK
|
|
6
6
|
|
7
7
|
attr_reader :dest
|
8
8
|
|
9
|
-
def initialize(package,
|
9
|
+
def initialize(package, options)
|
10
10
|
@package = package || raise(ArgumentError, "Package name is required")
|
11
|
-
@path = path
|
12
|
-
@pack = pack
|
13
|
-
@type = type
|
11
|
+
@path = options.path
|
12
|
+
@pack = options.pack || options.default_pack
|
13
|
+
@type = options.type || options.default_type
|
14
14
|
@dest = File.join(@path, @pack, @type, File.basename(@package))
|
15
15
|
@source = "https://github.com/#{package}.git"
|
16
16
|
@git = Git
|
data/lib/vimpk/list.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require "fileutils"
|
2
|
+
|
3
|
+
module VimPK
|
4
|
+
class List
|
5
|
+
PackageNotFoundError = Class.new(StandardError)
|
6
|
+
|
7
|
+
attr_reader :dest
|
8
|
+
|
9
|
+
def initialize(options)
|
10
|
+
@path = options.path
|
11
|
+
@pack = options.pack || "*"
|
12
|
+
@type = options.type || "{start,opt}"
|
13
|
+
end
|
14
|
+
|
15
|
+
def call
|
16
|
+
pattern = File.join(@path, @pack, @type, "*")
|
17
|
+
glob = Dir.glob(pattern)
|
18
|
+
|
19
|
+
raise PackageNotFoundError, "No packages were found in #{pattern}." if glob.empty?
|
20
|
+
|
21
|
+
glob
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/vimpk/move.rb
CHANGED
@@ -7,12 +7,12 @@ module VimPK
|
|
7
7
|
|
8
8
|
attr_reader :dest
|
9
9
|
|
10
|
-
def initialize(name,
|
10
|
+
def initialize(name, options)
|
11
11
|
@name = name || raise(ArgumentError, "Package name is required")
|
12
12
|
raise ArgumentError, "New pack or type is required" unless pack || type
|
13
|
-
@path = path
|
14
|
-
@pack = pack
|
15
|
-
@type = type
|
13
|
+
@path = options.path
|
14
|
+
@pack = options.pack
|
15
|
+
@type = options.type
|
16
16
|
end
|
17
17
|
|
18
18
|
def call
|
data/lib/vimpk/options.rb
CHANGED
@@ -10,11 +10,11 @@ module VimPK
|
|
10
10
|
DEFAULT_TYPE = "start"
|
11
11
|
DEFAULT_PACK = "plugins"
|
12
12
|
|
13
|
-
DefaultOptions = Struct.new(:path, :pack, :type)
|
13
|
+
DefaultOptions = Struct.new(:path, :pack, :type, :default_pack, :default_type)
|
14
14
|
|
15
15
|
def initialize(argv)
|
16
16
|
@argv = argv
|
17
|
-
@options = DefaultOptions.new(DEFAULT_PATH, DEFAULT_PACK, DEFAULT_TYPE)
|
17
|
+
@options = DefaultOptions.new(DEFAULT_PATH, nil, nil, DEFAULT_PACK, DEFAULT_TYPE)
|
18
18
|
|
19
19
|
@parser = OptionParser.new do |parser|
|
20
20
|
parser.banner = "Usage: #{parser.program_name} [options] [command [options]"
|
@@ -54,7 +54,8 @@ module VimPK
|
|
54
54
|
parser.separator ""
|
55
55
|
parser.separator "Commands:"
|
56
56
|
parser.separator " i|install REPO/NAME [--opt|--start] [--pack=PATH] [--path=PATH] Install a package"
|
57
|
-
parser.separator "
|
57
|
+
parser.separator " l|list [--opt|--start] [--pack=PATH] [--path=PATH] List packages"
|
58
|
+
parser.separator " mv|move NAME [--opt|--start] [--pack=PATH] Move a package"
|
58
59
|
parser.separator " u|update Update all packages"
|
59
60
|
parser.separator " rm|remove NAME Remove all occurrences of a package"
|
60
61
|
end
|
data/lib/vimpk/remove.rb
CHANGED
@@ -4,9 +4,9 @@ module VimPK
|
|
4
4
|
class Remove
|
5
5
|
PackageNotFoundError = Class.new(StandardError)
|
6
6
|
|
7
|
-
def initialize(name,
|
7
|
+
def initialize(name, options)
|
8
8
|
@name = name || raise(ArgumentError, "Package name is required")
|
9
|
-
@path = path
|
9
|
+
@path = options.path
|
10
10
|
end
|
11
11
|
|
12
12
|
def call
|
data/lib/vimpk/update.rb
CHANGED
@@ -4,8 +4,8 @@ module VimPK
|
|
4
4
|
|
5
5
|
attr_reader :jobs, :logs, :plugins
|
6
6
|
|
7
|
-
def initialize(
|
8
|
-
@pack_dir = File.expand_path(path)
|
7
|
+
def initialize(options)
|
8
|
+
@pack_dir = File.expand_path(options.path)
|
9
9
|
@logs = Queue.new
|
10
10
|
@pool = ThreadPool.new
|
11
11
|
@plugins = Dir.glob(File.join(@pack_dir, "*", "{start,opt}", "*", ".git")).sort.map(&File.method(:dirname))
|
data/lib/vimpk/version.rb
CHANGED
data/lib/vimpk.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vimpk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Usewicz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-03-
|
11
|
+
date: 2024-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|
@@ -27,6 +27,7 @@ files:
|
|
27
27
|
- lib/vimpk/git.rb
|
28
28
|
- lib/vimpk/install.rb
|
29
29
|
- lib/vimpk/job.rb
|
30
|
+
- lib/vimpk/list.rb
|
30
31
|
- lib/vimpk/move.rb
|
31
32
|
- lib/vimpk/options.rb
|
32
33
|
- lib/vimpk/remove.rb
|