Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from glob import glob
- from shutil import copyfile
- from baelfire.task import Task
- from baelfire.dependencys import (
- FileChanged,
- ParentFileChanged,
- AlwaysRebuild,
- )
- class RvmTask(Task):
- def rvm(self, command):
- return self.command([
- '/bin/bash -c "source ~/.rvm/scripts/rvm && %s"' % (command,),
- ])
- class DatabaseConfigFile(Task):
- example = 'config/database.example.yml'
- def get_output_file(self):
- return 'config/database.yml'
- def generate_dependencys(self):
- self.add_dependecy(FileChanged(self.example))
- def make(self):
- copyfile(self.example, self.get_output_file())
- class Bundle(RvmTask):
- def get_output_file(self):
- return 'bundle.flag'
- def generate_links(self):
- self.add_link('/databaseconfigfile')
- def generate_dependencys(self):
- self.add_dependecy(FileChanged('Gemfile'))
- def make(self):
- self.rvm('bundle install')
- self.touch(self.get_output_file())
- class Migrate(RvmTask):
- def get_output_file(self):
- return 'migrate.flag'
- def generate_dependencys(self):
- self.add_dependecy(ParentFileChanged(self.recipe.get_task('/bundle')))
- self.add_dependecy(FileChanged(
- glob('db/migrate/') + glob('db/migrate/*')
- ))
- def make(self):
- self.rvm('rake db:migrate')
- self.touch(self.get_output_file())
- class Develop(RvmTask):
- def get_path(self):
- return '/d'
- def generate_links(self):
- self.add_link('/migrate')
- def generate_dependencys(self):
- self.add_dependecy(AlwaysRebuild())
- def make(self):
- self.rvm('rails s')
- class TestDb(RvmTask):
- def get_output_file(self):
- return 'testdb.flag'
- def generate_dependencys(self):
- self.add_dependecy(ParentFileChanged(self.recipe.get_task('/migrate')))
- def make(self):
- self.rvm('rake db:test:prepare')
- self.touch(self.get_output_file())
- class Tests(RvmTask):
- def generate_links(self):
- self.add_link('/testdb')
- def generate_dependencys(self):
- self.add_dependecy(AlwaysRebuild())
- def make(self):
- self.rvm('rspec')
Advertisement
Add Comment
Please, Sign In to add comment