source: locker/bin/signup-sql @ 308

Last change on this file since 308 was 157, checked in by jbarnold, 18 years ago
we should remove authuser's access to .sql in addition to anyuser
  • Property svn:executable set to *
File size: 3.2 KB
RevLine 
[127]1#!/bin/sh
2
3checkfailed() {
4  if [ -f "$lroot/web_scripts/$addrend/.failed" ]; then
5    rm -f $lroot/web_scripts/$addrend/.failed
6    exit 1
7  fi
8}
9
10sshrun() {
[128]11  athrun scripts sshmic ${lname}@scripts.mit.edu /mit/scripts/$1 2>/dev/null
[127]12}
13
14vsshrun() {
[128]15  athrun scripts sshmic ${lname}@scripts.mit.edu /mit/scripts/$1
[127]16}
17
18checksqlpass() {
19    errors=`sshrun 'sql/bin$scriptsdev/test-password'`
20    if [ "$errors" != "" ]; then
21        if [ "$1" -eq 1 ]; then
22          rm -f $lroot/.sql/my.cnf
23        fi
24        echo
25        echo ERROR:
26        printf "$2"
27        printf "$3"
28        exit
29    fi
30}
31
32echo
33echo == Welcome to the sql.mit.edu signup process ==
34echo
35
36echo "For documentation, including a link to the Athena rules of use,"
37echo "see <http://sql.mit.edu>."
38echo
39echo Please report problems with this signup process to sql@mit.edu.
40echo
41echo Are you performing this signup for:
42echo 1. Your personal Athena account
43echo 2. A locker that you control \(a club, a course, etc\)
44echo If you do not understand this question, you should answer \'1\'.
45printf "Please enter either '1' or '2' (without quotes): "
46read whofor
47if [ "$whofor" -eq 1 ]; then
48    lname=$USER
49    lroot=$HOME 
50elif [ "$whofor" -eq 2 ]; then
51    echo
52    echo OK.  A MySQL account will be created for a locker of your choice that
53    echo you control.  Please enter the name of the selected locker below.
54    echo "(For the locker /mit/sipb, you would enter sipb)."
55    printf "Locker name: "
56    read lname
57    lroot="/mit/$lname" 
58else
59    echo
60    echo ERROR:
61    echo You must select either '1' or '2'.
62    exit 1
63fi
64
65# Users need to sign up for scripts.mit.edu so that they can
66# authenticate themselves to sql.mit.edu
67attach scripts 2>/dev/null
68. /mit/scripts/bin$scriptsdev/signup-web
69
70if [ "$requires_sql" = "" ]; then
71  requires_sql=1
72fi
73
74if [ ! -f "$lroot/.my.cnf" ]; then
75  mkdir $lroot/.sql 2>/dev/null
76  fs sa $lroot/.sql system:anyuser none
[157]77  fs sa $lroot/.sql system:authuser none
[127]78  fs sa $lroot/.sql daemon.scripts write
79  ln -nfs $lroot/.sql/my.cnf $lroot/.my.cnf 2>/dev/null
80fi
81
82if [ "$requires_sql" -eq 1 ]; then
83  sqlinfo=`sshrun "sql/bin$scriptsdev/get-password"`
84  if [ "$sqlinfo" = "" ]; then
85      echo
86      echo You already have a MySQL account but you do not have a .my.cnf file.
87      echo If you do not remember your MySQL account password, you can change it
88      echo at http://sql.mit.edu using MIT certificates.
89      printf "Please type your MySQL password and press [enter]: "
90      stty -echo
91      read sqlpass
92      stty echo
93      echo
94      sqlhost="sql.mit.edu"
95      sqluser=$lname
96      . /mit/scripts/sql/bin$scriptsdev/save-password
97      checksqlpass 1 'The MySQL password that you typed appears to be incorrect.\n' ''
98      echo
99      echo OK.  Continuing with the install...
100  else
101      checksqlpass 0 'The MySQL login information in your .my.cnf file\n' 'appears to be incorrect.\n'
102  fi
103fi
104
105echo
106echo == Setup complete! ==
107echo Your MySQL login information has been written to the file
108echo "</mit/$lname/.sql/my.cnf>."
109echo You must use the sql.mit.edu web interface to add or drop databases.
110echo If you have trouble with your MySQL account, feel free to contact
111echo the sql.mit.edu team by e-mailing sql@mit.edu
112exit 0
Note: See TracBrowser for help on using the repository browser.