system("source ~/.keychain/hostname-sh; cmd");
Is this what you're looking for?
Yes, this works. Is there a way to only source the file once? There are a bit over a dozen scp and ssh commands in the script. Unfortunately this is not my script, otherwise I'd have just done this all in bash.