From 752c73a67e2620ca764993ea34f072d5908a6612 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Mon, 5 Mar 2012 16:01:22 +0000 Subject: setup-proxy: (over?)simplify We want avoid asking questions and in the proxy case most people will pick 'none'. For those who needs proxy there is still a possibility to specify the entire proxy url in one shot, rather than asking lot of questions. --- setup-proxy.in | 101 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 52 insertions(+), 49 deletions(-) diff --git a/setup-proxy.in b/setup-proxy.in index 4d62ea0..1b1b008 100644 --- a/setup-proxy.in +++ b/setup-proxy.in @@ -3,63 +3,66 @@ PREFIX= . "$PREFIX/lib/libalpine.sh" + +usage() { + cat <<__EOF__ +usage: setup-proxy [-hq] [PROXYURL] + +Setup http proxy + +options: + -h Show this help + -q Quiet mode + +If PROXYURL is not specified user will be prompted. +__EOF__ + exit 1 +} + + + +while getopts "hq" opt; do + case "$opt" in + q) quiet=1;; + h) usage;; + esac +done + +shift $(( $OPTIND - 1)) + +proxyurl="$1" + PROFILE="$ROOT/etc/profile.d/proxy.sh" if [ -f "$PROFILE" ] ; then - proxyserver=`grep "^# proxyserver" $PROFILE | cut -f 2 -d '='` - proxyuser=`grep "^# proxyuser" $PROFILE | cut -f 2 -d '='` - proxypass=`grep "^# proxypass" $PROFILE | cut -f 2 -d '='` + . $PROFILE fi -echon "name of proxyserver ? (e.g proxy.domain.loc:8080) [$proxyserver] " -default_read proxyserver $proxyserver -if echo $proxyserver | grep -q ":"; then - echon "port of proxyserver ? [8080] " - default_read proxyport "8080" - proxyserver=$proxyserver:$proxyport -fi +suggest=${http_proxy:-none} +while true; do + case "$proxyurl" in + http://*) break;; + none) proxyurl= ; break;; + esac + echon "HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [$suggest] " + default_read proxyurl $suggest +done -if [ "$proxyuser" = "" ] ; then - needauth="no" -else - needauth="yes" -fi -echon "do you need authentication ? [$needauth] " -default_read needauth $needauth - -if [ "$needauth" = "yes" ]; then - echon "username ? (e.g felix) leave empty if not required [$proxyuser] " - default_read proxyuser $proxyuser - - if [ -n "$proxyuser" ] ; then - echon "password for proxyserver ? [$proxypass] " - default_read proxypass $proxypass - else - proxypass="" - fi +if [ -z "$proxyurl" ]; then + rm -f "$PROFILE" else - proxyuser="" - proxypass="" + cat >"$PROFILE" <<__EOF__ +# this file was generated with and might get overwritten by setup-proxy + +export http_proxy=$proxyurl +export https_proxy=$proxyurl +export ftp_proxy=$proxyurl +__EOF__ fi -( - echo "# proxyserver=$proxyserver" - echo "# proxyuser=$proxyuser" - echo "# proxypass=$proxypass" -) > $PROFILE - -if [ "$proxyuser" = "" ] ; then - ( - echo "export http_proxy=http://$proxyserver/" - echo "export https_proxy=http://$proxyserver/" - echo "export ftp_proxy=http://$proxyserver/" - ) >> $PROFILE -else - ( - echo "export http_proxy=http://$proxyuser:$proxypass@$proxyserver/" - echo "export https_proxy=http://$proxyuser:$proxypass@$proxyserver/" - echo "export ftp_proxy=http://$proxyuser:$proxypass@$proxyserver/" - ) >> $PROFILE +[ -e "$PROFILE" ] || exit 1 + +if [ -z "$quiet" ]; then + echo -e "\nTo make changes active please do login again or source $PROFILE\nwith \". $PROFILE\"" fi -echo -e "\nto make changes active please do login again or source $PROFILE with \". $PROFILE\"" -- cgit v1.2.3