mirror of
1
0
Fork 0

Add Dirrer for creating directories

This commit is contained in:
Casey Rodarmor 2015-12-06 09:53:01 -08:00
parent 5babc8f562
commit 1e1d3c7efe
2 changed files with 47 additions and 0 deletions

View File

@ -2,3 +2,4 @@ from .executor import Executor
from .linker import Linker
from .cleaner import Cleaner
from .commandrunner import CommandRunner
from .dirrer import Dirrer

46
dotbot/executor/dirrer.py Normal file
View File

@ -0,0 +1,46 @@
import os
from . import Executor
class Dirrer(Executor):
'''
Creates directories.
'''
_directive = 'dir'
def can_handle(self, directive):
return directive == self._directive
def handle(self, directive, data):
if directive != self._directive:
raise ValueError('Dirrer cannot handle directive %s' % directive)
return self._process_dir(data)
def _process_dir(self, targets):
success = True
for target in targets:
success &= self._dir(target)
if success:
self._log.info('All directories have been created')
else:
self._log.error('Some directories were not successfully created')
return success
def _dir(self, target):
'''
Creates directories, including intermediate directories.
'''
expanded_target = os.path.expanduser(target)
if os.path.isdir(expanded_target):
return True
if os.path.isfile(expanded_target):
return False
try:
os.makedirs(expanded_target)
except:
return False
return True