-
-
Save ecylmz/897360 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
use std | |
PROGNAME=${0##*/} | |
ensuredeb wwwconfig-common | |
hascommand mysql || ensuredeb mysql-client | |
dbadmin=${WWWCONFIG_COMMON_DBADMIN:-root} | |
[ -z "$1" ] || dbname="$1" | |
[ -z "$1" ] || dbuser="$2" | |
ask_dbadmpass() { | |
asksecret "Mysql yönetici (root) parolası" | |
dbadmpass="$REPLY" | |
} | |
ask_dbname() { | |
if [ -z "$dbname" ]; then | |
ask "Veritabanı ismi (Örnek: 'moodle', 'wp')" "" must-non-empty | |
dbname="$REPLY" | |
fi | |
} | |
ask_dbuser() { | |
if [ -z "$dbuser" ]; then | |
ask "Veritabanı kullanıcısı" "$dbname" must-non-empty | |
dbuser="$REPLY" | |
fi | |
} | |
ask_dbpass() { | |
asksecret "'$dbuser' veritabanı kullanıcısı için parola" ${MKDB+""} | |
dbpass="$REPLY" | |
} | |
create_user() { | |
( | |
. /usr/share/wwwconfig-common/mysql-createuser.sh | |
if [ "$status" = "error" ]; then | |
echo >&2 "$error" | |
exit 1 | |
fi | |
) || die "'$dbuser' isimli veritabanı kullanıcısı oluşturulamadı." | |
} | |
create_db() { | |
( | |
. /usr/share/wwwconfig-common/mysql-createdb.sh | |
if [ "$status" = "error" ]; then | |
echo >&2 "$error" | |
exit 1 | |
fi | |
) || die "'$dbname' isimli veritabanı oluşturulamadı." | |
} | |
drop_user() { | |
( | |
. /usr/share/wwwconfig-common/mysql-dropuser.sh | |
if [ "$status" = "error" ]; then | |
echo >&2 "$error" | |
exit 1 | |
fi | |
) || die "'$dbuser' isimli veritabanı kullanıcısı silinemedi." | |
} | |
drop_db() { | |
( | |
. /usr/share/wwwconfig-common/mysql-dropdb.sh | |
if [ "$status" = "error" ]; then | |
echo >&2 "$error" | |
exit 1 | |
fi | |
) || die "'$dbuser' isimli veritabanı kullanıcısı silinemedi." | |
} | |
case "${PROGNAME#x-}" in | |
mk*|make*|create*) | |
if [[ ${PROGNAME#x-} == *user* ]]; then | |
cry "Mysql kullanıcısı eklenecek..." | |
ask_dbadmpass | |
ask_dbuser | |
ask_dbname | |
cry "\nBu girdilerle devam edilecek:\n\n\tVeritabanı:$dbname\n\tKullanıcı: $dbuser\n" | |
if yesno "Onaylıyor musunuz?" e; then | |
export dbadmin dbadmpass dbname dbuser | |
else | |
exit | |
fi | |
else | |
cry "Veritabanı/kullanıcı çifti oluşturulacak..." | |
ask_dbadmpass | |
ask_dbname | |
ask_dbuser | |
ask_dbpass | |
create_user | |
cry "\nBu girdilerle devam edilecek:\n\n\tVeritabanı: $dbname\n\tKullanıcı: $dbuser\n" | |
if yesno "Onaylıyor musunuz?" e; then | |
export dbadmin dbadmpass dbname dbuser dbpass | |
else | |
exit | |
fi | |
fi | |
;; | |
rm*|remove*|drop*) | |
if [[ ${PROGNAME#x-} == *user* ]]; then | |
cry "Mysql kullanıcısı silinecek..." | |
ask_dbadmpass | |
ask_dbuser | |
cry "\nDİKKAT! kullanıcı silinecek!" | |
yesno "Emin misiniz?" h || exit | |
drop_user | |
else | |
cry "Veritabanı/kullanıcı çifti silinecek..." | |
ask_dbadmpass | |
ask_dbname | |
ask_dbuser | |
cry "\nDİKKAT! Veritabanı/kullanıcı çifti silinecek!" | |
yesno "Emin misiniz?" h || exit | |
drop_db | |
drop_user | |
fi | |
;; | |
*) | |
bug "Ne yapmamı bekliyorsun?" | |
;; | |
esac |
ve tabii eşleştirmeleri biraz daha esnek tutalım. "mk*
", "rm*
" ve "*user*
" gibi... @gdemir'e de yazdım bunu...
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
bir kaç stayla notu:
drop_db
'de bir indent eksik