slitaz-forge annotate scn/plugins/sdt/sdt.cgi @ rev 669
scn: fix sdt return IP (silly typo) was usinf testing code (thanks paul)
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Wed Mar 01 11:09:44 2017 +0100 (2017-03-01) |
parents | 9a9e98cc78e4 |
children |
rev | line source |
---|---|
pankso@639 | 1 #!/bin/sh |
pankso@639 | 2 # |
pankso@639 | 3 # TinyCM Plugin - SliTaz Distro Tracker |
pankso@639 | 4 # |
paul@643 | 5 # sdt.cgi: SliTaz Distros over the world. We don't track users |
pankso@639 | 6 # info, no mail or IP but the localization. The goal of Sdt is to help |
pankso@639 | 7 # show where SliTaz OS's are in the world. DB is in the flat file: |
pankso@639 | 8 # sdt.txt & using | as separator for easy parsing. |
pankso@639 | 9 # |
pankso@639 | 10 |
pankso@641 | 11 sdtdb="$tiny/$content/sdt/sdt.txt" |
pankso@641 | 12 |
pankso@640 | 13 sdt_summary() { |
pankso@639 | 14 cat << EOT |
pankso@639 | 15 <pre> |
pankso@639 | 16 DB file : <a href="content/sdt/sdt.txt">sdt.txt</a> |
pankso@639 | 17 DB size : $(du -sh $sdtdb | cut -d " " -f 1) |
pankso@639 | 18 Distro : $(wc -l $sdtdb | cut -d " " -f 1) |
pankso@639 | 19 </pre> |
pankso@639 | 20 EOT |
pankso@639 | 21 } |
pankso@639 | 22 |
pankso@640 | 23 sdt_table() { |
pankso@639 | 24 cat << EOT |
pankso@639 | 25 <table> |
pankso@639 | 26 <thead> |
pankso@639 | 27 <td>$(gettext "Date")</td> |
pankso@639 | 28 <td>$(gettext "User")</td> |
pankso@639 | 29 <td>$(gettext "Country")</td> |
pankso@639 | 30 <td>$(gettext "Release")</td> |
pankso@639 | 31 <td>$(gettext "Kernel")</td> |
pankso@639 | 32 <td>$(gettext "Mode")</td> |
pankso@639 | 33 </thead> |
pankso@639 | 34 EOT |
pankso@639 | 35 IFS="|" |
pankso@639 | 36 cat ${sdtdb} | while read date user country release kernel mode; |
pankso@639 | 37 do |
pankso@639 | 38 cat << EOT |
pankso@639 | 39 <tr> |
pankso@639 | 40 <td>$date</td> |
pankso@639 | 41 <td>$user</td> |
pankso@639 | 42 <td>$country</td> |
pankso@639 | 43 <td>$release</td> |
pankso@639 | 44 <td>$kernel</td> |
pankso@639 | 45 <td>$mode</td> |
pankso@639 | 46 </tr> |
pankso@639 | 47 EOT |
pankso@639 | 48 done && unset IFS |
pankso@639 | 49 echo "</table>" |
pankso@639 | 50 } |
pankso@639 | 51 |
pankso@640 | 52 sdt_check_ua() { |
pankso@639 | 53 if ! echo "$HTTP_USER_AGENT" | fgrep -q "SliTaz/SDT"; then |
pankso@639 | 54 echo "Only SDT clients are accepted" && exit 1 |
pankso@639 | 55 fi |
pankso@639 | 56 } |
pankso@639 | 57 |
pankso@639 | 58 case " $(GET sdt) " in |
pankso@639 | 59 *\ add\ *) |
pankso@640 | 60 sdt_check_ua |
pankso@639 | 61 date="$(date +%Y%m%d)" |
pankso@639 | 62 user=$(GET user) |
pankso@639 | 63 release=$(GET release) |
pankso@639 | 64 kernel=$(GET kernel) |
pankso@639 | 65 mode=$(GET mode) |
pankso@639 | 66 country=$(GET country) |
pankso@639 | 67 message=$(GET message) |
pankso@639 | 68 cat << EOT |
pankso@639 | 69 SliTaz Distro Tracker |
pankso@639 | 70 -------------------------------------------------------------------------------- |
pankso@639 | 71 Date : ${date} |
pankso@639 | 72 User : ${user} |
pankso@639 | 73 Country : ${country} |
pankso@639 | 74 Release : ${release} |
pankso@639 | 75 Kernel : ${kernel} |
pankso@639 | 76 Mode : ${mode} |
pankso@639 | 77 -------------------------------------------------------------------------------- |
pankso@639 | 78 EOT |
pankso@639 | 79 # Add to DB |
pankso@639 | 80 echo "$date|$user|$country|$release|$kernel|$mode" >> ${sdtdb} |
pankso@639 | 81 echo "Distro added to the database. Thank you :-)"; echo |
pankso@639 | 82 exit 0 ;; |
pankso@639 | 83 |
pankso@639 | 84 *\ geoloc\ *) |
pankso@639 | 85 # Show IP and country |
pankso@639 | 86 header "Content-Type: text/plain" |
pankso@669 | 87 echo "$REMOTE_ADDR" |
pankso@639 | 88 exit 0 ;; |
pankso@639 | 89 |
pankso@639 | 90 *\ country\ *) |
paul@643 | 91 # Show distros by country |
pankso@639 | 92 ;; |
pankso@639 | 93 |
pankso@639 | 94 *\ sdt\ *) |
pankso@639 | 95 d="SliTaz Distro Tracker" |
pankso@639 | 96 header |
pankso@639 | 97 html_header |
pankso@639 | 98 user_box |
pankso@639 | 99 cat << EOT |
pankso@639 | 100 <h2>$d</h2> |
pankso@639 | 101 <p> |
pankso@669 | 102 $(gettext "Add your SliTaz distro to the database. Open a terminal and execute:") |
pankso@639 | 103 <b>sdt send [username]</b> |
pankso@639 | 104 <p> |
pankso@639 | 105 EOT |
pankso@640 | 106 sdt_summary |
paul@643 | 107 echo "<h3>Distros table</h3>" |
pankso@639 | 108 echo "<pre>" |
pankso@640 | 109 sdt_table |
pankso@639 | 110 echo "</pre>" |
pankso@639 | 111 html_footer |
pankso@639 | 112 exit 0 ;; |
pankso@639 | 113 |
pankso@639 | 114 *\ raw\ *) |
pankso@640 | 115 # Plain text stats |
pankso@639 | 116 header "Content-Type: text/plain" |
pankso@639 | 117 cat << EOT |
pankso@639 | 118 Server time : $(date) |
pankso@639 | 119 Database size : $(du -sh $sdtdb | cut -d " " -f 1) |
pankso@639 | 120 Distro tracked : $(wc -l $sdtdb | cut -d " " -f 1) |
pankso@639 | 121 EOT |
pankso@639 | 122 exit 0 ;; |
pankso@639 | 123 esac |