vagrant-shortcuts 0.0.1 → 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
  SHA1:
3
- metadata.gz: 7bebbdbfbf45bfba6019e5b6cf9a28bb478658c1
4
- data.tar.gz: f1dd23633ddcaa6c10ece73cbe56566b0199aaf0
3
+ metadata.gz: 6e94cfdd7ea4c44cfd7229753110286711a8d56d
4
+ data.tar.gz: bd63397478fadfe26c7063db0967367a3610c932
5
5
  SHA512:
6
- metadata.gz: ebf2a3927e03b9bee60cb21f96af33f916801559d448c6569faeb9944ee3e7ca0ca4b5533d6d313e93c7b6141516dec9eaa512660660d4306b79aa62fc7bd541
7
- data.tar.gz: 6a27c80bfc8db8a78f8fa421c485f85371b3c4b031a48a11039614f2139323b1021c8da6f1711d6d7d9bc9ddca397a54475538756873b5c193fda55aabed1c33
6
+ metadata.gz: 9c1460c365caa674562192e88114f6d047e6ce597d2c1eb26191d228558625b04671a2a244932524ee358be6283076d32cd0d90a77101ca3fe5d84817674473a
7
+ data.tar.gz: 0363294843abab4f01b45613d3238480e219bc60b9b9a3f30dcd0a537f5b9db5add022c18c6de6a3a3433c0718f9db4ccb51cfa7aef601c528d92a16c5a8523d
data/README.md CHANGED
@@ -1,30 +1,81 @@
1
1
  # Vagrant::Shortcuts
2
2
 
3
- TODO: Write a gem description
3
+ Add shortcut commands to your Vagrantfile:
4
+
5
+ ```ruby
6
+ config.shortcuts.add(:assets) do |machine|
7
+ machine.action(:ssh_run, ssh_run_command: <<-cmd)
8
+ gulp assets
9
+ cmd
10
+ end
11
+ ```
12
+
13
+ ```bash
14
+ $ vagrant do assets
15
+ ```
4
16
 
5
17
  ## Installation
6
18
 
7
- Add this line to your application's Gemfile:
19
+ Install the gem:
20
+
21
+ $ gem install vagrant-shortcuts
22
+
23
+ ## Usage
24
+
25
+ ### Defining shortcuts
26
+
27
+ In your `Vagrantfile`, in a `Vagrant.configure` block,
28
+ add any number of shortcuts.
29
+ To define a shortcut called `assets` that precompiles all your frontend assets
30
+ using the Rails asset pipeline, you might do something like:
8
31
 
9
32
  ```ruby
10
- gem 'vagrant-shortcuts'
33
+ Vagrant.configure("2") do |config|
34
+
35
+ # ...
36
+
37
+ config.shortcuts.add(:assets) do |machine|
38
+ machine.action(:ssh_run, ssh_run_command: <<-cmd)
39
+ bin/rake assets:precompile
40
+ cmd
41
+ end
42
+ end
11
43
  ```
12
44
 
13
- And then execute:
45
+ Shortcuts are defined by a name and a ruby function.
46
+ The function must take one argument: a Vagrant machine.
47
+ The function may do anything it wants with this machine,
48
+ but common tasks include SSHing in to the box and running a command.
14
49
 
15
- $ bundle
50
+ By default, the machine is started before the shortcut is run.
51
+ This may involve fetching a base box and provisioning the machine.
52
+ If you do not want to start the box by default,
53
+ pass `start_machine: false` when adding the shortcut:
16
54
 
17
- Or install it yourself as:
55
+ ```ruby
56
+ config.shortcuts.add(:assets, start_machine: False) do |machine|
57
+ # ...
58
+ end
59
+ ```
18
60
 
19
- $ gem install vagrant-shortcuts
61
+ The machine can be started manually by:
20
62
 
21
- ## Usage
63
+ ```ruby
64
+ machine.action(:up, {:provision_ignore_sentinel => false})
65
+ ```
66
+
67
+ ### Running shortcuts
22
68
 
23
- TODO: Write usage instructions here
69
+ Run a shortcut from the command line using `vagrant do <shortcut>`.
70
+ To run the example `assets` shortcut defined previously, run:
71
+
72
+ ```bash
73
+ $ vagrant do assets
74
+ ```
24
75
 
25
76
  ## Contributing
26
77
 
27
- 1. Fork it ( https://github.com/[my-github-username]/vagrant-shortcuts/fork )
78
+ 1. Fork it ( <https://bitbucket.org/tim_heap/vagrant-shortcuts/fork> )
28
79
  2. Create your feature branch (`git checkout -b my-new-feature`)
29
80
  3. Commit your changes (`git commit -am 'Add some feature'`)
30
81
  4. Push to the branch (`git push origin my-new-feature`)
@@ -1,3 +1,3 @@
1
1
  module VagrantShortcuts
2
- VERSION = "0.0.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -2,6 +2,20 @@ require "vagrant-shortcuts/version"
2
2
 
3
3
  module VagrantPlugins
4
4
 
5
+ class Shortcut
6
+ def initialize(callable, start_machine: true)
7
+ @callable = callable
8
+ @start_machine = start_machine
9
+ end
10
+
11
+ def call(machine)
12
+ if @start_machine
13
+ machine.action(:up, {:provision_ignore_sentinel => false})
14
+ end
15
+ @callable.call(machine)
16
+ end
17
+ end
18
+
5
19
  class Shortcuts < Vagrant.plugin("2")
6
20
  name "Shortcuts plugin"
7
21
 
@@ -31,8 +45,8 @@ module VagrantPlugins
31
45
  def initialize
32
46
  @shortcuts = {}
33
47
  end
34
- def add(name, &block)
35
- @shortcuts[name] = block
48
+ def add(name, *args, &block)
49
+ @shortcuts[name] = Shortcut.new(block, *args)
36
50
  end
37
51
  def get(name)
38
52
  @shortcuts[name]
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["tim@timheap.me"]
11
11
  spec.summary = "Embed shortcut commands in your Vagrantfile"
12
12
  spec.description = "Embed shortcut commands directly in your Vagrant file"
13
- spec.homepage = ""
13
+ spec.homepage = "https://bitbucket.org/tim_heap/vagrant-shortcuts"
14
14
  spec.license = "BSD"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-shortcuts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Heap
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-11 00:00:00.000000000 Z
11
+ date: 2015-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -53,7 +53,7 @@ files:
53
53
  - lib/vagrant-shortcuts.rb
54
54
  - lib/vagrant-shortcuts/version.rb
55
55
  - vagrant-shortcuts.gemspec
56
- homepage: ''
56
+ homepage: https://bitbucket.org/tim_heap/vagrant-shortcuts
57
57
  licenses:
58
58
  - BSD
59
59
  metadata: {}