socek

Untitled

Apr 22nd, 2014
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.26 KB | None | 0 0
  1. from glob import glob
  2. from shutil import copyfile
  3.  
  4. from baelfire.task import Task
  5. from baelfire.dependencys import (
  6.     FileChanged,
  7.     ParentFileChanged,
  8.     AlwaysRebuild,
  9. )
  10.  
  11.  
  12. class RvmTask(Task):
  13.  
  14.     def rvm(self, command):
  15.         return self.command([
  16.             '/bin/bash -c "source ~/.rvm/scripts/rvm && %s"' % (command,),
  17.         ])
  18.  
  19.  
  20. class DatabaseConfigFile(Task):
  21.  
  22.     example = 'config/database.example.yml'
  23.  
  24.     def get_output_file(self):
  25.         return 'config/database.yml'
  26.  
  27.     def generate_dependencys(self):
  28.         self.add_dependecy(FileChanged(self.example))
  29.  
  30.     def make(self):
  31.         copyfile(self.example, self.get_output_file())
  32.  
  33.  
  34. class Bundle(RvmTask):
  35.  
  36.     def get_output_file(self):
  37.         return 'bundle.flag'
  38.  
  39.     def generate_links(self):
  40.         self.add_link('/databaseconfigfile')
  41.  
  42.     def generate_dependencys(self):
  43.         self.add_dependecy(FileChanged('Gemfile'))
  44.  
  45.     def make(self):
  46.         self.rvm('bundle install')
  47.         self.touch(self.get_output_file())
  48.  
  49.  
  50. class Migrate(RvmTask):
  51.  
  52.     def get_output_file(self):
  53.         return 'migrate.flag'
  54.  
  55.     def generate_dependencys(self):
  56.         self.add_dependecy(ParentFileChanged(self.recipe.get_task('/bundle')))
  57.         self.add_dependecy(FileChanged(
  58.             glob('db/migrate/') + glob('db/migrate/*')
  59.         ))
  60.  
  61.     def make(self):
  62.         self.rvm('rake db:migrate')
  63.         self.touch(self.get_output_file())
  64.  
  65.  
  66. class Develop(RvmTask):
  67.  
  68.     def get_path(self):
  69.         return '/d'
  70.  
  71.     def generate_links(self):
  72.         self.add_link('/migrate')
  73.  
  74.     def generate_dependencys(self):
  75.         self.add_dependecy(AlwaysRebuild())
  76.  
  77.     def make(self):
  78.         self.rvm('rails s')
  79.  
  80.  
  81. class TestDb(RvmTask):
  82.  
  83.     def get_output_file(self):
  84.         return 'testdb.flag'
  85.  
  86.     def generate_dependencys(self):
  87.         self.add_dependecy(ParentFileChanged(self.recipe.get_task('/migrate')))
  88.  
  89.     def make(self):
  90.         self.rvm('rake db:test:prepare')
  91.         self.touch(self.get_output_file())
  92.  
  93.  
  94. class Tests(RvmTask):
  95.  
  96.     def generate_links(self):
  97.         self.add_link('/testdb')
  98.  
  99.     def generate_dependencys(self):
  100.         self.add_dependecy(AlwaysRebuild())
  101.  
  102.     def make(self):
  103.         self.rvm('rspec')
Advertisement
Add Comment
Please, Sign In to add comment