Merge pull request #58 from mrchrisadams/load_yaml_as_well_as_yml

Support loading in Figfiles with .yaml extension
This commit is contained in:
Ben Firshman 2014-01-28 03:35:25 -08:00
commit 8b75f7c7d3
3 changed files with 21 additions and 1 deletions

View File

@ -36,8 +36,9 @@ If it's at a non-standard location, specify the URL with the DOCKER_HOST environ
@cached_property
def project(self):
try:
yaml_path = os.path.join(self.base_dir, 'fig.yml')
yaml_path = self.check_yaml_filename()
config = yaml.load(open(yaml_path))
except IOError as e:
if e.errno == errno.ENOENT:
log.error("Can't find %s. Are you in the right directory?", os.path.basename(e.filename))
@ -60,3 +61,12 @@ If it's at a non-standard location, specify the URL with the DOCKER_HOST environ
def formatter(self):
return Formatter()
def check_yaml_filename(self):
if os.path.exists(os.path.join(self.base_dir, 'fig.yaml')):
log.warning("Fig just read the file 'fig.yaml' on startup, rather than 'fig.yml'")
log.warning("Please be aware that fig.yml the expected extension in most cases, and using .yaml can cause compatibility issues in future")
return os.path.join(self.base_dir, 'fig.yaml')
else:
return os.path.join(self.base_dir, 'fig.yml')

View File

@ -15,6 +15,13 @@ class CLITestCase(DockerClientTestCase):
self.command.project.kill()
self.command.project.remove_stopped()
def test_yaml_filename_check(self):
self.command.base_dir = 'tests/fixtures/longer-filename-figfile'
project = self.command.project
self.assertTrue( project.get_service('definedinyamlnotyml'), "Service: definedinyamlnotyml should have been loaded from .yaml file" )
def test_help(self):
self.assertRaises(SystemExit, lambda: self.command.dispatch(['-h'], None))

View File

@ -0,0 +1,3 @@
definedinyamlnotyml:
image: ubuntu
command: /bin/sleep 300