slitaz-forge annotate ns/web/index.cgi @ rev 583

Add http://ns.slitaz.org/
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Dec 06 14:45:30 2014 +0100 (2014-12-06)
parents
children 55d3d10d8b93
rev   line source
pascal@583 1 #!/bin/sh
pascal@583 2
pascal@583 3 # Get parameters with GET, POST and FILE functions
pascal@583 4 . /usr/bin/httpd_helper.sh
pascal@583 5
pascal@583 6 OWNERFILE=name.users
pascal@583 7 ip="$(GET ip)"
pascal@583 8 [ "$ip" ] || ip=$REMOTE_ADDR
pascal@583 9 name="$(GET name)"
pascal@583 10 name="${name%.by.slitaz.org}"
pascal@583 11 if [ "$name" -a "$REMOTE_USER" ]; then
pascal@583 12 if grep -qs ^$name $OWNERFILE ; then
pascal@583 13 owner="$(sed "/^$name /!d;s/.* //" $OWNERFILE)"
pascal@583 14 if [ "$owner" != "$REMOTE_USER" ]; then
pascal@583 15 echo "$name is already used by $owner. Abort."
pascal@583 16 exit 1
pascal@583 17 fi
pascal@583 18 else
pascal@583 19 echo "$name $REMOTE_USER" >> $OWNERFILE
pascal@583 20 fi
pascal@583 21 addip=yes
pascal@583 22 case " $(GET) " in
pascal@583 23 *\ remove\ *|*\ delete\ *|*\ wipe\ *)
pascal@583 24 addip=
pascal@583 25 sed -i "/^$name /d" $OWNERFILE
pascal@583 26 esac
pascal@583 27 req="server 127.0.0.1
pascal@583 28 update delete $name.by.slitaz.org A"
pascal@583 29 [ "$addip" ] && req="$req
pascal@583 30 update add $name.by.slitaz.org 900 A $ip"
pascal@583 31 case " $(GET) " in
pascal@583 32 *\ mx\ *)
pascal@583 33 mx="$(GET mx)"
pascal@583 34 [ "$mx" ] || mx=$ip
pascal@583 35 req="$req
pascal@583 36 update delete $name.by.slitaz.org MX"
pascal@583 37 [ "$addip" ] && req="$req
pascal@583 38 update add $name.by.slitaz.org 900 MX 10 $mx"
pascal@583 39 esac
pascal@583 40 echo "$req
pascal@583 41 send" | nsupdate
pascal@583 42 else
pascal@583 43 #header "text/html; charset=utf-8"
pascal@583 44 cat <<EOT
pascal@583 45 <!DOCTYPE html>
pascal@583 46 <html xmlns="http://www.w3.org/1999/xhtml">
pascal@583 47 <head>
pascal@583 48 <title>SliTaz Name Server</title>
pascal@583 49 <meta charset="utf-8" />
pascal@583 50 <link rel="shortcut icon" href="favicon.ico" />
pascal@583 51 <link rel="stylesheet" type="text/css" href="style.css" />
pascal@583 52 <style type="text/css">
pascal@583 53 #header h1 {
pascal@583 54 margin: 0;
pascal@583 55 padding: 8px 0 0 42px;
pascal@583 56 width: 250px;
pascal@583 57 }
pascal@583 58 #logo {
pascal@583 59 background: url(/images/logo.png) no-repeat left;
pascal@583 60 position: absolute;
pascal@583 61 float: left;
pascal@583 62 left: 0px;
pascal@583 63 top: 0px;
pascal@583 64 width: 40px;
pascal@583 65 height: 40px;
pascal@583 66 }
pascal@583 67 pre { font-size: 100%; }
pascal@583 68 </style>
pascal@583 69 </head>
pascal@583 70 <body>
pascal@583 71
pascal@583 72 <div id="header">
pascal@583 73 <div id="logo"></div>
pascal@583 74 <div id="network">
pascal@583 75 <a href="http://www.slitaz.org/">Home</a>
pascal@583 76 <a href="http://bugs.slitaz.org/">Bugs</a>
pascal@583 77 <a href="http://hg.slitaz.org/wok/">Hg</a>
pascal@583 78 <a href="http://forum.slitaz.org/">Forum</a>
pascal@583 79 <a href="http://roadmap.slitaz.org/">Roadmap</a>
pascal@583 80 <a href="http://pizza.slitaz.me/">Pizza</a>
pascal@583 81 <a href="http://tank.slitaz.org/">Tank</a>
pascal@583 82 </div>
pascal@583 83 <h1><a href="./">SliTaz Name Server</a></h1>
pascal@583 84 </div>
pascal@583 85
pascal@583 86 <!-- Content -->
pascal@583 87 <div id="content">
pascal@583 88 EOT
pascal@583 89 if grep -qs " $REMOTE_USER$" $OWNERFILE; then
pascal@583 90 cat <<EOT
pascal@583 91 <h3>Status</h3>
pascal@583 92 $REMOTE_USER has $(grep " $REMOTE_USER$" $OWNERFILE | wc -l) names
pascal@583 93 the in by.slitaz.org domain.
pascal@583 94 <pre>
pascal@583 95 EOT
pascal@583 96 for i in $(grep " $REMOTE_USER$" $OWNERFILE | sed 's/ .*//'); do
pascal@583 97 grep "^$i " /etc/bind/by.slitaz.org
pascal@583 98 done
pascal@583 99 cat <<EOT
pascal@583 100 </pre>
pascal@583 101
pascal@583 102 Your current IP address is $REMOTE_ADDR
pascal@583 103 EOT
pascal@583 104 fi
pascal@583 105 cat <<EOT
pascal@583 106 <h3>Usage</h3>
pascal@583 107 <pre>
pascal@583 108 wget -O - "http://user:pass@ns.slitaz.org/?name=&lt;name&gt;[&remove][&ip=&lt;ip1&gt;][&mx[=&lt;ip2&gt;]]"
pascal@583 109 </pre>
pascal@583 110 <h3>Examples</h3>
pascal@583 111 <ul>
pascal@583 112 <li>
pascal@583 113 Update myblog.by.slitaz.org with my current IP address.
pascal@583 114 <pre>
pascal@583 115 wget -O - "http://user:pass@ns.slitaz.org/?name=myblog"
pascal@583 116 </pre>
pascal@583 117 </li>
pascal@583 118 <li>
pascal@583 119 Update myblog.by.slitaz.org with the IP address 1.2.3.4.
pascal@583 120 <pre>
pascal@583 121 wget -O - "http://user:pass@ns.slitaz.org/?name=myblog&ip=1.2.3.4"
pascal@583 122 </pre>
pascal@583 123 </li>
pascal@583 124 <li>
pascal@583 125 Remove myblog.by.slitaz.org from the name server.
pascal@583 126 <pre>
pascal@583 127 wget -O - "http://user:pass@ns.slitaz.org/?name=myblog&remove"
pascal@583 128 </pre>
pascal@583 129 </li>
pascal@583 130 <li>
pascal@583 131 Update myserver.by.slitaz.org with my current IP address and declare the mail server btw.
pascal@583 132 <pre>
pascal@583 133 wget -O - "http://user:pass@ns.slitaz.org/?name=myserver&mx"
pascal@583 134 </pre>
pascal@583 135 </li>
pascal@583 136 <li>
pascal@583 137 Update myserver.by.slitaz.org with my current IP address and use the mail server at 1.2.3.4.
pascal@583 138 <pre>
pascal@583 139 wget -O - "http://user:pass@ns.slitaz.org/?name=myserver&mx=1.2.3.4"
pascal@583 140 </pre>
pascal@583 141 </li>
pascal@583 142 </ul>
pascal@583 143 </div>
pascal@583 144
pascal@583 145 <div id="footer">
pascal@583 146 <a href="http://www.slitaz.org/">SliTaz Website</a>
pascal@583 147 <a href="index.cgi">Name Server</a>
pascal@583 148 </div>
pascal@583 149
pascal@583 150 </body>
pascal@583 151 </html>
pascal@583 152 EOT
pascal@583 153 fi