tazbug annotate tazbug @ rev 104
Add edit link to buggy bug :)
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Fri Feb 10 17:19:52 2017 +0100 (2017-02-10) |
parents | 291785fb21f7 |
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 |