rtomayko / posix-spawn

Ruby process spawning library
Other
520 stars 52 forks source link

Why switch interpreters for cygwin? #63

Closed sheavner closed 9 years ago

sheavner commented 10 years ago

I'm trying to use https://github.com/aanand/git-up under cygwin and logged an issue there #77, but it's probably a posix-spawn issue.

Why does line 503 swap out the windows COMSPEC for the cygwin main shell? cygwin is already posix like and has /bin/sh & /bin/bash. I tried a simple variable setting: COMSPEC=/bin/bash, but that fails trying to append and run commands with /c instead of -c.

Overall cygwin is probably going to be goofy here. If you're running a ruby that was installed under cygwin as a cygwin package it should use /bin/sh. But maybe if you're running the native windows version of ruby and invoking it from within a cygwin shell, it's appropriate to use the windows launcher cmd.exe?

Fetching origin
remote: Counting objects: 11, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 11 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (11/11), done.
From github.com:account/repo
   e1e886f..fdfb95f  master     -> origin/master
current.branchname               fast-forwarding...
/home/me-user/.gem/ruby/gems/posix-spawn-0.3.9/lib/posix/spawn.rb:164:in `spawn': No such file or directory - C:\Windows\system32\cmd.exe (Errno::ENOENT)
        from /home/me-user/.gem/ruby/gems/posix-spawn-0.3.9/lib/posix/spawn.rb:164:in `spawn'
        from /home/me-user/.gem/ruby/gems/posix-spawn-0.3.9/lib/posix/spawn.rb:311:in `popen4'
        from /home/me-user/.gem/ruby/gems/posix-spawn-0.3.9/lib/posix/spawn/child.rb:141:in `exec!'
        from /home/me-user/.gem/ruby/gems/posix-spawn-0.3.9/lib/posix/spawn/child.rb:91:in `initialize'
        from /home/me-user/.gem/ruby/gems/grit-2.5.0/lib/grit/git.rb:454:in `new'
        from /home/me-user/.gem/ruby/gems/grit-2.5.0/lib/grit/git.rb:454:in `sh'
        from /home/me-user/.gem/ruby/gems/git-up-0.5.12/lib/git-up.rb:225:in `rebase'
        from /home/me-user/.gem/ruby/gems/git-up-0.5.12/lib/git-up.rb:130:in `block in rebase_all_branches'
        from /home/me-user/.gem/ruby/gems/git-up-0.5.12/lib/git-up.rb:97:in `each'
        from /home/me-user/.gem/ruby/gems/git-up-0.5.12/lib/git-up.rb:97:in `rebase_all_branches'
        from /home/me-user/.gem/ruby/gems/git-up-0.5.12/lib/git-up.rb:22:in `block (3 levels) in run'
        from /home/me-user/.gem/ruby/gems/git-up-0.5.12/lib/git-up.rb:199:in `returning_to_current_branch'
        from /home/me-user/.gem/ruby/gems/git-up-0.5.12/lib/git-up.rb:21:in `block (2 levels) in run'
        from /home/me-user/.gem/ruby/gems/git-up-0.5.12/lib/git-up.rb:183:in `with_stash'
        from /home/me-user/.gem/ruby/gems/git-up-0.5.12/lib/git-up.rb:20:in `block in run'
        from /home/me-user/.gem/ruby/gems/grit-2.5.0/lib/grit/git.rb:90:in `with_timeout'
        from /home/me-user/.gem/ruby/gems/git-up-0.5.12/lib/git-up.rb:19:in `run'
        from /home/me-user/.gem/ruby/gems/git-up-0.5.12/bin/git-up:5:in `<top (required)>'
        from /home/me-user/bin/git-up:23:in `load'
        from /home/me-user/bin/git-up:23:in `<main>'
tmm1 commented 10 years ago

Sounds like we should remove Cygwin from that list. Can you open a PR?

rtomayko commented 9 years ago

Don't think there's a patch coming here and I'm not putting time toward windows stuff so going to close this out.