#!/usr/bin/env python3
# Software License Agreement (GPL)
#
# \file      venv_init
# \authors   Paul Bovbel <pbovbel@locusrobotics.com>
# \copyright Copyright (c) (2017,), Locus Robotics, All rights reserved.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

import argparse

from catkin_virtualenv import configure_logging
from catkin_virtualenv.venv import Virtualenv


if __name__ == '__main__':
    configure_logging()

    parser = argparse.ArgumentParser(description=Virtualenv.lock.__doc__)
    parser.add_argument(
        'venv', help="Path of virtualenv to manage.")
    parser.add_argument(
        '--package-name', required=True, help="Package name that virtualenv belongs to.")
    parser.add_argument(
        '--input-requirements', required=True, help="Where to write read requirement specs.")
    parser.add_argument(
        '--no-overwrite', action="store_true", help="Don't overwrite lock file if it exists.")
    parser.add_argument(
        '--extra-pip-args', default='""', type=str, help="Extra pip args for install.")

    args = parser.parse_args()

    extra_pip_args = args.extra_pip_args[1:-1]

    venv = Virtualenv(args.venv)
    venv.lock(
        package_name=args.package_name,
        input_requirements=args.input_requirements,
        no_overwrite=args.no_overwrite,
        extra_pip_args=[arg for arg in extra_pip_args.split(" ") if arg != ""],
    )
