Re: [PATCH gentoolkit] bin: Add merge-driver-ekeyword
Zac Medico <[email protected]> Mon, 28 Dec 2020 17:09:15 -0800
| Newsgroups | gmane.linux.gentoo.portage.devel |
|---|---|
| Message-ID | <[email protected]> |
On 12/28/20 3:15 PM, Matt Turner wrote:
> +def apply_keyword_changes(ebuild: str, pathname: str,
> + changes: List[Tuple[Optional[str],
> + Optional[str]]]) -> int:
> + result: int = 0
> +
> + # ekeyword will only modify files named *.ebuild, so make a symlink
> + ebuild_symlink: str = os.path.basename(pathname)
> + os.symlink(ebuild, ebuild_symlink)
Are we sure that the current working directory is an entirely safe place
to create this symlink? A simple fix would be to use
tempfile.TemporaryDirectory to create a temporary directory to hold the
symlink. Or, we could change ekeyword to assume that an argument is an
ebuild if os.path.isfile(arg) succeeds.
> + for removals, additions in changes:
> + args = []
> + for rem in removals:
> + # Drop leading '~' and '-' characters and prepend '^'
> + i = 1 if rem[0] in ('~', '-') else 0
> + args.append('^' + rem[i:])
> + if additions:
> + args.extend(additions)
> + args.append(ebuild_symlink)
> +
> + result = ekeyword.main(args)
> + if result != 0:
> + break
> +
> + os.remove(ebuild_symlink)
> + return result
--
Thanks,
Zac
signature.asc
(application/pgp-signature, 981 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQKSBAEBCgB9FiEE8OgXaltWzqgSupCu0HX7jBBKPSAFAl/qgbtfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEYw RTgxNzZBNUI1NkNFQTgxMkJBOTBBRUQwNzVGQjhDMTA0QTNEMjAACgkQ0HX7jBBK PSDK0A/2MLMAn+7is9rsm1FGiv6SkLqxJShwOxrAVs6wLZCHU7FUiPv2b5ZjL0e5 hKypCuOKgYMyZ/MnCA1YMCb0fOVPaiBO8dkvsttqJKCH7ilLhHtrJD9xgItm33KY J1wII0VChAZefJj3P5PBGE/jVtkK7exRa9H+toX3UA115hskXzQLZXj1fXabcL8m 4dIISZoLnBIGYd66FB8kYZkH0fyc5W5G7v9WlZv9dqyeQ22vFACdHAKOdCXSnKCh ItKherDA85FkMRCh4W21fsKf8PsFFDXU8ZCWdfPDiNaEnUw9Z5667EQFLxzDfETR 1avLtC5nhc/hbh9+EudZ0+fYPdWG7OfLvtPX1/jCcWBGimYGxgtb2JzmrxRMpjGa nI8TYlRV4yUIXNj6VgXE0/QvfkZsFaUDDFlBiXyvQCZH7GHwS4eVgeZ8Cis8MoD7 KYGbpjfjDvs6FOm+830Js8bLZRLcjh1As1RFECHh5atqfwSJmywm0pGDQ1Sptowp PySm+iHstBea/SQdb2FFC5feH9BBwZf4Wz8ECwxgED0mdxfZpX7Y/qcGl/tfe36v kgE5RUdE8Mfacfd95zb+B5+1jH/J1IfAKpGzrBxC+pa0H4Kqdp8fz15xIvpIraQe b0nNwz2lNbQFapiX0ZrTYGJgOIbxJhmJvr4WDgrkMx/WUik5AA== =gI7y -----END PGP SIGNATURE-----