Provided by: rerun_0.10.0-1_all bug

NAME

       rerun - launches commands and restarts them on filesystem changes

USAGE

       rerun [options] [--] cmd

EXAMPLES

       For example, if you´re running a Sinatra app whose main file is app.rb:

               rerun ruby app.rb

       If  the  first  part of the command is a .rb filename, then ruby is optional, so the above
       can also be accomplished like this:

               rerun app.rb

       Rails doesn´t automatically notice all config file changes, so you can force it to restart
       when you change a config file like this:

               rerun --dir config rails s

       Or  if  you´re using Thin to run a Rack app that´s configured in config.ru but you want it
       on port 4000 and in debug mode, and only want to watch the app and web subdirectories:

               rerun --dir app,web -- thin start --debug --port=4000 -R config.ru

       The -- is to separate rerun options from cmd options. You can also use a quoted string for
       the command, e.g.

               rerun --dir app "thin start --debug --port=4000 -R config.ru"

       Rackup can also be used to launch a Rack server, so let´s try that:

               rerun -- rackup --port 4000 config.ru

       Want to mimic autotest https://github.com/grosser/autotest? Try

               rerun -x rake

       or

               rerun -cx rspec

       And if you´re using Spork https://github.com/sporkrb/spork with Rails, you need to restart
       your  spork  server  https://github.com/sporkrb/spork/issues/201  whenever  certain  Rails
       environment files change, so why not put this in your Rakefile...

           desc "run spork (via rerun)"
           task :spork do
             sh "rerun --pattern ´{Gemfile,Gemfile.lock,spec/spec_helper.rb,.rspec,spec/factories/**,config/environment.rb,config/environments/test.rb,config/initializers/*.rb,lib/**/*.rb}´ -- spork"
           end

       and start using rake spork to launch your spork server?

       (If     you´re    using    Guard    instead    of    Rerun,    check    out    guard-spork
       https://github.com/guard/guard-spork for a similar solution.)

       How  about  regenerating  your  HTML  files   after   every   change   to   your   Erector
       http://erector.rubyforge.org widgets?

               rerun -x erector --to-html my_site.rb

       Use  Heroku  Cedar?  rerun is now compatible with foreman. Run all your Procfile processes
       locally and restart them all when necessary.

               rerun foreman start

OPTIONS

       -d, --dir
              directory (or directories) to watch (default = "."). Separate multiple  paths  with
              ´,´ and/or use multiple -d options.

       -p, --pattern
              glob  to  match  inside  directory.  This  uses  the  Ruby  Dir  glob  style -- see
              http://www.ruby-doc.org/core/classes/Dir.html#M002322 for details.

              By        default        it        watches         files         ending         in:
              rb,js,css,coffee,scss,sass,erb,html,haml,ru,slim,md.   On  top  of  this,  it  also
              ignores dotfiles, .tmp files, and some other files and directories (like  .git  and
              log). Run rerun --help to see the actual list.

       -i, --ignore pattern
              file glob to ignore (can be set many times). To ignore a directory, you must append
              ´/*´ e.g. --ignore ´coverage/*´.

              On top of --pattern and --ignore, we ignore any changes to files and dirs  starting
              with a dot.

       -s, --signal
              use  specified  signal  (instead  of the default SIGTERM) to terminate the previous
              process. This may be useful for forcing the  respective  process  to  terminate  as
              quickly as possible. (--signal KILL is the equivalent of kill -9)

       -h, --hup
              when  restarting,  send  a SIGHUP signal instead of trying to terminate the process
              and run a new one. This assumes the process is capable of restarting by itself  (as
              e.g. unicorn is).

       -c, --clear
              clear the screen before each run

       -x, --exit
              expect  the  program  to  exit.  With  this  option, rerun checks the return value;
              without it, rerun checks that the launched process is still running.

       -b, --background
              disable on-the-fly commands, allowing the process to be backgrounded

       -n, --name
              set the app name (for display)

       Also --version and --help, naturally.

ON-THE-FLY COMMANDS

       While the app is (re)running, you can make things happen by pressing keys:

       •   r -- restart (as if a file had changed)

       •   c -- clear the screen

       •   x or q -- exit (just like control-C)

       •   p -- pause/unpause filesystem watching

       If you´re backgrounding or using Pry or a debugger, you might not want these  keys  to  be
       trapped, so use the --background option.

SIGNALS

       The current algorithm for killing the process is:

       •   send  SIGTERM  http://en.wikipedia.org/wiki/SIGTERM  (or  the  value  of  the --signal
           option)

       •   if that doesn´t work after 4 seconds, send SIGINT (aka control-C)

       •   if that doesn´t work after 2 more seconds, send SIGKILL (aka kill -9)

       This seems like the most gentle and unixy way of doing things, but it does  mean  that  if
       your program ignores SIGTERM, it takes an extra 4 to 6 seconds to restart.

                                           August 2015                                   RERUN(1)