ianwhite-garlic 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,11 @@
1
+ == 0.1.9
2
+
3
+ * 1 major enhancement
4
+ * added garlic shell commands (sh/garlic.sh) for easing the galric workflow
5
+ to use them, add this to your ~/.profile
6
+
7
+ source `gem environment gemdir`/gems/ianwhite-garlic*/sh/garlic.sh
8
+
1
9
  == 0.1.8
2
10
 
3
11
  * 1 bugfix
data/README.textile CHANGED
@@ -99,6 +99,32 @@ h2. Rake tasks
99
99
  If you prefer to use garlic via rake tasks, then just require 'garlic/tasks' and you'll get a bunch of em.
100
100
  Once required, do rake -T to see descriptions.
101
101
 
102
+ h2. garlic workflow shell commands
103
+
104
+ If you add the following line to your .profile
105
+
106
+ source `gem environment gemdir`/gems/ianwhite-garlic*/sh/garlic.sh
107
+
108
+ Then you'll get these 4 new shell commands:
109
+
110
+ gcd [target] cds into the specified target working repo
111
+ gcdp [target] cds into the specified target plugin in the working repo
112
+ gup cds back up to the garlic'd repo from within a working path
113
+ gpush [branch] from within a working repo, pushes changes back to the local garlic target, and resets
114
+ local changes in that target to HEAD.
115
+
116
+ This means you might have a workflow as follows (example is for a plugin):
117
+
118
+ # run garlic, see probs in '2-2-stable'
119
+
120
+ gcdp 2-2 # => takes you into the working repo in the '2-2-stable' target
121
+
122
+ # fix the changes, make some commits
123
+
124
+ gpush # => pushes the changes back to the enclosing garlic'd repo
125
+ gup # => go back up there
126
+ garlic # => rerun garlic to see how the changes affect the other targets
127
+
102
128
  h2. Lend a hand
103
129
 
104
130
  This is an early release, so there is plenty of scope for changes and improvement
@@ -104,6 +104,11 @@ module Garlic
104
104
  shell.run
105
105
  end
106
106
 
107
+ define_command :path, "return the work dir for the specified target" do |*path_target|
108
+ self.run_targets = path_target.first if path_target.any?
109
+ puts determine_targets.first.path
110
+ end
111
+
107
112
  define_command :run, "Run each garlic TARGET" do
108
113
  these_targets = determine_targets
109
114
  target_names, failed_names = these_targets.map{|t| t.name}, []
data/lib/garlic/target.rb CHANGED
@@ -81,9 +81,9 @@ module Garlic
81
81
  old_tree_ish = repo.head_sha
82
82
  repo.checkout(tree_ish) if tree_ish
83
83
  if read_sha(install_path) == repo.head_sha
84
- puts "#{install_path} is up to date at #{tree_ish || 'default'}"
84
+ puts "#{install_path} is up to date at #{tree_ish || repo.head_sha[0..6]}"
85
85
  else
86
- puts "#{install_path} needs update to #{tree_ish || 'default'}, exporting archive from #{repo.name}..."
86
+ puts "#{install_path} needs update to #{tree_ish || repo.head_sha[0..6]}, exporting archive from #{repo.name}..."
87
87
  repo.export_to(File.join(path, install_path))
88
88
  cd(path) { garlic.instance_eval(&block) } if block_given?
89
89
  write_sha(install_path, repo.head_sha)
data/lib/garlic.rb CHANGED
@@ -11,7 +11,7 @@ module Garlic
11
11
  module Version
12
12
  Major = 0
13
13
  Minor = 1
14
- Tiny = 8
14
+ Tiny = 9
15
15
 
16
16
  String = [Major, Minor, Tiny].join('.')
17
17
  end
data/sh/garlic.sh ADDED
@@ -0,0 +1,34 @@
1
+ # garlic shell helpers
2
+
3
+ # cd into the work path of a garlic target
4
+ gcd ()
5
+ {
6
+ cd `garlic path $1`
7
+ }
8
+
9
+ # cd into probable plugin dir of a garlic target
10
+ gcdp ()
11
+ {
12
+ here=`pwd | sed 's/.*\///'`
13
+ cd `garlic path $1`/vendor/plugins/$here
14
+ }
15
+
16
+ # cd back up to enclosing garlic project
17
+ gup ()
18
+ {
19
+ cd `pwd | sed 's/\.garlic.*//'`
20
+ }
21
+
22
+ # push changes back to local garlic origin, resetting the origin
23
+ gpush ()
24
+ {
25
+ if [ `pwd | sed 's/\.garlic//'` == `pwd` ]; then
26
+ echo "gpush can only be used in a garlic work repo";
27
+ else
28
+ git push origin $1 2>&1 | grep -v warning;
29
+ here=`pwd`;
30
+ gup;
31
+ git reset --hard;
32
+ cd $here;
33
+ fi
34
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ianwhite-garlic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian White
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-02-08 00:00:00 -08:00
12
+ date: 2009-06-27 00:00:00 -07:00
13
13
  default_executable: garlic
14
14
  dependencies: []
15
15
 
@@ -34,12 +34,13 @@ files:
34
34
  - templates/default.rb
35
35
  - templates/rspec.rb
36
36
  - templates/shoulda.rb
37
+ - bin/garlic
38
+ - sh/garlic.sh
37
39
  - License.txt
38
40
  - README.textile
39
41
  - Todo.txt
40
42
  - History.txt
41
43
  - spec/garlic/repo_spec.rb
42
- - bin/garlic
43
44
  has_rdoc: true
44
45
  homepage: http://github.com/ianwhite/garlic/tree
45
46
  post_install_message: