tazbug annotate old/tazbug @ rev 151

Fix in users plugin (from tinycm)
author Christophe Lincoln <pankso@slitaz.org>
date Tue Feb 28 22:59:52 2017 +0100 (2017-02-28)
parents 3acb15d87d6e
children
rev   line source
pankso@5 1 #!/bin/sh
pankso@5 2 #
paul@17 3 # TazBug Command line tool. Help to encrypt password, key and post on the
pankso@5 4 # the server side.
pankso@5 5 #
pankso@52 6 # Copyright (C) 2012-2014 SliTaz GNU/Linux - BSD License
pankso@5 7 #
pankso@5 8 . /usr/lib/slitaz/httphelper
pankso@5 9 [ -f "/etc/slitaz/tazbug.conf" ] && . /etc/slitaz/tazbug.conf
pankso@5 10 [ -f "tazbug.conf" ] && . tazbug.conf
pankso@5 11
pankso@5 12 # Use same key for SliTaz sites.
pankso@5 13 conf=$HOME/.config/slitaz/account.conf
pankso@5 14
pankso@5 15 # Internationalization: $(gettext "")
pankso@5 16 . /usr/bin/gettext.sh
pankso@5 17 TEXTDOMAIN='tazbug'
pankso@5 18 export TEXTDOMAIN
pankso@5 19
pankso@5 20 # Parse cmdline options.
pankso@5 21 for opt in "$@"
pankso@5 22 do
pankso@5 23 case "$opt" in
pankso@5 24 --bug=*)
pankso@15 25 bug="${opt#--bug=}" ;;
pankso@5 26 --desc=*)
pankso@15 27 desc="${opt#--desc=}" ;;
pankso@5 28 --msg=*)
pankso@15 29 msg="${opt#--msg=}" ;;
pankso@5 30 --priority=*)
pankso@5 31 priority=${opt#--priority=} ;;
pankso@5 32 --pkgs=*)
pankso@15 33 pkgs="${opt#--pkgs=}" ;;
pankso@5 34 --name=*)
pankso@15 35 name="${opt#--name=}" ;;
pankso@5 36 --user=*)
pankso@5 37 user=${opt#--user=} ;;
pankso@5 38 --mail=*)
pankso@5 39 mail=${opt#--mail=} ;;
pankso@5 40 --pass=*)
pankso@5 41 pass=${opt#--pass=} ;;
pankso@5 42 esac
pankso@5 43 done
pankso@5 44
pankso@5 45 #
pankso@5 46 # Functions
pankso@5 47 #
pankso@5 48
pankso@5 49 # --> in /usr/lib/slitaz/httphelper
pankso@5 50 # httpd -e dont work with GET URL requests
pankso@5 51 http_urlencode() {
pankso@5 52 #space: + or %20
al@31 53 sed -e 's/ /+/g; s/!/%21/g; s/"/%22/g; s/#/%23/g; s/%/%25/g; s/&/%26/g'
pankso@5 54 }
pankso@5 55
pankso@5 56 # Usage.
pankso@5 57 usage() {
pankso@5 58 cat << EOT
pankso@5 59
al@31 60 $(gettext 'Usage:') $(basename $0) $(gettext '[command] [args]')
pankso@5 61
al@31 62 $(gettext 'Commands:')
pankso@5 63 gen-key $(gettext "Recreate the SliTaz secure key.")
pankso@5 64 gen-config $(gettext "Create a new SliTaz account configuration.")
pankso@5 65 signup $(gettext "Create a new account on SliTaz Bugs.")
pankso@5 66 new-msg $(gettext "Send a new message to an open bug.")
pankso@5 67 new-bug $(gettext "Send a new bug report.")
pankso@5 68
al@31 69 $(gettext 'Examples:')
pankso@5 70 $(basename $0) signup --name="Real Name" --user=login \\
pankso@5 71 --mail=mail@domain --pass=password
pankso@5 72 $(basename $0) new-msg --bug=0 --msg="Message for bug with ID 0"
pankso@5 73
pankso@5 74 EOT
pankso@5 75 }
pankso@5 76
pankso@5 77 # Check cmdline user info args
pankso@5 78 check_info_args() {
pankso@5 79 [ ! "$name" ] && gettext "Missing real name" && echo && exit 0
pankso@5 80 [ ! "$user" ] && gettext "Missing login name" && echo && exit 0
pankso@5 81 [ ! "$mail" ] && gettext "Missing email" && echo && exit 0
pankso@5 82 [ ! "$pass" ] && gettext "Missing password" && echo && exit 0
pankso@5 83 }
pankso@5 84
pankso@5 85 # Crypt pass when login
pankso@5 86 crypt_pass() {
pankso@5 87 echo -n "$1" | md5sum | awk '{print $1}'
pankso@5 88 }
pankso@5 89
pankso@5 90 # Gen a config file
pankso@5 91 gen_config() {
pankso@5 92 gettext "Creating SliTaz account configuration..."; echo
pankso@5 93 mkdir -p $HOME/.config/slitaz
pankso@5 94 cat > $conf << EOT
pankso@5 95 # SliTaz account configuration
pankso@5 96
pankso@5 97 NAME="$name"
pankso@5 98 USER="$user"
pankso@5 99 MAIL="$mail"
pankso@5 100 KEY=""
pankso@5 101 EOT
pankso@5 102 chmod 0600 $conf
pankso@5 103 }
pankso@5 104
pankso@5 105 # Gen the secure key: gen_key login mail passwd
pankso@5 106 gen_key() {
pankso@5 107 gettext "Creating SliTaz secure key..."; echo
pankso@5 108 key=$(echo -n "$user:$mail:$pass" | md5sum | awk '{print $1}')
pankso@5 109 sed -i s"/KEY=.*/KEY=\"$key\"/" $conf
pankso@5 110 chmod 0600 $conf
pankso@5 111 }
pankso@5 112
pankso@5 113 #
pankso@5 114 # Commands
pankso@5 115 #
pankso@5 116
pankso@5 117 case "$1" in
pankso@5 118 gen-key)
pankso@5 119 # MD5 key
pankso@5 120 [ ! "$pass" ] && gettext "Missing password" && echo && exit 0
pankso@5 121 . $conf || exit 1
pankso@5 122 gen_key $USER $MAIL $pass ;;
pankso@5 123 gen-config)
paul@17 124 # Recreate a config file if values have changed sites must be updated
pankso@5 125 check_info_args
pankso@5 126 gen_config
pankso@5 127 gen_key ;;
pankso@5 128 signup)
pankso@5 129 # Create an account on the server
pankso@5 130 check_info_args
pankso@5 131 echo ""
pankso@13 132 echo "Sending account request for: $name ($user)"
paul@18 133 # 'gen_key user:mail:passwd' locally but don't send it. It will be
paul@20 134 # generated on server from the user login, mail and encrypted password
pankso@5 135 # so it is not transmited in GET urls.
pankso@5 136 gen_config
pankso@15 137 pass=$(crypt_pass $pass)
pankso@15 138 name="$(echo $name | http_urlencode)"
pankso@5 139 gen_key
pankso@5 140 . $conf
pankso@15 141 echo "Secure key: $KEY"
pankso@15 142 # Wget GET url
pankso@5 143 busybox wget "${WEB_URL}?signup=$user&name=$name&mail=$mail&pass=$pass" \
pankso@5 144 -O /tmp/bug.msg
pankso@5 145 cat /tmp/bug.msg && rm -f /tmp/bug.msg && echo "" ;;
pankso@5 146 new-msg)
pankso@5 147 # Post a new message: ID message
pankso@5 148 . $conf || exit 1
pankso@5 149 [ ! "$bug" ] && gettext "Missing bug ID" && echo && exit 0
pankso@5 150 [ ! "$msg" ] && gettext "Missing message" && echo && exit 0
pankso@5 151 msg="$(echo $msg | http_urlencode)"
pankso@5 152 # Wget GET url
pankso@5 153 busybox wget \
pankso@5 154 "${WEB_URL}?key=$KEY&bug=$bug&msg=$msg" -O /tmp/bug.msg
pankso@5 155 cat /tmp/bug.msg && rm -f /tmp/bug.msg && echo "" ;;
pankso@5 156 new-bug)
pankso@5 157 # Post a new bug: bug desc priority pkgs
pankso@5 158 . $conf || exit 1
pankso@5 159 [ ! "$bug" ] && gettext "Missing bug title" && echo && exit 0
pankso@5 160 [ ! "$desc" ] && gettext "Missing description" && echo && exit 0
pankso@5 161 [ ! "$priority" ] && gettext "Missing bug priority" && echo && exit 0
pankso@5 162 bug="$(echo $bug | http_urlencode)"
pankso@5 163 desc="$(echo $desc | http_urlencode)"
border@36 164 releases="$(basename $(cat /var/lib/tazpkg/mirror))"
pankso@5 165 # Wget GET url
pankso@5 166 busybox wget \
border@36 167 "${WEB_URL}?key=$KEY&bug=$bug&desc=$desc&priority=$priority&pkgs=$pkgs&releases=$releases" \
pankso@5 168 -O /tmp/bug.msg
pankso@5 169 cat /tmp/bug.msg && rm -f /tmp/bug.msg && echo "" ;;
pankso@5 170 *)
pankso@5 171 usage ;;
pankso@5 172 esac
pankso@5 173
pankso@5 174 exit 0