| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | 
							- from __future__ import absolute_import
 
- from __future__ import division
 
- from __future__ import unicode_literals
 
- import os
 
- import platform
 
- import ssl
 
- import subprocess
 
- import docker
 
- from six.moves import input
 
- import compose
 
- def yesno(prompt, default=None):
 
-     """
 
-     Prompt the user for a yes or no.
 
-     Can optionally specify a default value, which will only be
 
-     used if they enter a blank line.
 
-     Unrecognised input (anything other than "y", "n", "yes",
 
-     "no" or "") will return None.
 
-     """
 
-     answer = input(prompt).strip().lower()
 
-     if answer == "y" or answer == "yes":
 
-         return True
 
-     elif answer == "n" or answer == "no":
 
-         return False
 
-     elif answer == "":
 
-         return default
 
-     else:
 
-         return None
 
- def call_silently(*args, **kwargs):
 
-     """
 
-     Like subprocess.call(), but redirects stdout and stderr to /dev/null.
 
-     """
 
-     with open(os.devnull, 'w') as shutup:
 
-         try:
 
-             return subprocess.call(*args, stdout=shutup, stderr=shutup, **kwargs)
 
-         except WindowsError:
 
-             # On Windows, subprocess.call() can still raise exceptions. Normalize
 
-             # to POSIXy behaviour by returning a nonzero exit code.
 
-             return 1
 
- def is_mac():
 
-     return platform.system() == 'Darwin'
 
- def is_ubuntu():
 
-     return platform.system() == 'Linux' and platform.linux_distribution()[0] == 'Ubuntu'
 
- def get_version_info(scope):
 
-     versioninfo = 'docker-compose version {}, build {}'.format(
 
-         compose.__version__,
 
-         get_build_version())
 
-     if scope == 'compose':
 
-         return versioninfo
 
-     if scope == 'full':
 
-         return (
 
-             "{}\n"
 
-             "docker-py version: {}\n"
 
-             "{} version: {}\n"
 
-             "OpenSSL version: {}"
 
-         ).format(
 
-             versioninfo,
 
-             docker.version,
 
-             platform.python_implementation(),
 
-             platform.python_version(),
 
-             ssl.OPENSSL_VERSION)
 
-     raise ValueError("{} is not a valid version scope".format(scope))
 
- def get_build_version():
 
-     filename = os.path.join(os.path.dirname(compose.__file__), 'GITSHA')
 
-     if not os.path.exists(filename):
 
-         return 'unknown'
 
-     with open(filename) as fh:
 
-         return fh.read().strip()
 
 
  |