A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/guard/guard-shell below:

guard/guard-shell: Guard::Shell automatically run shell commands when watched files are modified.

This little guard allows you to run shell commands when files are altered.

Make sure you have guard installed.

Install the gem with:

Or add it to your Gemfile:

And then add a basic setup to your Guardfile:

If you can do something in your shell, or in ruby, you can do it when a file changes with guard-shell. It simply executes the block passed to watch if a change is detected, and if anything is returned from the block it will be printed. For example

guard :shell do
  watch /.*/ do |m|
    m[0] + " has changed."
  end
end

will simply print a message telling you a file has been changed when it is changed. This admittedly isn't a very useful example, but you hopefully get the idea. To run everything on start pass :all_on_start to #guard,

guard :shell, :all_on_start => true do
  # ...
end

There is also a shortcut for easily creating notifications,

guard :shell do
  watch /.*/ do |m|
    n m[0], 'File Changed'
  end
end

#n takes up to three arguments; the first is the body of the message, here the path of the changed file; the second is the title for the notification; and the third is the image to use. There are three (four counting nil the default) different images that can be specified :success, :pending and :failed.

Saying the Name of the File You Changed and Displaying a Notification
guard :shell do
  watch /(.*)/ do |m|
    n m[0], 'Changed'
    `say -v cello #{m[0]}`
  end
end
guard :shell, :all_on_start => true do
  watch /^([^\/]*)\.tex/ do |m|
    `pdflatex -shell-escape #{m[0]}`
    `rm #{m[1]}.log`

    count = `texcount -inc -nc -1 #{m[0]}`.split('+').first
    msg = "Built #{m[1]}.pdf (#{count} words)"
    n msg, 'LaTeX'
    "-> #{msg}"
  end
end
Check Syntax of a Ruby File
guard :shell do
  watch /.*\.rb$/ do |m|
    if system("ruby -c #{m[0]}")
      n "#{m[0]} is correct", 'Ruby Syntax', :success
    else
      n "#{m[0]} is incorrect", 'Ruby Syntax', :failed
    end
  end
end

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4