Skip to content

Instantly share code, notes, and snippets.

@Nyr
Last active November 27, 2019 01:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Nyr/d32583588bf3fde43235082e9091c5b0 to your computer and use it in GitHub Desktop.
Save Nyr/d32583588bf3fde43235082e9091c5b0 to your computer and use it in GitHub Desktop.
#!/bin/bash
#
# amigo-invisible.sh
#
# Este script gestionará un archivo amigos.csv con siguiente el formato:
# nombre,email
#
# Limitaciones:
# - El .csv no puede contener líneas en blanco
# - El sorteo puede ser lento/ineficiente con listas de amigos MUY largas
# Especifica el correo de origen
from="noreply@99.yt"
basedir=$(dirname $0)
# Realizar sorteo
echo "Realizando sorteo..."
cp "$basedir/amigos.csv" "$basedir/resultados.csv"
while grep -qFxf "$basedir/amigos.csv" "$basedir/resultados.csv" ; do
cut -d "," -f 1 "$basedir/amigos.csv" > "$basedir/nombres"
cut -d "," -f 2 "$basedir/amigos.csv" | shuf > "$basedir/correos"
paste -d "," "$basedir/nombres" "$basedir/correos" > "$basedir/resultados.csv"
done
# Enviar correos
echo
IFS=","
while read nombre correo; do
echo "Enviando correo a $correo..."
echo "$nombre!!" | mail -a "From: $from" -s "Tu amigo invisible es..." "$correo"
done < "$basedir/resultados.csv"
rm -f "$basedir/nombres" "$basedir/correos"
echo
echo "Trabajo completado!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment