Not in a single macro, but assuming the chain of spells requested is possible it can be done in a single button press with macro-chaining.
If I understood your needs correctly they can be expressed like this:
IF SHIFT AND HARMABLE FOCUS THEN
CYCLONE FOCUS
ELSEIF HARMABLE MOUSEOVER THEN
CYCLONE MOUSEOVER
ELSEIF HARMABLE TARGET THEN
CYCLONE TARGET
ELSEIF HELPABLE DEAD TARGET AND OUT OF COMBAT THEN
REVIVE TARGET
ELSEIF HELPABLE DEAD TARGET AND IN COMBAT THEN
REBIRTH TARGET
ELSEIF HELPABLE LIVE TARGET THEN
INNERVATE SELF
OVERGROWTH
END
I think this should do it.
#showtooltip
/cast [help,dead,nocombat]Revive;[help,dead,combat]Rebirth;[@focus,harm,nodead,mod:shift][@mouseover,harm,nodead][harm,nodead]Cyclone
/click [help,nodead]BarXButtonY
In another macro placed on BarXButtonY you need this:
/showtooltip
/cast [@player]Innervate
/cast Overgrowth
You’d need to discover the button frame name that I’ve used the placeholder “BarXButtonY” for - use /fstack to do that, place the second macro there, and substitute exactly that button’s frame name for BarXButtonY.
This assumes that you can actually cast Innervate on yourself and that you can cast Overgrowth immediately after. Since Innervate doesn’t appear to be on the GCD you should be good if you can do so.
Your icon’s gonna be messed up with the last option (the Live Friendly Target one) because “click” doesn’t show the icon of the button it clicks.
There is a workaround for that but it’s ugly and would require a THIRD macro to fit it all in. I’m assuming you’ll be okay with a “?” there unless you tell me you absolutely have to have a spell icon.