From ee1e5e95abb24e62ba26047f47d729279b031980 Mon Sep 17 00:00:00 2001 From: Zeno Zeng Date: Sat, 20 Sep 2014 17:19:56 +0800 Subject: [PATCH] use get/getall/getpwd --- user.sh | 57 +++++++++++++++++++++++++++++++++++++++++-------------- wlan.sh | 13 ++++++++++++- zjunet.sh | 8 ++++---- 3 files changed, 59 insertions(+), 19 deletions(-) diff --git a/user.sh b/user.sh index 0cc812e..1201e2c 100755 --- a/user.sh +++ b/user.sh @@ -24,26 +24,55 @@ mkdir -p $DIR # dispatch case "$1" in + add) - echo "USERNAME: " - read USERNAME - echo "PASSWORD: " - read PASSWORD - echo $PASSWORD > "$DIR/$USERNAME" + read -p "USERNAME: " USERNAME + read -p "PASSWORD: " PASSWORD + echo $PASSWORD > "$DIR/${USERNAME}" ;; + edit) - echo "USERNAME: " - read USERNAME - echo "PASSWORD: " - read PASSWORD - echo $PASSWORD > "$DIR/$USERNAME" + read -p "USERNAME: " USERNAME + read -p "PASSWORD: " PASSWORD + echo $PASSWORD > "$DIR/${USERNAME}" ;; + delete) - echo "USERNAME: " - read USERNAME - rm -i "$DIR/$USERNAME" + read -p "USERNAME: " USERNAME + rm -i "$DIR/${USERNAME}" ;; + list) - ls $DIR + ls -1A $DIR + ;; + + # Get a user + # @private + get) + COUNT=$(ls -1A $DIR | wc -l) + if [ "${COUNT}" -eq "0" ]; then + echo "No user found. Use 'zjunet user add' to add a user." + exit 1 + else + if [ "${COUNT}" -gt "1" ]; then + USERS=$(ls -1A $DIR | xargs | tr "\n" " ") + read -p "Choose User [ ${USERS}]: " USERNAME + else + USERNAME=$(ls -1 $DIR | head -n1) + fi + echo $USERNAME + fi + ;; + + # Get all users + # @private + getall) + ls -1A $DIR | xargs | tr "\n" " " + ;; + + # @private + getpwd) + USERNAME=$2 + cat "$DIR/${USERNAME}" ;; esac diff --git a/wlan.sh b/wlan.sh index 8c8277d..14a292b 100755 --- a/wlan.sh +++ b/wlan.sh @@ -1,4 +1,6 @@ -# wlan.sh +#!/bin/sh + +# wlan.sh -- login/logout for ZJUWLAN # # Copyright (C) 2014 Zhang Hai # Copyright (C) 2014 Zeno Zeng @@ -45,9 +47,18 @@ login() { fi } +BASEDIR=$(dirname $0) +USER="${BASEDIR}/user.sh" + +USERNAME=$($USER get) + +PASSWORD=$($USER getpwd $USERNAME) + case "$1" in login) + login $USERNAME $PASSWORD ;; logout) + logout $USERNAME $PASSWORD ;; esac diff --git a/zjunet.sh b/zjunet.sh index 34b624f..ba14981 100755 --- a/zjunet.sh +++ b/zjunet.sh @@ -22,18 +22,18 @@ BASEDIR=$(dirname $0) case "$1" in user) - "$BASEDIR/user.sh" $2 + "${BASEDIR}/user.sh" $2 ;; ip) ip route show 0/0 | cut -d " " -f 3 ;; wlan) - "$BASEDIR/wlan.sh" + "${BASEDIR}/wlan.sh" ;; vpn) - "$BASEDIR/vpn.sh" + "${BASEDIR}/vpn.sh" ;; dns) - "$BASEDIR/dns.sh" + "${BASEDIR}/dns.sh" ;; esac