autoshell 1.0.0.pre.beta → 1.0.1
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/.gitignore +2 -0
- data/README.md +1 -1
- data/lib/autoshell/filestuff.rb +8 -2
- data/lib/autoshell/git.rb +35 -7
- data/lib/autoshell/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58f7cc0a022ee148921ad31525211ef83963e842
|
4
|
+
data.tar.gz: abc7b801e9b7ecf76cd8750663917bca854fe0ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d3cc1ae23a9f0fc436d297afb34ef0171a6a632758eeff03fe592f939ab258ef21c90b69ebebc7018da6dcc9ac75a375f78d9d4a53ca1a1e4a005cf96a3c78f
|
7
|
+
data.tar.gz: 33257ae7b9a532a50b0ddf199841791540969413f11936cf75a7ae74571a927c9014277c53f8964738cb86596ea1e45f1d267604399088fc4666e520de35b0da
|
data/README.md
CHANGED
@@ -20,7 +20,7 @@ Create a new autoshell object with optional path and environment hash.
|
|
20
20
|
|
21
21
|
```ruby
|
22
22
|
env = { 'FOO' => 'bar' }
|
23
|
-
sh = Autoshell.new('~/code/autoshell', env)
|
23
|
+
sh = Autoshell.new('~/code/autoshell', env: env)
|
24
24
|
sh.clone('https://github.com/ryanmark/autoshell-ruby.git')
|
25
25
|
sh.setup_environment
|
26
26
|
sh.cd |s| { s.run('bundle', 'exec', 'rake', 'test') }
|
data/lib/autoshell/filestuff.rb
CHANGED
@@ -115,9 +115,15 @@ module Autoshell
|
|
115
115
|
|
116
116
|
# Copy this working dir to another path
|
117
117
|
# @param path [String] destination path to copy to
|
118
|
-
def copy_to(path = nil)
|
118
|
+
def copy_to(path = nil, force: nil)
|
119
119
|
return super if path.nil?
|
120
|
-
|
120
|
+
|
121
|
+
unless Dir.exist? working_dir
|
122
|
+
raise CommandError,
|
123
|
+
"copy_to: The directory '#{working_dir}' does not exist"
|
124
|
+
end
|
125
|
+
|
126
|
+
cp '.', path, force: force
|
121
127
|
self.class.new(expand path)
|
122
128
|
end
|
123
129
|
|
data/lib/autoshell/git.rb
CHANGED
@@ -6,10 +6,27 @@ module Autoshell
|
|
6
6
|
# @return [String] (master) branch of the current repo
|
7
7
|
module Git
|
8
8
|
def branch
|
9
|
-
@branch ||=
|
9
|
+
@branch ||= 'master'
|
10
10
|
end
|
11
11
|
attr_writer :branch
|
12
12
|
|
13
|
+
# Set the branch from a repo url
|
14
|
+
#
|
15
|
+
# @param [String] Git repository URL
|
16
|
+
# @return [string] Branch name
|
17
|
+
def branch_from_repo_url(repo_url)
|
18
|
+
if repo_url =~ /#\S+[^\/]/
|
19
|
+
@branch = repo_url.split('#')[1]
|
20
|
+
else
|
21
|
+
@branch = 'master'
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def commit_hash_for_checkout
|
26
|
+
@commit_hash_for_checkout ||= 'HEAD'
|
27
|
+
end
|
28
|
+
attr_writer :commit_hash_for_checkout
|
29
|
+
|
13
30
|
# Has this repo been cloned to disk?
|
14
31
|
#
|
15
32
|
# @return [Boolean] True if this dir is a cloned repo
|
@@ -22,13 +39,14 @@ module Autoshell
|
|
22
39
|
# @return [String] Output of git commands
|
23
40
|
def update
|
24
41
|
[
|
25
|
-
git('checkout',
|
26
|
-
git('clean', '-
|
27
|
-
git('checkout',
|
42
|
+
git('checkout', '.'),
|
43
|
+
git('clean', '-ffd'),
|
44
|
+
git('checkout', branch),
|
28
45
|
git('pull', '--recurse-submodules=yes'),
|
29
46
|
git('fetch', 'origin'),
|
30
|
-
git('checkout',
|
31
|
-
git('submodule', 'update', '--init')
|
47
|
+
git('checkout', commit_hash_for_checkout),
|
48
|
+
git('submodule', 'update', '--init'),
|
49
|
+
git('clean', '-ffd')
|
32
50
|
].join("\n")
|
33
51
|
end
|
34
52
|
|
@@ -47,7 +65,17 @@ module Autoshell
|
|
47
65
|
# @return [String] Output of git commands
|
48
66
|
def clone(repo_url)
|
49
67
|
mkpdir working_dir
|
50
|
-
run 'git', 'clone', '--recursive', repo_url, working_dir
|
68
|
+
run 'git', 'clone', '--recursive', repo_url.split('#')[0], working_dir
|
69
|
+
branch_from_repo_url(repo_url)
|
70
|
+
update
|
71
|
+
end
|
72
|
+
|
73
|
+
# Checkout a specific hash on the repo
|
74
|
+
#
|
75
|
+
# @param [String] Git version hash
|
76
|
+
# @return [String] Output of git commands
|
77
|
+
def checkout_version(version_hash)
|
78
|
+
git 'checkout', version_hash || 'HEAD'
|
51
79
|
end
|
52
80
|
|
53
81
|
# Get the current commit hash
|
data/lib/autoshell/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autoshell
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Mark
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mime-types
|
@@ -149,9 +149,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
149
149
|
version: '0'
|
150
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
151
|
requirements:
|
152
|
-
- - "
|
152
|
+
- - ">="
|
153
153
|
- !ruby/object:Gem::Version
|
154
|
-
version:
|
154
|
+
version: '0'
|
155
155
|
requirements: []
|
156
156
|
rubyforge_project:
|
157
157
|
rubygems_version: 2.4.5
|