git-sbm 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c11d578362b802b8382c9d62b8bd51bcd6e9f37cb3497c5a043602b1ac531c04
4
- data.tar.gz: 8fd080470fef0ef81e4d9b96bf43d676b8d996546246b1489d5a74587ecd97e2
3
+ metadata.gz: 5e34041591173a030aa9649c1bad1e98e79bb1345d999c1835b9e02125973ad5
4
+ data.tar.gz: 37f7d7a3840a5139d10ad1049fc6c576e3886008107edf307241c36ea3b158e9
5
5
  SHA512:
6
- metadata.gz: 4a670413138b56bec66b01868ccdc2b251539818240c93bb0c1c89ff926dc159d19bee1540267d2068c14591077bec8c43c5603301e09c99f97dc16898715963
7
- data.tar.gz: 37a581bfaa021e405804adf345dfaf61bd90677888e5661c171bf22f45dc277b072ccece0b17c137c4cafae8601f50f5bfc6b10f5184d1ee1bb2b1bb8dfb5e06
6
+ metadata.gz: 8679a1eef88f8c84e5de903086e343ae817ff67ffe768e461e793347b66c4421637b07562fb07d3ba007390ebaf2fced1f7424d00a656a38bf0d7bcf22d07784
7
+ data.tar.gz: 5891dc071a7363bfc998ce24122f7158e041a17c025ec18543da140fbe35826be6cfe35629ab93abf2596fb941e906086a32113fe2b35cc66f72dcf3bf721559
data/Gemfile.lock CHANGED
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- git-sbm (0.1.0)
4
+ git-sbm (0.2.0)
5
+ fileutils
5
6
  thor
6
7
 
7
8
  GEM
data/lib/submodule/cli.rb CHANGED
@@ -3,9 +3,29 @@ require "submodule"
3
3
 
4
4
  module Submodule
5
5
  class CLI < Thor
6
- desc "git-sbm init", "Creates the dependencies folder which will store the submodules."
6
+ desc "init", "Creates the dependencies folder which will store the submodules."
7
7
  def init()
8
8
  puts Submodule::Manager.init()
9
9
  end
10
+
11
+ desc "add <dependecy name> <git url>", "Add a new submodule dependency"
12
+ def add(submodule_name, url)
13
+ puts Submodule::Manager.add_dependency(submodule_name, url)
14
+ end
15
+
16
+ desc "update <dependecy name> <version tag>", "update a dependency to the specified tag"
17
+ def update(submodule_name, tag)
18
+ puts Submodule::Manager.update_dependency(submodule_name, tag)
19
+ end
20
+
21
+ desc "boot", "update and clone all registered submodules"
22
+ def boot(submodule_name, tag)
23
+ puts Submodule::Manager.boot()
24
+ end
25
+
26
+ desc "remove <dependecy name>", "removes a submodule dependency"
27
+ def remove(submodule_name)
28
+ puts Submodule::Manager.remove(submodule_name)
29
+ end
10
30
  end
11
31
  end
@@ -1,3 +1,5 @@
1
+ require "fileutils"
2
+
1
3
  module Submodule
2
4
  class Manager
3
5
  def self.init()
@@ -5,5 +7,30 @@ module Submodule
5
7
  Dir.mkdir("Dependencies") unless Dir.exists?("Dependencies")
6
8
  "Dependencies folder created!"
7
9
  end
10
+
11
+ def self.add_dependency(submodule_name, url)
12
+ puts `git submodule add #{url} Dependencies/#{submodule_name}`
13
+ end
14
+
15
+ def self.update_dependency(submodule_name, tag)
16
+ Dir.chdir("Dependencies/#{submodule_name}") do
17
+ puts `git fetch`
18
+ puts `git checkout -q #{tag}`
19
+ end
20
+ puts `git commit -am "Updated submodule #{submodule_name} to #{tag}"`
21
+ puts "Updated submodule #{submodule_name} to #{tag}"
22
+ end
23
+
24
+ def self.boot()
25
+ puts `git submodule sync --recursive`
26
+ puts `git submodule update --init --recursive`
27
+ puts "Submodules ready"
28
+ end
29
+
30
+ def self.remove(submodule_name)
31
+ puts `git submodule deinit -f Dependencies/#{submodule_name}`
32
+ puts `rm -rf .git/modules/Dependencies/#{submodule_name}`
33
+ puts `git rm -f Dependencies/#{submodule_name}`
34
+ end
8
35
  end
9
36
  end
@@ -1,3 +1,3 @@
1
1
  module Submodule
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
data/submodule.gemspec CHANGED
@@ -28,4 +28,5 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency "aruba"
29
29
 
30
30
  spec.add_dependency "thor"
31
+ spec.add_dependency "fileutils"
31
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git-sbm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rodrigo Carvalho
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: fileutils
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  description:
112
126
  email:
113
127
  - rcdasilva94@gmail.com