Runs an update operation on the specified packages, or all packages if none is specified.

    :type pkgs: list(str)
    :param pkgs:
        List of packages to update

    :return: The upgraded packages. Example element: ``['libxslt-1.1.0', 'libxslt-1.1.10']``
    :rtype: list(tuple(str, str))

    .. code-block:: bash

        salt '*' nix.update
        salt '*' nix.update pkgs=one,two

def upgrade(*pkgs):
    '''
    Runs an update operation on the specified packages, or all packages if none is specified.

    :type pkgs: list(str)
    :param pkgs:
        List of packages to update

    :return: The upgraded packages. Example element: ``['libxslt-1.1.0', 'libxslt-1.1.10']``
    :rtype: list(tuple(str, str))

    .. code-block:: bash

        salt '*' nix.update
        salt '*' nix.update pkgs=one,two
    '''
    cmd = _quietnix()
    cmd.append('--upgrade')
    cmd.extend(pkgs)

    out = _run(cmd)

    upgrades = [_format_upgrade(s.split(maxsplit=1)[1])
                for s in out['stderr'].splitlines()
                if s.startswith('upgrading')]

    return [[_strip_quotes(s_) for s_ in s]
            for s in upgrades]