Merge pull request #62 from trws/tmuxinator

Partial ruby extension and tmuxinator package
This commit is contained in:
Todd Gamblin
2015-06-11 16:31:15 -07:00
3 changed files with 49 additions and 0 deletions

View File

@@ -1,4 +1,6 @@
from spack import *
import spack
import os
class Ruby(Package):
"""A dynamic, open source programming language with a focus on
@@ -7,6 +9,8 @@ class Ruby(Package):
homepage = "https://www.ruby-lang.org/"
url = "http://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.0.tar.gz"
extendable = True
version('2.2.0', 'cd03b28fd0b555970f5c4fd481700852')
def install(self, spec, prefix):
@@ -14,3 +18,24 @@ def install(self, spec, prefix):
make()
make("install")
def setup_dependent_environment(self, module, spec, ext_spec):
"""Called before ruby modules' install() methods. Sets GEM_HOME
and GEM_PATH to values appropriate for the package being built.
In most cases, extensions will only need to have one line::
gem('install', '<gem-name>.gem')
"""
# Ruby extension builds have global ruby and gem functions
module.ruby = Executable(join_path(spec.prefix.bin, 'ruby'))
module.gem = Executable(join_path(spec.prefix.bin, 'gem'))
# Set GEM_PATH to include dependent gem directories
ruby_paths = []
for d in ext_spec.traverse():
if d.package.extends(self.spec):
ruby_paths.append(d.prefix)
os.environ['GEM_PATH'] = ':'.join(ruby_paths)
# The actual installation path for this gem
os.environ['GEM_HOME'] = ext_spec.prefix

View File

@@ -0,0 +1,17 @@
from spack import *
class Tmuxinator(Package):
"""A session configuration creator and manager for tmux"""
homepage = "https://github.com/tmuxinator/tmuxinator"
url = "https://github.com/tmuxinator/tmuxinator"
version('0.6.11',
git='https://github.com/tmuxinator/tmuxinator',
tag='v0.6.11')
extends('ruby')
def install(self, spec, prefix):
gem('build', 'tmuxinator.gemspec')
gem('install', 'tmuxinator-{}.gem'.format(self.version))