Skip to content

vhodges/runstaq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Runstaq takes a list of directories and provides an interactive shell
for starting and stopping program(s) within them (using foreman style
Procfiles).

Note:  It's not a devops tool per se, just a way to run the pieces.

Is you app comprised of a number of components spread across multiple
folders/repos?  runstaq will help you get them running locally for
dev/testing.

Usage:

runstaq dir1 dir2...dirN

or

runstaq -stack runstaqfile (which is just a list of folders, one per line)

This will drop you into a shell where you can:

start [glob pattern]  # Run the stack or if foldername is specified just run
                      that piece of the stack. Aliases: run, begin

stop  [glob pattern]  # Stop the stack or if foldername is specified just stop
                      that piece of the stack. Aliases: shutdown, kill, halt, end

list  [glob pattern] # The status of the stack or if foldername is specified just 
                     display the status for that piece of the stack. Aliases: ls, dir

quit                 # stop the stack and exit

help                 # Print this list

version              # Print version/build info for runstaq

Where glob pattern is a wildcard pattern in the style of folder/procname to operate
on (defaults to */*) eg:

- */*               # Everything
- */web             # All web processes named web in all folders
- authenticator/*   # All processes in the authenticator folder
- etc

Notes/Future Features

  - run a boot.sh script before starting (bring up infrastructure,
    prime caches, etc)
  - Support for env files
  - Default stack to run (default.staq? Staqfile?)?
  - restart command
  - reload command (stack/procfiles)
  
Example of using runstaq with dtach (ie for automation)

See: https://github.com/crigler/dtach

  - dtach -n /tmp/stacksession runstaq -stack staqfile  # run in background
  - echo -ne 'start\n' | dtach -p /tmp/stacksession     # send start command to runstaq
  - ... time passes ...
  - dtach -a /tmp/stacksession                          # to check status, start, stop, etc