Skip to content

Commit 6d0199e

Browse files
committed
feat(commands): starting to add yaml edit for remove
1 parent 5dde116 commit 6d0199e

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/commands/remove.cr

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,17 @@ module Geode::Commands
2525
warn "Shard '#{name}' is not installed but listed as a dependency"
2626
end
2727

28-
if shard.dependencies.delete(name) || shard.development.delete(name)
29-
# TODO: this should really update shard.yml but the YAML module does it really badly
30-
# This may require a custom shard.yml file parser
28+
key = if shard.dependencies.delete(name)
29+
"dependencies"
30+
elsif shard.development.delete(name)
31+
"development_dependencies"
32+
end
33+
34+
if key
35+
doc = StrictYAML.parse_document File.read("./shard.yml"), preserve: true
36+
doc.edit &.remove [key, shard.name]
37+
File.write "./shard.yml", doc
38+
3139
success "Removed shard '#{name}'"
3240
removed = true
3341
elsif untracked

src/geode.cr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ require "crystal-lua"
55
require "file_utils"
66
require "license"
77
require "shards/commands/install"
8+
require "strict-yaml"
89
require "trigram"
910
require "wait_group"
1011
require "yaml"

0 commit comments

Comments
 (0)