vimpk 0.1.2 → 0.3.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/.overcommit.yml +33 -0
- data/lib/vimpk/cli.rb +24 -7
- data/lib/vimpk/colorizer.rb +2 -0
- data/lib/vimpk/move.rb +41 -0
- data/lib/vimpk/options.rb +1 -0
- data/lib/vimpk/remove.rb +2 -2
- data/lib/vimpk/version.rb +1 -1
- data/lib/vimpk.rb +1 -0
- data/vimpk.gemspec +43 -0
- metadata +10 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3352cab20c957f4b4fc580b6d9f2f0c91d0021cac3713ab6294111192ce5167d
|
4
|
+
data.tar.gz: 1044a2130c51433400d29c970be3e841d86469ab7dd5ddfeab615b3115a88626
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31a0432618e7f85059b10d25b7aa2034ed18bf64b077b04665e08ae8f216402a8195a343ea53767911232af0908d7e2043e8ea3e8d234a81dbda53badac9f53f
|
7
|
+
data.tar.gz: 6ed9798aedf9bfd255abffe3d93acb6d9aa5e3378c2462a4be569b55b10bc40b840cf8d3242a04fcd2f61098dc99cdfcf5d6b6fd68c245163170c6dea6071453
|
data/.overcommit.yml
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
---
|
2
|
+
gemfile: Gemfile
|
3
|
+
|
4
|
+
PreCommit:
|
5
|
+
TrailingWhitespace:
|
6
|
+
enabled: true
|
7
|
+
YamlSyntax:
|
8
|
+
enabled: true
|
9
|
+
|
10
|
+
CommitMsg:
|
11
|
+
CapitalizedSubject:
|
12
|
+
enabled: false
|
13
|
+
EmptyMessage:
|
14
|
+
enabled: true
|
15
|
+
MessageFormat:
|
16
|
+
enabled: true
|
17
|
+
pattern: "^(feat|fix|docs|style|refactor|perf|test|chore|revert)?: [A-Z].*"
|
18
|
+
sample_message: "feat: Add new feature"
|
19
|
+
TrailingPeriod:
|
20
|
+
enabled: true
|
21
|
+
|
22
|
+
PostCheckout:
|
23
|
+
ALL:
|
24
|
+
quiet: true
|
25
|
+
BundleInstall:
|
26
|
+
enabled: true
|
27
|
+
quiet: true
|
28
|
+
|
29
|
+
PrePush:
|
30
|
+
ALL:
|
31
|
+
quiet: true
|
32
|
+
Minitest:
|
33
|
+
enabled: true
|
data/lib/vimpk/cli.rb
CHANGED
@@ -12,8 +12,8 @@ module VimPK
|
|
12
12
|
@options = @parser.parse
|
13
13
|
@command = determine_command
|
14
14
|
rescue OptionParser::MissingArgument, OptionParser::InvalidOption => e
|
15
|
-
|
16
|
-
abort
|
15
|
+
warn e.message
|
16
|
+
abort help_message
|
17
17
|
end
|
18
18
|
|
19
19
|
def call
|
@@ -24,6 +24,12 @@ module VimPK
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
+
private
|
28
|
+
|
29
|
+
def help_message
|
30
|
+
"Use --help for usage information"
|
31
|
+
end
|
32
|
+
|
27
33
|
def determine_command
|
28
34
|
return nil if @argv.empty?
|
29
35
|
|
@@ -31,12 +37,15 @@ module VimPK
|
|
31
37
|
case name
|
32
38
|
when "i", "install"
|
33
39
|
:install_command
|
40
|
+
when "mv", "move"
|
41
|
+
:move_command
|
34
42
|
when "u", "update"
|
35
43
|
:update_command
|
36
44
|
when "rm", "remove"
|
37
45
|
:remove_command
|
38
46
|
else
|
39
|
-
|
47
|
+
warn colorize("Unknown command: #{name}", color: :yellow)
|
48
|
+
abort help_message
|
40
49
|
end
|
41
50
|
end
|
42
51
|
|
@@ -47,12 +56,20 @@ module VimPK
|
|
47
56
|
install.call
|
48
57
|
puts colorize("Installed #{package} to #{install.dest}. Took #{Time.now - time} seconds.", color: :green)
|
49
58
|
rescue Git::GitError => e
|
50
|
-
|
59
|
+
warn colorize("Error: #{e.message}", color: :yellow)
|
51
60
|
abort e.output.lines.map { |line| " #{line}" }.join
|
52
61
|
rescue Install::PackageExistsError => e
|
53
|
-
|
62
|
+
abort colorize("Error: #{e.message}", color: :red)
|
54
63
|
rescue ArgumentError => e
|
55
|
-
|
64
|
+
abort colorize("Error: #{e.message}", color: :red)
|
65
|
+
end
|
66
|
+
|
67
|
+
def move_command(name = nil)
|
68
|
+
move = Move.new(name, @options[:path], @options[:pack], @options[:type])
|
69
|
+
move.call
|
70
|
+
puts colorize("Moved #{name} to #{move.dest}.", color: :green)
|
71
|
+
rescue Move::PackageNotFoundError, Move::MultiplePackagesFoundError, ArgumentError => e
|
72
|
+
abort colorize(e.message, color: :red)
|
56
73
|
end
|
57
74
|
|
58
75
|
def update_command
|
@@ -106,7 +123,7 @@ module VimPK
|
|
106
123
|
Remove.new(name, @options[:path]).call
|
107
124
|
|
108
125
|
puts colorize("Package #{name} removed.", color: :green)
|
109
|
-
rescue ArgumentError, VimPK::Remove::
|
126
|
+
rescue ArgumentError, VimPK::Remove::PackageNotFoundError => e
|
110
127
|
abort colorize(e.message, color: :red)
|
111
128
|
end
|
112
129
|
end
|
data/lib/vimpk/colorizer.rb
CHANGED
@@ -3,6 +3,7 @@ module VimPK
|
|
3
3
|
private
|
4
4
|
|
5
5
|
def colorize_diff(line)
|
6
|
+
return line if ENV["NO_COLOR"]
|
6
7
|
case line
|
7
8
|
when /^diff --git/
|
8
9
|
"\e[1;34m#{line}\e[0m"
|
@@ -24,6 +25,7 @@ module VimPK
|
|
24
25
|
end
|
25
26
|
|
26
27
|
def colorize(text, color: :green)
|
28
|
+
return text if ENV["NO_COLOR"]
|
27
29
|
case color
|
28
30
|
when :green
|
29
31
|
"\e[32m#{text}\e[0m"
|
data/lib/vimpk/move.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
require "fileutils"
|
2
|
+
|
3
|
+
module VimPK
|
4
|
+
class Move
|
5
|
+
PackageNotFoundError = Class.new(StandardError)
|
6
|
+
MultiplePackagesFoundError = Class.new(StandardError)
|
7
|
+
|
8
|
+
attr_reader :dest
|
9
|
+
|
10
|
+
def initialize(name, path, pack = nil, type = nil)
|
11
|
+
@name = name || raise(ArgumentError, "Package name is required")
|
12
|
+
raise ArgumentError, "New pack or type is required" unless pack || type
|
13
|
+
@path = path
|
14
|
+
@pack = pack
|
15
|
+
@type = type
|
16
|
+
end
|
17
|
+
|
18
|
+
def call
|
19
|
+
glob = Dir.glob(File.join(@path, "*", "{start,opt}", @name))
|
20
|
+
|
21
|
+
if glob.empty?
|
22
|
+
raise PackageNotFoundError, "Package #{@name} not found in #{@path}."
|
23
|
+
elsif glob.size > 1
|
24
|
+
raise MultiplePackagesFoundError, "Multiple packages #{@name} found in #{glob.join(" and ")}."
|
25
|
+
else
|
26
|
+
source = glob.first
|
27
|
+
current_type = File.basename(File.dirname(source))
|
28
|
+
current_pack = File.basename(File.dirname(File.dirname(source)))
|
29
|
+
@dest = File.join(@path, @pack || current_pack, @type || current_type, @name)
|
30
|
+
|
31
|
+
if File.exist?(dest)
|
32
|
+
raise ArgumentError, "Package #{@name} already exists in #{dest}."
|
33
|
+
else
|
34
|
+
FileUtils.mkdir_p(File.dirname(dest))
|
35
|
+
end
|
36
|
+
|
37
|
+
FileUtils.mv(source, dest)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/vimpk/options.rb
CHANGED
@@ -54,6 +54,7 @@ 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 " mv|move Move a package"
|
57
58
|
parser.separator " u|update Update all packages"
|
58
59
|
parser.separator " rm|remove NAME Remove all occurrences of a package"
|
59
60
|
end
|
data/lib/vimpk/remove.rb
CHANGED
@@ -2,7 +2,7 @@ require "fileutils"
|
|
2
2
|
|
3
3
|
module VimPK
|
4
4
|
class Remove
|
5
|
-
|
5
|
+
PackageNotFoundError = Class.new(StandardError)
|
6
6
|
|
7
7
|
def initialize(name, path)
|
8
8
|
@name = name || raise(ArgumentError, "Package name is required")
|
@@ -13,7 +13,7 @@ module VimPK
|
|
13
13
|
glob = Dir.glob(File.join(@path, "*", "{start,opt}", @name))
|
14
14
|
|
15
15
|
if glob.empty?
|
16
|
-
raise
|
16
|
+
raise PackageNotFoundError, "Package #{@name} not found in #{@path}."
|
17
17
|
else
|
18
18
|
glob.each do |dir|
|
19
19
|
FileUtils.rm_rf(dir)
|
data/lib/vimpk/version.rb
CHANGED
data/lib/vimpk.rb
CHANGED
data/vimpk.gemspec
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/vimpk/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "vimpk"
|
7
|
+
spec.version = VimPK::VERSION
|
8
|
+
spec.authors = ["Piotr Usewicz"]
|
9
|
+
spec.email = ["piotr@layer22.com"]
|
10
|
+
|
11
|
+
spec.summary = "VimPK is a tool for managing Vim plugins via packages."
|
12
|
+
spec.homepage = "https://github.com/pusewicz/vimpk"
|
13
|
+
spec.license = "MIT"
|
14
|
+
|
15
|
+
if RUBY_VERSION >= "2.7"
|
16
|
+
spec.required_ruby_version = ">= 2.6.0"
|
17
|
+
end
|
18
|
+
|
19
|
+
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
20
|
+
|
21
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
22
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
23
|
+
spec.metadata["changelog_uri"] = File.join(spec.homepage, "blob/main/CHANGELOG.md")
|
24
|
+
spec.metadata["github_repo"] = "https://github.com/pusewicz/vimpk.git"
|
25
|
+
|
26
|
+
# Specify which files should be added to the gem when it is released.
|
27
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
28
|
+
spec.files = Dir.chdir(__dir__) do
|
29
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
30
|
+
(File.expand_path(f) == __FILE__) ||
|
31
|
+
f.start_with?(*%w[bin/ test/ spec/ features/ .git .github appveyor Gemfile .standard.yml CHANGELOG.md CODE_OF_CONDUCT.md README.md Rakefile])
|
32
|
+
end
|
33
|
+
end
|
34
|
+
spec.bindir = "exe"
|
35
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
36
|
+
spec.require_paths = ["lib"]
|
37
|
+
|
38
|
+
# Uncomment to register a new dependency of your gem
|
39
|
+
# spec.add_dependency "example-gem", "~> 1.0"
|
40
|
+
|
41
|
+
# For more information and examples about making a new gem, check out our
|
42
|
+
# guide at: https://bundler.io/guides/creating_gem.html
|
43
|
+
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vimpk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Usewicz
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-03-
|
11
|
+
date: 2024-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
13
|
+
description:
|
14
14
|
email:
|
15
15
|
- piotr@layer22.com
|
16
16
|
executables:
|
@@ -18,6 +18,7 @@ executables:
|
|
18
18
|
extensions: []
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
|
+
- ".overcommit.yml"
|
21
22
|
- LICENSE.txt
|
22
23
|
- exe/vimpk
|
23
24
|
- lib/vimpk.rb
|
@@ -26,11 +27,13 @@ files:
|
|
26
27
|
- lib/vimpk/git.rb
|
27
28
|
- lib/vimpk/install.rb
|
28
29
|
- lib/vimpk/job.rb
|
30
|
+
- lib/vimpk/move.rb
|
29
31
|
- lib/vimpk/options.rb
|
30
32
|
- lib/vimpk/remove.rb
|
31
33
|
- lib/vimpk/thread_pool.rb
|
32
34
|
- lib/vimpk/update.rb
|
33
35
|
- lib/vimpk/version.rb
|
36
|
+
- vimpk.gemspec
|
34
37
|
homepage: https://github.com/pusewicz/vimpk
|
35
38
|
licenses:
|
36
39
|
- MIT
|
@@ -40,7 +43,7 @@ metadata:
|
|
40
43
|
source_code_uri: https://github.com/pusewicz/vimpk
|
41
44
|
changelog_uri: https://github.com/pusewicz/vimpk/blob/main/CHANGELOG.md
|
42
45
|
github_repo: https://github.com/pusewicz/vimpk.git
|
43
|
-
post_install_message:
|
46
|
+
post_install_message:
|
44
47
|
rdoc_options: []
|
45
48
|
require_paths:
|
46
49
|
- lib
|
@@ -55,8 +58,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
55
58
|
- !ruby/object:Gem::Version
|
56
59
|
version: '0'
|
57
60
|
requirements: []
|
58
|
-
rubygems_version: 3.5.
|
59
|
-
signing_key:
|
61
|
+
rubygems_version: 3.5.3
|
62
|
+
signing_key:
|
60
63
|
specification_version: 4
|
61
64
|
summary: VimPK is a tool for managing Vim plugins via packages.
|
62
65
|
test_files: []
|