<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def execute(prog, argv):
 """Execute whole program :param prog: program name :param argv: list: script arguments :return: """

    if pathlib.Path(prog).parts[-1] in ('versionner', 'versionner.py'):
        print("versionner name is deprecated, use \"ver\" now!", file=sys.stderr)

    cfg_files = [
        pathlib.Path(os.path.expanduser('~')) / defaults.RC_FILENAME,
    ]
    proj_cfg_file = _find_project_config_file(cfg_files[0])
    if proj_cfg_file:
        cfg_files.append(proj_cfg_file)

    cfg = config.Config(cfg_files)
    parse_args(argv, cfg)

    cmd = commands.get(cfg.command, cfg)

    try:
        result = cmd.execute()
    except VersionnerError as exc:
        print('%s: %s' % (exc.__class__.__name__, exc), file=sys.stderr)
        return exc.ret_code

    print("Current version: %s" % (result.current_version, ))

    if result.modified_files:
        print('Changed' + (' and committed' if cfg.commit else '') + ' %(files)s files (%(changes)s changes)' % {
            'files': result.modified_files,
            'changes': result.modifications,
        })

    return 0