diff --git a/fig/cli/command.py b/fig/cli/command.py index 37042398..abf08762 100644 --- a/fig/cli/command.py +++ b/fig/cli/command.py @@ -11,7 +11,7 @@ import yaml from ..project import Project from .docopt_command import DocoptCommand from .formatter import Formatter -from .utils import cached_property, docker_url, call_silently +from .utils import cached_property, docker_url, call_silently, is_mac, is_ubuntu from .errors import UserError log = logging.getLogger(__name__) @@ -23,7 +23,26 @@ class Command(DocoptCommand): try: super(Command, self).dispatch(*args, **kwargs) except ConnectionError: - if call_silently(['which', 'docker-osx']) == 0: + if call_silently(['which', 'docker']) != 0: + if is_mac(): + raise UserError(""" +Couldn't connect to Docker daemon. You might need to install docker-osx: + +https://github.com/noplay/docker-osx +""") + elif is_ubuntu(): + raise UserError(""" +Couldn't connect to Docker daemon. You might need to install Docker: + +http://docs.docker.io/en/latest/installation/ubuntulinux/ +""") + else: + raise UserError(""" +Couldn't connect to Docker daemon. You might need to install Docker: + +http://docs.docker.io/en/latest/installation/ +""") + elif call_silently(['which', 'docker-osx']) == 0: raise UserError("Couldn't connect to Docker daemon - you might need to run `docker-osx shell`.") else: raise UserError(""" diff --git a/fig/cli/utils.py b/fig/cli/utils.py index 99492375..8a26e7b8 100644 --- a/fig/cli/utils.py +++ b/fig/cli/utils.py @@ -5,6 +5,7 @@ import datetime import os import socket import subprocess +import platform from .errors import UserError @@ -117,3 +118,11 @@ def call_silently(*args, **kwargs): """ with open(os.devnull, 'w') as shutup: return subprocess.call(*args, stdout=shutup, stderr=shutup, **kwargs) + + +def is_mac(): + return platform.system() == 'Darwin' + + +def is_ubuntu(): + return platform.system() == 'Linux'