123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- #!/bin/sh
- refresh_token_file()
- {
- echo ./D_oauth2_refresh_token_"$1".txt
- }
- access_token_file()
- {
- echo ./D_oauth2_access_token_"$1".txt
- }
- oauthdirect_file()
- {
- echo ./D_oauth2_oauthdirect_"$1".txt
- }
- #echo
- #echo "get_refresh_token youremail@gmail.com # First time, then once in a while when the refresh_token is no longer working"
- get_refresh_token()
- {
- refresh_token_file="`refresh_token_file $1`"
- access_token_file="`access_token_file $1`"
- # 1 Get an access_token and a refresh_token
-
- ${my_dirname}/oauth2_google.py --user="$1" \
- --client_id="108687549524-86sjq07f3ch8otl9fnr56mjnniltdrvn.apps.googleusercontent.com" \
- --client_secret=zAJO4PLxzeJ4yOaiJRk6f69k \
- --generate_oauth2_token --quiet
-
- cat typescript | grep -i 'Refresh Token:' | tail -1 | sed -e 's/Refresh Token: *//' | tr -d '\r' | tee "$refresh_token_file"
- cat typescript | grep -i 'Access Token:' | tail -1 | sed -e 's/Access Token: *//' | tr -d '\r' | tee "$access_token_file"
- echo refresh_token saved in "$refresh_token_file"
- echo access_token saved in "$access_token_file"
- }
- #echo
- #echo "regenerate_access_token youremail@gmail.com # 2 Regenerate an access_token if time passes too long (3600s)"
- regenerate_access_token()
- {
- refresh_token_file="`refresh_token_file $1`"
- access_token_file="`access_token_file $1`"
- # 2 Regenerate an access_token if time passes too long (3600s)
- refresh_token="`cat $refresh_token_file|tr -d '\r'`"
- echo ${my_dirname}/oauth2_google.py --quiet --user="$1" \
- --client_id="108687549524-86sjq07f3ch8otl9fnr56mjnniltdrvn.apps.googleusercontent.com" \
- --client_secret=zAJO4PLxzeJ4yOaiJRk6f69k \
- --refresh_token="$refresh_token"
-
- ${my_dirname}/oauth2_google.py --quiet --user="$1" \
- --client_id="108687549524-86sjq07f3ch8otl9fnr56mjnniltdrvn.apps.googleusercontent.com" \
- --client_secret=zAJO4PLxzeJ4yOaiJRk6f69k \
- --refresh_token="$refresh_token" | tee "$access_token_file"
-
- echo access_token saved in "$access_token_file"
- }
- refresh_token_is_here()
- {
- echo In refresh_token_is_here "$@"
- # force mode
- if test -n "$2"; then
- return $2
- fi
-
- refresh_token_file="`refresh_token_file $1`"
- if test -f "$refresh_token_file" && test -s "$refresh_token_file" ; then
- echo $refresh_token_file is here
- return 0
- else
- echo $refresh_token_file is not here or empty
- return 1
- fi
- }
- #echo
- #echo 'generate_oauthdirect youremail@gmail.com'
- generate_oauthdirect()
- {
- access_token_file="`access_token_file $1`"
- access_token="`cat $access_token_file`"
- oauthdirect_file="`oauthdirect_file $1`"
- # 3 Generate oauth2_string for imap authentication
- ${my_dirname}/oauth2_google.py --generate_oauth2_string --user="$1" \
- --access_token="$access_token" | tail -1 | tee "$oauthdirect_file"
- echo oauth2_string saved in "$oauthdirect_file"
- echo Give this to imapsync --oauthdirect1 or --oauthdirect2
- }
- #echo
- #echo authenticate_imap youremail@gmail.com
- authenticate_imap()
- {
- # 4
- access_token_file="`access_token_file $1`"
- access_token="`cat $access_token_file`"
- echo $access_token
- ${my_dirname}/oauth2_imap_from_token "$1" "$access_token"
- }
- #echo 'authenticate_imap_google_from_access_token youremail@gmail.com'
- authenticate_imap_google_from_access_token()
- {
- # 5
- access_token_file="`access_token_file $1`"
- access_token="`cat $access_token_file`"
- echo "$access_token"
- ${my_dirname}/oauth2_google.py --user="$1" \
- --access_token="$access_token" --test_imap_authentication
- }
- #echo generate_for_imapsync_tests
- generate_for_imapsync_tests()
- {
- regenerate_access_token imapsync.gl0@gmail.com \
- && generate_oauthdirect imapsync.gl0@gmail.com \
- && authenticate_imap_google_from_access_token imapsync.gl0@gmail.com \
- && authenticate_imap imapsync.gl0@gmail.com
- }
- verify_email()
- {
- test X"" != X"$1"
- }
- usage()
- {
- verify_email "$1" || {
- echo "Please, give an email address as parameter"
- return 1
- }
- }
- get_refresh_token_by_script_fork()
- {
- if test -f $0.lock; then
- echo I am a child in script $$
- get_refresh_token "$1"
- else
- echo I am the parent
- touch $0.lock
- echo will do: script -q -f -c "$0 $1 $2"
- script -q -f -c "$0 $1 $2"
- rm $0.lock
- regenerate_access_token "$1"
- generate_oauthdirect "$1"
- fi
- }
- I_am_interractive_or_exit()
- {
- if test -t 0; then
- echo Interractive
- return 0
- else
- echo Not interractive
- exit 1
- fi
- }
- #echo "generate_token youremail@gmail.com"
- generate_token()
- {
- echo I am PID $$ $0 "$@"
- #
- usage "$1" || return 1
-
- if refresh_token_is_here "$1" "$2" ; then
- regenerate_access_token "$1"
- generate_oauthdirect "$1"
- authenticate_imap_google_from_access_token "$1"
- authenticate_imap "$1"
- else
- I_am_interractive_or_exit
- get_refresh_token_by_script_fork "$@"
- fi
-
- }
- my_dirname=`dirname $0`
- generate_token "$@"
|