Compare commits

...
21 Commits
Author SHA1 Message Date
David Dollar cd384e0d59 0.54.0 2012-08-14 17:00:19 -04:00
David Dollar 8921cac35b use Foreman::Process to extract command running 2012-08-14 17:00:01 -04:00
David Dollar 6042783e82 Merge pull request #245 from brntbeer/env_bash_fix
changed to check env for bash
2012-08-08 14:09:19 -07:00
brntbeer b7b3a9f898 changed to check env for bash 2012-08-08 13:53:36 -07:00
David Dollar 15643dcb3f changelog 2012-07-24 11:18:42 -04:00
David Dollar 5f0f2f5378 0.53.0 2012-07-24 11:18:20 -04:00
David Dollar c1b57b59cf put app root in $HOME 2012-07-24 11:18:05 -04:00
David Dollar 21d53818f2 add changelog 2012-07-24 11:11:04 -04:00
David Dollar 359d6f1c34 0.52.0 2012-07-24 11:10:16 -04:00
David Dollar 584f251e4a wrap command in a runner that sources .profile.d scripts 2012-07-24 11:09:54 -04:00
David Dollar 7d9c2b2ac4 fix upstart export specs 2012-07-24 10:50:34 -04:00
David Dollar fba4d9beff Merge pull request #229 from danielfarrell/autostart-upstart
Make upstart export start/stop with network
2012-07-18 13:55:01 -07:00
Daniel Farrell 0bde5fdab5 Make upstart export start/stop with network 2012-07-18 16:50:49 -04:00
David Dollar 1beab80c1f update docs 2012-07-11 18:33:13 -04:00
David Dollar 7b270f9f4a changelog 2012-07-11 18:33:10 -04:00
David Dollar 03e5342067 0.51.0 2012-07-11 18:32:51 -04:00
David Dollar b1d57426fb dont try to colorize windows 2012-07-11 18:30:51 -04:00
David Dollar 06e5c52f35 add mswin32 dist 2012-07-11 18:30:38 -04:00
David Dollar 64ca839c0b update docs 2012-07-11 16:17:13 -04:00
David Dollar 80aebda023 update changelog 2012-07-11 16:17:10 -04:00
David Dollar 5dee2281a2 fix up release tasks 2012-07-11 16:16:29 -04:00
14 changed files with 109 additions and 38 deletions
+41 -8
View File
@@ -1,17 +1,50 @@
## 0.48.0.pre2 (2012-06-17) ## 0.53.0 (2012-07-24)
* 0.48.0.pre2 [David Dollar] * put app root in $HOME [David Dollar]
## 0.52.0 (2012-07-24)
* wrap command in a runner that sources .profile.d scripts [David Dollar]
* fix upstart export specs [David Dollar]
* Make upstart export start/stop with network [Daniel Farrell]
## 0.51.0 (2012-07-11)
* dont try to colorize windows [David Dollar]
## 0.50.0 (2012-07-11)
* handle windows [David Dollar]
## 0.49.0 (2012-07-11)
* 1.8 compatibility [David Dollar]
* use one pgroup for all of foreman and kill that since ruby 1.8 sucks at pgroups [David Dollar]
* better debugging [David Dollar]
## 0.48.0 (2012-07-10)
* allow old exporter format to work, but with deprecation warning [David Dollar]
* remove debugging code [David Dollar]
* Merge pull request #219 from MarkDBlackwell/patch-1 [David Dollar]
* Avoid crash by verifying the existence of SIGHUP before accessing it. [Mark D. Blackwell]
* allow color to be forced on [David Dollar] * allow color to be forced on [David Dollar]
* terminate gracefully if stdout goes away [David Dollar] * terminate gracefully if stdout goes away [David Dollar]
* always flush output [David Dollar] * always flush output [David Dollar]
* Merge pull request #212 from morgoth/added-version-command [David Dollar]
* added command for displaying foreman version [Wojciech Wnętrzak]
* Merge pull request #211 from morgoth/fixed-yaml-usage [David Dollar]
* fixed using YAML [Wojciech Wnętrzak]
* test on more things, but don't fail [David Dollar] * test on more things, but don't fail [David Dollar]
* changelog [David Dollar] * changelog [David Dollar]
* 0.48.0.pre1 [David Dollar]
## 0.48.0.pre1 (2012-06-11) * foreman doesn't work on ruby 1.8, may try to fix later [David Dollar]
* use bash [David Dollar]
* Massive refactoring for programmatic control and stability [David Dollar] * massive refactoring for programmatic control and stability [David Dollar]
* Procfile commands with shell interpolations now work again [David Dollar] * Merge pull request #164 from hsume2/master [David Dollar]
* Stop trying to test on Ruby 1.8 [David Dollar] * Only run tmux specs if tmux is installed [Henry Hsu]
* Do not assume BUNDLE_GEMFILE [Henry Hsu]
* Add support for starting procfile in tmux session [Henry Hsu]
## 0.47.0 (2012-06-07) ## 0.47.0 (2012-06-07)
+1 -1
View File
@@ -1,7 +1,7 @@
PATH PATH
remote: . remote: .
specs: specs:
foreman (0.50.0) foreman (0.54.0)
thor (>= 0.13.6) thor (>= 0.13.6)
GEM GEM
+15 -3
View File
@@ -1,6 +1,6 @@
#!/bin/sh #!/usr/bin/env bash
# #
#/ Usage: foreman-runner [-d <dir>] <command> [<args>...] #/ Usage: foreman-runner [-d <dir>] [-p] <command> [<args>...]
#/ #/
#/ Run a command with exec, optionally changing directory first #/ Run a command with exec, optionally changing directory first
@@ -16,9 +16,12 @@ usage() {
exit exit
} }
while getopts ":hd:" OPT; do read_profiled=""
while getopts ":hd:p" OPT; do
case $OPT in case $OPT in
d) cd "$OPTARG" ;; d) cd "$OPTARG" ;;
p) read_profiled="1" ;;
h) usage ;; h) usage ;;
\?) error "invalid option: -$OPTARG" ;; \?) error "invalid option: -$OPTARG" ;;
:) error "option -$OPTARG requires an argument" ;; :) error "option -$OPTARG requires an argument" ;;
@@ -29,4 +32,13 @@ shift $((OPTIND-1))
[ -z "$1" ] && usage [ -z "$1" ] && usage
if [ "$read_profiled" == "1" ]; then
shopt -s nullglob
for script in .profile.d/*; do
echo "sourcing $script"
source $script
done
shopt -u nullglob
fi
exec "$@" exec "$@"
+2
View File
@@ -0,0 +1,2 @@
#!/bin/sh
export FOO=bar
+3
View File
@@ -6,3 +6,6 @@ bash << "EOF"
EOF EOF
end script end script
start on started network
stop on stopping network
+16
View File
@@ -0,0 +1,16 @@
file pkg("foreman-#{version}-x86-mswin32.gem") => distribution_files do |t|
Bundler.with_clean_env do
sh "env PLATFORM=mswin32 gem build foreman.gemspec"
end
sh "mv foreman-#{version}-x86-mswin32.gem #{t.name}"
end
task "mswin32:build" => pkg("foreman-#{version}-x86-mswin32.gem")
task "mswin32:clean" do
clean pkg("foreman-#{version}-x86-mswin32.gem")
end
task "mswin32:release" => "mswin32:build" do |t|
sh "gem push #{pkg("foreman-#{version}-x86-mswin32.gem")} || echo 'error'"
end
+2 -1
View File
@@ -76,7 +76,8 @@ class Foreman::CLI < Thor
def run(*args) def run(*args)
load_environment! load_environment!
begin begin
exec engine.env, args.shelljoin process = Foreman::Process.new(args.shelljoin, :env => engine.env)
process.run
rescue Errno::EACCES rescue Errno::EACCES
error "not executable: #{args.first}" error "not executable: #{args.first}"
rescue Errno::ENOENT rescue Errno::ENOENT
+4 -1
View File
@@ -256,7 +256,10 @@ private
1.upto(formation[@names[process]]) do |n| 1.upto(formation[@names[process]]) do |n|
reader, writer = create_pipe reader, writer = create_pipe
begin begin
pid = process.run(:output => writer, :env => { "PORT" => port_for(process, n).to_s }) pid = process.run(:output => writer, :env => {
"HOME" => process.cwd,
"PORT" => port_for(process, n).to_s
})
writer.puts "started with pid #{pid}" writer.puts "started with pid #{pid}"
rescue Errno::ENOENT rescue Errno::ENOENT
writer.puts "unknown command: #{process.command}" writer.puts "unknown command: #{process.command}"
+3 -4
View File
@@ -31,7 +31,7 @@ class Foreman::Engine::CLI < Foreman::Engine
def color? def color?
return true if @@color_force return true if @@color_force
return true if Foreman.windows? return false if Foreman.windows?
return false unless self.respond_to?(:isatty) return false unless self.respond_to?(:isatty)
self.isatty && ENV["TERM"] self.isatty && ENV["TERM"]
end end
@@ -49,9 +49,8 @@ class Foreman::Engine::CLI < Foreman::Engine
def startup def startup
@colors = map_colors @colors = map_colors
proctitle "foreman: master" proctitle "foreman: master" unless Foreman.windows?
require "win32console" if Foreman.windows? Color.enable($stdout, options[:color])
Color.enable($stdout, options[:color]) unless $stdout.respond_to?(:color?)
end end
def output(name, data) def output(name, data)
+16 -17
View File
@@ -43,23 +43,20 @@ class Foreman::Process
Process.spawn env, expanded_command, :out => output, :err => output Process.spawn env, expanded_command, :out => output, :err => output
end end
elsif Foreman.jruby? elsif Foreman.jruby?
Dir.chdir(cwd) do require "posix/spawn"
require "posix/spawn" wrapped_command = "#{Foreman.runner} -d '#{cwd}' -p -- #{command}"
POSIX::Spawn.spawn env, command, :out => output, :err => output POSIX::Spawn.spawn env, wrapped_command, :out => output, :err => output
end
elsif Foreman.ruby_18? elsif Foreman.ruby_18?
Dir.chdir(cwd) do fork do
fork do $stdout.reopen output
$stdout.reopen output $stderr.reopen output
$stderr.reopen output env.each { |k,v| ENV[k] = v }
env.each { |k,v| ENV[k] = v } wrapped_command = "#{Foreman.runner} -d '#{cwd}' -p -- #{command}"
exec command exec wrapped_command
end
end end
else else
Dir.chdir(cwd) do wrapped_command = "#{Foreman.runner} -d '#{cwd}' -p -- #{command}"
Process.spawn env, command, :out => output, :err => output Process.spawn env, wrapped_command, :out => output, :err => output
end
end end
end end
@@ -93,10 +90,12 @@ class Foreman::Process
!alive? !alive?
end end
private # Returns the working directory for this +Process+
#
# @returns [String]
#
def cwd def cwd
@options[:cwd] || "." File.expand_path(@options[:cwd] || ".")
end end
end end
+1 -1
View File
@@ -1,5 +1,5 @@
module Foreman module Foreman
VERSION = "0.50.0" VERSION = "0.54.0"
end end
+1 -1
View File
@@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3 .\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3
. .
.TH "FOREMAN" "1" "June 2012" "Foreman 0.49.0" "Foreman Manual" .TH "FOREMAN" "1" "July 2012" "Foreman 0.51.0" "Foreman Manual"
. .
.SH "NAME" .SH "NAME"
\fBforeman\fR \- manage Procfile\-based applications \fBforeman\fR \- manage Procfile\-based applications
+3
View File
@@ -6,3 +6,6 @@ bash << "EOF"
EOF EOF
end script end script
start on started network
stop on stopping network
+1 -1
View File
@@ -32,7 +32,7 @@ def latest_release
end end
def newer_release def newer_release
tags = %x{ git tag --contains v#{latest_release} }.split("\n").sort_by do |tag| tags = %x{ git tag --contains v#{latest_release} | grep -v pre }.split("\n").sort_by do |tag|
Gem::Version.new(tag[1..-1]) Gem::Version.new(tag[1..-1])
end end
tags[1] tags[1]