37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
|
|
from pathlib import Path
|
|
from doit.exceptions import TaskFailed
|
|
from .task import FlowTask
|
|
|
|
class BadAliasDepend ( Exception ): pass
|
|
|
|
|
|
class Alias ( FlowTask ):
|
|
|
|
@staticmethod
|
|
def mkRule ( rule, depends=[] ):
|
|
return Alias( rule, depends )
|
|
|
|
def __init__ ( self, rule, depends, ):
|
|
if len(depends) != 1:
|
|
raise BadAliasDepend( 'Alias.__init__(): There must be exactly *one* dependency ({})' \
|
|
.format( depends ))
|
|
if not isinstance(depends[0],FlowTask):
|
|
raise BadAliasDepend( 'Alias.__init__(): The dependency must be another *rule* ({})' \
|
|
.format( depends[0] ))
|
|
super().__init__( rule, [], depends )
|
|
|
|
def __repr__ ( self ):
|
|
return '<Alias "{}" for "{}">'.format( self.basename, self.depends[0].basename )
|
|
|
|
def doTask ( self ):
|
|
return True
|
|
|
|
def create_doit_tasks ( self ):
|
|
return { 'basename' : self.basename
|
|
, 'actions' : [ self.doTask ]
|
|
, 'doc' : 'Run {}.'.format( self )
|
|
, 'targets' : self.targets
|
|
, 'file_dep' : self.file_dep
|
|
}
|