repo-update 807 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/bin/bash
  2. if [[ "$1" != "" ]];then
  3. force=true;
  4. else
  5. force=false;
  6. fi;
  7. root="$(dirname $BASH_SOURCE)/..";
  8. . $root/etc/sites.conf
  9. for val in "${sites[@]}"; do
  10. unset site;
  11. declare -A site;
  12. eval "site=($val)";
  13. host=${site[host]};
  14. user=${site[username]};
  15. echo "Updating $user@$host";
  16. case ${site[type]} in
  17. ssh)
  18. echo -e "\tUploading files";
  19. expect -c "
  20. set timeout 1
  21. log_user 0
  22. spawn scp -r $root/skel $user@$host:${site[root]}
  23. expect yes/no { send yes\r ; exp_continue }
  24. expect password: {
  25. send $(echo ${site[password]} | base64 --decode | gpg -d -q --no-mdc-warning)\r
  26. log_user 1
  27. set timeout -1
  28. }
  29. expect eof {
  30. exit
  31. }
  32. }";
  33. echo -e "\tDone uploading"
  34. ;;
  35. *)
  36. echo -e "\tType '${site[type]}' not implemented.";
  37. esac;
  38. done;