# HG changeset patch
# User Vincent Hatakeyama <vincent.hatakeyama@xcg-consulting.fr>
# Date 1523010510 -7200
#      Fri Apr 06 12:28:30 2018 +0200
# Node ID 7dad6c32cf7c127b070a581b71158ace2d009d96
# Parent  e7a9c854af8840d2efdee445167e7e5e8d6c391b
make docker_dev_start call build with dev option when the image is not present

diff --git a/docker_build.py b/docker_build.py
--- a/docker_build.py
+++ b/docker_build.py
@@ -21,17 +21,14 @@
 
 _logger = logging.getLogger(__name__)
 
-__version__ = '0.0.1'
+__version__ = '0.1.0'
 __date__ = '2018-04-04'
-__updated__ = '2018-04-04'
+__updated__ = '2018-04-06'
 
 
 def main(argv=None):  # IGNORE:C0111
     """Parse arguments and docker build
     """
-    if argv is not None:
-        sys.argv.extend(argv)
-
     program_version = __version__
     program_build_date = str(__updated__)
     program_version_message = '%%(prog)s %s (%s)' % (
@@ -91,7 +88,7 @@
 
     # TODO detect that user is member of docker group
 
-    nmspc = parser.parse_args()
+    nmspc = parser.parse_args(argv)
     verbose = nmspc.verbose
     if not verbose:
         logging.basicConfig(level=logging.WARN)
@@ -192,6 +189,6 @@
 
 
 if __name__ == "__main__":
-    return_code = main()
+    return_code = main(sys.argv[1:])
     if return_code:
         exit(return_code)
diff --git a/docker_dev_start.py b/docker_dev_start.py
--- a/docker_dev_start.py
+++ b/docker_dev_start.py
@@ -26,9 +26,9 @@
 
 _logger = logging.getLogger(__name__)
 
-__version__ = '0.1.1'
+__version__ = '1.0.0'
 __date__ = '2017-08-11'
-__updated__ = '2018-04-04'
+__updated__ = '2018-04-06'
 
 
 def which(program):
@@ -55,9 +55,6 @@
 def main(argv=None):  # IGNORE:C0111
     """Parse arguments and launch conversion
     """
-    if argv is not None:
-        sys.argv.extend(argv)
-
     program_version = __version__
     program_build_date = str(__updated__)
     program_version_message = '%%(prog)s %s (%s)' % (
@@ -174,7 +171,18 @@
     )
     parser.add_argument(
         '--no-flake8',
-        help="Do not run flake8",
+        help="Do not run flake8 [default: %(default)s]",
+        action='store_true',
+    )
+    build_group = parser.add_mutually_exclusive_group()
+    build_group.add_argument(
+        '--no-build',
+        help="Do not build locally [default: %(default)s]",
+        action='store_true',
+    )
+    build_group.add_argument(
+        '--force-build',
+        help="Force new local build [default: %(default)s]",
         action='store_true',
     )
     network_group = parser.add_mutually_exclusive_group()
@@ -195,7 +203,7 @@
     # TODO add a way to add options to docker
     # TODO add a way to add arg to odoo
 
-    nmspc = parser.parse_args()
+    nmspc = parser.parse_args(argv)
     verbose = nmspc.verbose
     if not verbose:
         logging.basicConfig(level=logging.WARN)
@@ -242,9 +250,20 @@
     docker_client = docker_api(base_url='unix://var/run/docker.sock')
     image_list = docker_client.images(name=image, quiet=True)
     if not image_list:
-        logging.warning("Image %s does not exist", image)
+        logging.info("Image %s does not exist", image)
     else:
-        logging.info("Test image found")
+        logging.info("Image %s exists", image)
+    if (not image_list and not nmspc.no_build) or nmspc.force_build:
+        logging.info("Building image %s", image)
+        import docker_build
+        arguments = [
+            '--dev'
+        ]
+        if verbose == 1:
+            arguments.append('-v')
+        elif verbose and verbose > 1:
+            arguments.append('-vv')
+        docker_build.main(arguments)
 
     # options is only used with subprocess call
     options = [
@@ -579,6 +598,6 @@
 
 
 if __name__ == "__main__":
-    return_code = main()
+    return_code = main(sys.argv[1:])
     if return_code:
         exit(return_code)