def runParsed(self, cli_obj, name, args):
        if args.path is None:
            # If no path was specified, pick the path from the current entry
            try:
                current_entry = cli_obj.review.getCurrentEntry()
            except NoCurrentEntryError, ex:
                cli_obj.outputError(ex)
                return 1

            # If this is a deleted file, view the old version
            # Otherwise, view the new version
            if current_entry.status == git.diff.Status.DELETED:
                commit = 'parent'
                path = current_entry.old.path
            else:
                commit = 'child'
                path = current_entry.new.path
        else:
            commit, path = args.path

        try:
            file = cli_obj.review.getFile(commit, path)
        except git.NoSuchBlobError, ex:
            # Convert the "blob" error message to "file", just to be more
            # user-friendly for developers who aren't familiar with git
            # terminology.
            cli_obj.outputError('no such file %r' % (ex.name,))
            return 1
        except git.NotABlobError, ex:
            cli_obj.outputError('not a file %r' % (ex.name,))
            return 1

        cmd = cli_obj.getViewCommand(file)
        try:
            p = subprocess.Popen(cmd)
        except __HOLE__, ex:
            cli_obj.outputError('failed to invoke %r: %s' % (cmd[0], ex))
            return 1

        ret = p.wait()
        cli_obj.setSuggestedCommand('next')
        return ret
dataset/ETHPy150Open facebookarchive/git-review/src/gitreview/review/cli_reviewer.py/ViewCommand.runParsed