skillme 0.2.1 → 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/lib/rubygems_plugin.rb +11 -0
- data/lib/skillme/deps.rb +15 -38
- data/lib/skillme/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 35946eed35490e4da444050875d432a2232615342ad3b377634f0a81634a6f43
|
|
4
|
+
data.tar.gz: d1a162023793a9ff39d0a052d2903b062046eacd77e7af2df05dcf078eb6c97e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1f653de4b4bb5ec0cda7ce8ebb9714a8c0a36bb3c838785b236c1a1da13d9ec3eb39e77166224ac04e11a3e1b5f7b268eeee8ec2d4de2e98a228666b907447aa
|
|
7
|
+
data.tar.gz: d5b3888aaf80888ae3dc93a38c8c01b1a79157cc8e5f41995d9e72753e7a3e58996068045301cab8cd3a61d48f52f18f77f051671ff11e1b6a144dd744982901
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Gem.pre_uninstall do |uninstaller|
|
|
2
|
+
next unless uninstaller.spec.name == "skillme"
|
|
3
|
+
|
|
4
|
+
skills_dir = File.expand_path("~/.claude/skills")
|
|
5
|
+
if Dir.exist?(skills_dir) && !(Dir.entries(skills_dir) - %w[. ..]).empty?
|
|
6
|
+
installed = (Dir.entries(skills_dir) - %w[. ..]).join(", ")
|
|
7
|
+
puts "Removing installed skills: #{installed}"
|
|
8
|
+
FileUtils.rm_rf(skills_dir)
|
|
9
|
+
puts "Cleaned up #{skills_dir}"
|
|
10
|
+
end
|
|
11
|
+
end
|
data/lib/skillme/deps.rb
CHANGED
|
@@ -22,6 +22,17 @@ module Skillme
|
|
|
22
22
|
system("command -v #{cmd} > /dev/null 2>&1")
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
+
def resolve!(dependencies)
|
|
26
|
+
return unless dependencies
|
|
27
|
+
|
|
28
|
+
if dependencies['npm']
|
|
29
|
+
ensure_node!
|
|
30
|
+
dependencies['npm'].each { |pkg| ensure_npm_package!(pkg) }
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
private
|
|
35
|
+
|
|
25
36
|
def ensure_node!
|
|
26
37
|
return if command_exists?('node') && command_exists?('npm')
|
|
27
38
|
|
|
@@ -49,12 +60,9 @@ module Skillme
|
|
|
49
60
|
end
|
|
50
61
|
|
|
51
62
|
def ensure_npm_package!(package)
|
|
52
|
-
|
|
53
|
-
bin_name = package.split('/').last.sub(/^cli$/, 'gws')
|
|
63
|
+
bin_name = package.split('/').last.sub(/^cli$/, package.split('/').first.tr('@', ''))
|
|
54
64
|
return if command_exists?(bin_name)
|
|
55
65
|
|
|
56
|
-
ensure_node!
|
|
57
|
-
|
|
58
66
|
puts "Installing #{package}..."
|
|
59
67
|
unless system("npm install -g #{package} > /dev/null 2>&1")
|
|
60
68
|
abort "Failed to install #{package}. Try manually: npm install -g #{package}"
|
|
@@ -63,52 +71,21 @@ module Skillme
|
|
|
63
71
|
puts "#{package} installed successfully."
|
|
64
72
|
end
|
|
65
73
|
|
|
66
|
-
def resolve!(dependencies)
|
|
67
|
-
return unless dependencies
|
|
68
|
-
|
|
69
|
-
if dependencies['npm']
|
|
70
|
-
dependencies['npm'].each do |package|
|
|
71
|
-
ensure_npm_package!(package)
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
ensure_gws_auth! if dependencies.dig('npm')&.include?('@googleworkspace/cli')
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
def ensure_gws_auth!
|
|
79
|
-
# Check if gws is already authenticated
|
|
80
|
-
return if system("gws auth export > /dev/null 2>&1")
|
|
81
|
-
|
|
82
|
-
puts "Setting up Google authentication (opens browser)..."
|
|
83
|
-
system("gws auth setup")
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
private
|
|
87
|
-
|
|
88
74
|
def install_node_macos
|
|
89
75
|
unless command_exists?('brew')
|
|
90
76
|
puts "Homebrew not found. Installing Homebrew..."
|
|
91
77
|
system('/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"')
|
|
92
|
-
unless command_exists?('brew')
|
|
93
|
-
abort "Failed to install Homebrew. Please install Node.js manually."
|
|
94
|
-
end
|
|
78
|
+
abort "Failed to install Homebrew. Please install Node.js manually." unless command_exists?('brew')
|
|
95
79
|
end
|
|
96
|
-
|
|
97
80
|
system("brew install node")
|
|
98
81
|
end
|
|
99
82
|
|
|
100
83
|
def install_node_debian
|
|
101
|
-
system(
|
|
102
|
-
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - > /dev/null 2>&1 && \
|
|
103
|
-
sudo apt-get install -y nodejs > /dev/null 2>&1
|
|
104
|
-
SH
|
|
84
|
+
system('curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - > /dev/null 2>&1 && sudo apt-get install -y nodejs > /dev/null 2>&1')
|
|
105
85
|
end
|
|
106
86
|
|
|
107
87
|
def install_node_fedora
|
|
108
|
-
system(
|
|
109
|
-
curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash - > /dev/null 2>&1 && \
|
|
110
|
-
sudo yum install -y nodejs > /dev/null 2>&1
|
|
111
|
-
SH
|
|
88
|
+
system('curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash - > /dev/null 2>&1 && sudo yum install -y nodejs > /dev/null 2>&1')
|
|
112
89
|
end
|
|
113
90
|
|
|
114
91
|
def install_node_arch
|
data/lib/skillme/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: skillme
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alan Alves
|
|
@@ -21,6 +21,7 @@ files:
|
|
|
21
21
|
- LICENSE
|
|
22
22
|
- README.md
|
|
23
23
|
- bin/skillme
|
|
24
|
+
- lib/rubygems_plugin.rb
|
|
24
25
|
- lib/skillme/cli.rb
|
|
25
26
|
- lib/skillme/deps.rb
|
|
26
27
|
- lib/skillme/version.rb
|