I'm looking for a way to write a "decorator" (in Python terminology) or a "wrapper" for LaTeX environments: a way to give addition behaviour with save of the notation. For example, before every \begin{quote} execute a code that will add a \hrule.
I could make it for a single command using \let:
\let\oldCommand\commandIWantToDecorate
\def\commandIWantToDecorate#1{<addition code>\oldCommand{#1}}
That will execute <addition code> without the need to change the command throughout the document.
Is there a similar way to decorate the whole environment? Maybe LaTeX creates some inner macros I can work with?
UPD the question Can I redefine a command to contain itself? doesn't solve my problem, because I'm interested in redefining environments, not solo macros.
The etoolbox package partly solve the problem, thanks @samcarter!
But in "education" reasons I'm interesting is there a way to do decorate without additional packages, using just (La)TeX pre-build commands?

\let- version above would work for the environment starter macro as well, unless it has optional arguments -- then problems will appear – Dec 26 '18 at 21:10