diff --git a/.config/fish/config.fish b/.config/fish/config.fish index 9e37c4d..acb9487 100644 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -53,4 +53,52 @@ function hotspot sudo sysctl net.ipv4.ip_default_ttl=65 end +function send-email + set -l from "guix-home@ethanreece.com" + set -l to "" + set -l subject "" + + # Parse the arguments + for arg in $argv + switch $arg + case '--from=*' + set from (string split '=' -- $arg)[2] + case '--to=*' + set to (string split '=' -- $arg)[2] + case '--subject=*' + set subject (string split '=' -- $arg)[2] + end + end + + set temp_file (mktemp) + + # Add required headers to the temporary file + echo "To: $to" >>$temp_file + echo "From: $from" >>$temp_file + echo "Subject: $subject" >>$temp_file + echo "" >>$temp_file # Add a blank line to separate headers from the body + + # Open the temporary file with $EDITOR + $EDITOR $temp_file + + # Extract the recipient from the file if not provided as an argument + if test -z "$to" + set to (grep -m 1 '^To: ' $temp_file | sed 's/^To: //') + end + + echo "Do you want to send the email? (y/n)" + read -l response + + if test "$response" = y + # Send the email using msmtp + msmtp $to <$temp_file + echo "Email sent." + else + echo "Email not sent." + end + + # Delete the temporary file + rm $temp_file +end + fish_add_path -g