added manu and created function, ran some tests

This commit is contained in:
Bachir Soussi Chiadmi
2016-01-02 20:32:33 +01:00
parent 95fb5278c9
commit 986b7cc480
+248 -112
View File
@@ -1,47 +1,127 @@
#! /bin/bash #! /bin/bash
echo 'Arch Linux Postinstall' # COLORS {{{
Bold=$(tput bold)
Underline=$(tput sgr 0 1)
Reset=$(tput sgr0)
# Regular Colors
Red=$(tput setaf 1)
Green=$(tput setaf 2)
Yellow=$(tput setaf 3)
Blue=$(tput setaf 4)
Purple=$(tput setaf 5)
Cyan=$(tput setaf 6)
White=$(tput setaf 7)
# Bold
BRed=${Bold}$(tput setaf 1)
BGreen=${Bold}$(tput setaf 2)
BYellow=${Bold}$(tput setaf 3)
BBlue=${Bold}$(tput setaf 4)
BPurple=${Bold}$(tput setaf 5)
BCyan=${Bold}$(tput setaf 6)
BWhite=${Bold}$(tput setaf 7)
print_line() {
printf "%$(tput cols)s\n"|tr ' ' '-'
}
print_title() {
#clear
print_line
echo -e "# ${BPurple}$1${Reset}"
print_line
echo ""
}
print_question(){
T_COLS=`tput cols`
echo -n "${BBlue}$1${Reset}"
}
print_msg(){
T_COLS=`tput cols`
echo -e "${BGreen}$1${Reset}"
sleep 2
}
print_info() {
#Console width number
T_COLS=`tput cols`
echo -e "${Bold}$1${Reset}\n" | fold -sw $(( $T_COLS - 18 )) | sed 's/^/\t /'
}
print_warning() {
T_COLS=`tput cols`
echo -e "${BYellow}$1${Reset}\n" | fold -sw $(( $T_COLS - 1 ))
sleep 4
}
print_title 'Arch Linux Postinstall'
_cwd="$(pwd)" _cwd="$(pwd)"
alpi_user(){ alpi_user(){
echo -n "Create your user? [Y|n]" print_title "Apache Mysql Php"
print_question "Create new user? [Y|n]"
read yn read yn
yn=${yn:-y} yn=${yn:-y}
if [ "$yn" == "y" ]; then if [ "$yn" == "y" ]; then
echo -n "Enter user name:" print_question "Enter user name:"
read username read username
useradd -m -g users -G wheel -s /bin/bash ${username} useradd -m -g users -G wheel,sys -s /bin/bash ${username}
chfn ${username} chfn ${username}
passwd ${username} passwd ${username}
echo "user $username created" print_msg "user $username created"
echo "$username ALL=(ALL) ALL" >> /etc/sudoers echo "$username ALL=(ALL) ALL" >> /etc/sudoers
echo "$username added to sudoers" print_msg "$username added to sudoers"
print_msg "switching now to $username"
su ${username} su ${username}
fi fi
} }
# misc alpi_avahi(){
alpi_basics(){ print_msg "install avahi"
sudo pacman -S --needed --noconfirm vim rsync acpi parted imagemagick lynx alsa-utils tmux git sudo pacman -S --needed --noconfirm avahi nss-mdns
print_msg "configure avahi"
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-deamon
sed -i.back 's/hosts: files dns myhostname/hosts: files mdns_minimal [NOTFOUND=return] dns myhostname/' /etc/nsswitch.conf
} }
alpi_basics(){
print_title "basic packages install"
print_question "install basic pkgs? [Y|n]"
read yn
yn=${yn:-y}
if [ "$yn" == "y" ]; then
sudo pacman -S --needed --noconfirm vim rsync acpi parted imagemagick lynx wget alsa-utils tmux git openssh knockd avahi nss-mdns
print_msg 'securing ssh'
sed -i.back 's/^#PermitEmptyPasswords.*/PermitEmptyPasswords no/'
sed -i.back 's/^#PermitRootLogin.*/PermitRootLogin no/'
sudo systemctl enable sshd
sudo systemctl start sshd
alpi_avahi
print_msg "basic packages installed"
fi
}
alpi_cosmetics(){ alpi_cosmetics(){
print_title "apply pacman, bash, vim and git config (needs basic pkgs install)"
alpi_basics
# vim # vim
echo 'vim configuration' print_msg 'vim configuration'
sudo pacman -S --needed --noconfirm vim-{spell-fr,spell-en,nerdtree,supertab,systemd} sudo pacman -S --needed --noconfirm vim-{spell-fr,spell-en,nerdtree,supertab,systemd}
cp $_cwp/assets/vim /home/$USER/.vim cp $_cwp/assets/vim /home/$USER/.vim
cp $_cwd/assets/vimrc /home/$USER/.vimrc cp $_cwd/assets/vimrc /home/$USER/.vimrc
sudo cp $_cwd/assets/vim /root/.vim sudo cp $_cwd/assets/vim /root/.vim
sudo cp $_cwd/assets/vimrc /root/.vimrc sudo cp $_cwd/assets/vimrc /root/.vimrc
echo 'Git Completion' print_msg 'Git Completion'
sudo pacman -S --needed --noconfirm bash-completion wget sudo pacman -S --needed --noconfirm bash-completion
sudo mkdir /etc/bash_completion.d sudo mkdir /etc/bash_completion.d
sudo wget -O /etc/bash_completion.d/git-completion.bash https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash sudo wget -O /etc/bash_completion.d/git-completion.bash https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
# bash & prompt # bash & prompt
echo 'Bash and Prompt' print_msg 'Bash and Prompt (liquidprompt)'
git clone https://github.com/hojhan/liquidprompt.git -o github /home/$USER/.liquidprompt git clone https://github.com/hojhan/liquidprompt.git -o github /home/$USER/.liquidprompt
cp $_cwd/assets/bash_profile /home/$USER/.bash_profile cp $_cwd/assets/bash_profile /home/$USER/.bash_profile
cp $_cwd/assets/bashrc /home/$USER/.bashrc cp $_cwd/assets/bashrc /home/$USER/.bashrc
@@ -54,41 +134,51 @@ alpi_cosmetics(){
echo 'set show-all-if-ambiguous on' >> /home/$USER/.inputrc echo 'set show-all-if-ambiguous on' >> /home/$USER/.inputrc
echo 'set completion-ignore-case on' >> /home/$USER/.inputrc echo 'set completion-ignore-case on' >> /home/$USER/.inputrc
echo 'ILoveCandy' print_msg 'ILoveCandy (pacman)'
sudo sed -i.back 's/.*\[options\].*/&\nILoveCandy/' /etc/pacman.conf sudo sed -i.back 's/.*\[options\].*/&\nILoveCandy/' /etc/pacman.conf
sudo sed -i.back 's/^#Color$/Color/' /etc/pacman.conf sudo sed -i.back 's/^#Color$/Color/' /etc/pacman.conf
print_msg 'Config and Cosmetics done'
} }
# GPG # GPG
alpi_gnupg(){ alpi_gnupg(){
echo 'Setup a gpg encripting' print_title 'Setup a gpg encripting'
echo 'see https://wiki.archlinux.org/index.php/GnuPG' print_msg 'see https://wiki.archlinux.org/index.php/GnuPG'
echo -n "create your gpg encrypting key? [Y|n] " print_question "create your gpg encrypting key? [Y|n] "
read yn read yn
yn=${yn:-y} yn=${yn:-y}
if [ "$yn" == "y" ]; then if [ "$yn" == "y" ]; then
gpg --full-gen-key gpg --full-gen-key
fi fi
print_msg 'Gnupg done!'
} }
alpi_secure(){ alpi_secure(){
# remove root autologin print_title 'Basic securing system'
print_msg 'remove root autologin'
sudo sed -i.back 's/--autologin root //' /etc/systemd/system/getty@tty1.service.d/autologin.conf sudo sed -i.back 's/--autologin root //' /etc/systemd/system/getty@tty1.service.d/autologin.conf
# remove root login
print_msg 'remove root login'
sudo sed -i.back 's/#auth\srequired\spam_wheel.so\suse_uid/auth required spam_wheel.so use_uid/' /etc/pam.d/su sudo sed -i.back 's/#auth\srequired\spam_wheel.so\suse_uid/auth required spam_wheel.so use_uid/' /etc/pam.d/su
sudo sed -i.back 's/#auth\srequired\spam_wheel.so\suse_uid/auth required spam_wheel.so use_uid/' /etc/pam.d/su-l sudo sed -i.back 's/#auth\srequired\spam_wheel.so\suse_uid/auth required spam_wheel.so use_uid/' /etc/pam.d/su-l
# security print_msg 'restrict log access to root'
sudo touch /etc/sysctl.d/50-dmesg-restrict.conf sudo touch /etc/sysctl.d/50-dmesg-restrict.conf
sudo sh -c "echo 'kernel.dmesg_restrict = 1' >> /etc/sysctl.d/50-dmesg-restrict.conf" sudo sh -c "echo 'kernel.dmesg_restrict = 1' >> /etc/sysctl.d/50-dmesg-restrict.conf"
sudo touch /etc/sysctl.d/50-kptr-restrict.con sudo touch /etc/sysctl.d/50-kptr-restrict.con
sudo sh -c "echo 'kernel.kptr_restrict = 1' >> /etc/sysctl.d/50-kptr-restrict.conf" sudo sh -c "echo 'kernel.kptr_restrict = 1' >> /etc/sysctl.d/50-kptr-restrict.conf"
print_msg 'basics secure done'
} }
# Display Manager # Display Manager
alpi_xserver(){ alpi_xserver(){
echo -n "install Graphical Display Part 1 : Xorg server (you will have to reboot at the end of part 1)? [Y|n] " print_title "install Graphical Display Part 1 : Xorg server"
print_msg "you will have to reboot at the end of part 1"
print_question "install xorg server? [Y|n] "
read yn read yn
yn=${yn:-y} yn=${yn:-y}
if [ "$yn" == "y" ]; then if [ "$yn" == "y" ]; then
@@ -104,31 +194,38 @@ alpi_xserver(){
sudo pacman -S --needed --noconfirm mesa mesa-demos sudo pacman -S --needed --noconfirm mesa mesa-demos
sudo gpasswd -a $USER bumblebee sudo gpasswd -a $USER bumblebee
sudo systemctl enable bumblebeed sudo systemctl enable bumblebeed
print_warning "xorg install complete, after reboot, please run part 2 : Desktop manager Plasma5"
print_warnig "press enter to reboot"
read x
sudo reboot sudo reboot
fi fi
} }
alpi_plasma5(){ alpi_plasma5(){
echo -n "install Graphical Display Part 2 : Kde Plasma 5? [Y|n] " print_title "install Graphical Display Part 2 : Desktop Manager Plasma 5"
print_question "install Kde Plasma 5? [Y|n] "
read yn read yn
yn=${yn:-y} yn=${yn:-y}
if [ "$yn" == "y" ]; then if [ "$yn" == "y" ]; then
sudo pacman -S --needed --noconfirm --force plasma-meta sudo pacman -S --needed --noconfirm --force plasma-meta
sudo pacman -S --needed --noconfirm ttf-{dejavu,liberation,droid,ubuntu-font-family} sudo pacman -S --needed --noconfirm ttf-{dejavu,liberation,droid,ubuntu-font-family}
# network & Bluetooth # network & Bluetooth
sudo pacman -S --needed --noconfirm networkmanager-openvpn pulseaudio-alsa rfkill sudo pacman -S --needed --noconfirm networkmanager-openvpn pulseaudio-alsa rfkill systemd-kcm bluedevil
sudo systemctl enable NetworkManager sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager sudo systemctl start NetworkManager
sudo systemctl enable bluetooth sudo systemctl enable bluetooth
sudo systemctl start bluetooth sudo systemctl start bluetooth
touch /home/$USER/.xinitrc touch /home/$USER/.xinitrc
echo 'exec startkde' > /home/$USER/.xinitrc echo 'exec startkde' > /home/$USER/.xinitrc
print_msg "Plasma 5 install complete!"
print_msg 'run "startx" to start x server with kde plasma 5'
fi fi
} }
# Yaourt # Yaourt
alpi_yaourt(){ alpi_yaourt(){
echo -n "install Yaourt [Y|n] " print_title "AUR helper : Yaourt"
print_question "install Yaourt [Y|n] "
read yaourt read yaourt
yaourt=${yaourt:-y} yaourt=${yaourt:-y}
if [ "$yaourt" == "y" ]; then if [ "$yaourt" == "y" ]; then
@@ -145,24 +242,46 @@ alpi_yaourt(){
makepkg -sri makepkg -sri
echo 'ask for editing config file before build' echo 'ask for editing config file before build'
echo "EDITFILES=1" >> ~/.yaourtrc echo "EDITFILES=1" >> ~/.yaourtrc
print_msg "Yaourt install complete!"
fi fi
} }
alpi_cups(){
print_title 'CUPS (for printing)'
print_question "install cups [Y|n] "
read yn
yn=${yn:-y}
if [ "$yn" == "y" ]; then
sudo pacman -S --needed --noconfirm cups cups-filters libcups ghostscript gsfonts
sudo pacman -S --needed --noconfirm gutenprint splix cups-pdf
sudo pacman -S --needed --noconfirm print-manager
alpi_avahi
sudo systemctl enable org.cups.cupsd
sudo systemctl start org.cups.cupsd
sudo systemctl enable cups-browsed
sudo systemctl start cups-browsed
print_msg "CUPS install complete!"
print_warning "add your user to the sys group if you want to be able to add printers"
fi
}
# kernel LTS # kernel LTS
alpi_kernellts(){ alpi_kernellts(){
echo -n "Switch linux kernel to long term support version (more stable)? [Y|n] " print_title "Long Term Support Kernel"
print_question "install kernel-lts)? [Y|n]"
read yn read yn
yn=${yn:-y} yn=${yn:-y}
if [ "$yn" == "y" ]; then if [ "$yn" == "y" ]; then
sudo pacman -S linux-lts linux-lts-headers nvidia-lts sudo pacman -S linux-lts linux-lts-headers nvidia-lts
sudo grub-mkconfig -o /boot/grub/grub.cfg sudo grub-mkconfig -o /boot/grub/grub.cfg
print_msg "kernel LTS install complete!"
fi fi
} }
alpi_mysql(){ alpi_mysql(){
print_msg "installe mysql"
sudo pacman -S --needed --noconfirm mariadb sudo pacman -S --needed --noconfirm mariadb
# configure mysql print_msg "configure mysql"
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
mysql_secure_installation mysql_secure_installation
sudo sed -i.back 's/^log-bin=mysql-bin$/#&/' /etc/mysql/my.cnf sudo sed -i.back 's/^log-bin=mysql-bin$/#&/' /etc/mysql/my.cnf
@@ -171,24 +290,23 @@ alpi_mysql(){
# Packages # Packages
alpi_defaultpkgs(){ alpi_defaultpkgs(){
# TODO : install and configure mariadb before that print_title "Day to day software"
echo "install basic packages? [Y|n]" print_question "install day to day packages? [Y|n]"
read yn read yn
yn=${yn:-y} yn=${yn:-y}
if [ "$yn" == "y" ]; then if [ "$yn" == "y" ]; then
sudo pacman -S --needed --noconfirm systemd-kcm bluedevil print_msg "file explorer : Dolphin"
sudo pacman -S --needed --noconfirm dolphin dolphin-plugins sudo pacman -S --needed --noconfirm dolphin dolphin-plugins
echo 'install pim softwares' print_msg 'Pim softwares : mail, calendar, contact, etc'
sudo pacman -S --needed --noconfirm kmail korganizer kaddressbook kdeconnect pidgin sudo pacman -S --needed --noconfirm kmail korganizer kaddressbook kdeconnect kleopatra pidgin
sudo pacman -S --needed --noconfirm spamassassin razor sudo pacman -S --needed --noconfirm spamassassin razor
sudo sa-update sudo sa-update
echo -n "Install regular mysql support for akonadi? [Y|n] " print_question "Install regular mysql support for akonadi? [Y|n] "
read ako read ako
ako=${ako:-y} ako=${ako:-y}
if [ "$ako" == "y" ]; then if [ "$ako" == "y" ]; then
print_question "Should we install and configure mysql (if not already done)? [y|N] "
echo -n "Should we install and configure mysql (if not already done)? [y|N] "
read sql read sql
sql=${sql:-n} sql=${sql:-n}
if [ "$sql" == "y" ]; then if [ "$sql" == "y" ]; then
@@ -196,35 +314,41 @@ alpi_defaultpkgs(){
fi fi
# https://forum.kde.org/viewtopic.php?t=84478#p140762 # https://forum.kde.org/viewtopic.php?t=84478#p140762
echo "please type your root mysql pass-word :" print_question "please type your root mysql password :"
read -s -p Password: pswd read -s -p Password: pswd
mysql -u root -p$pswd -e "create database akonadi;" mysql -u root -p$pswd -e "create database akonadi;"
mysql -u root -p$pswd -e "create user 'akonadi'@'localhost' identified by 'akonadi';" mysql -u root -p$pswd -e "create user 'akonadi'@'localhost' identified by 'akonadi';"
mysql -u root -p$pswd -e "grant all privileges on akonadi.* to 'akonadi'@'localhost';" mysql -u root -p$pswd -e "grant all privileges on akonadi.* to 'akonadi'@'localhost';"
mysql -u root -p$pswd -e "flush privileges;" mysql -u root -p$pswd -e "flush privileges;"
# TODO : BUG create first the .config/akonadi folder mkdir -p /home/$USER/.config/akonadi
mv /home/$USER/.config/akonadi/akonadiserverrc /home/$USER/.config/akonadi/akonadiserverrc.back mv /home/$USER/.config/akonadi/akonadiserverrc /home/$USER/.config/akonadi/akonadiserverrc.back
cp $_cwd/assets/akonadiserverrc /home/$USER/.config/akonadi/ cp $_cwd/assets/akonadiserverrc /home/$USER/.config/akonadi/
print_msg "Akonadi configured to use system wide sql server!"
fi fi
print_msg "web browser, terminal emulator, disk tool, password tool"
sudo pacman -S --needed --noconfirm chromium terminator gparted keepass sudo pacman -S --needed --noconfirm chromium terminator gparted keepass
echo 'install office softwares'
print_msg 'install office softwares'
sudo pacman -S --needed --noconfirm gwenview kimageformats kdegraphics-okular kipi-plugins libreoffice-fresh hunspell-{fr,en} sudo pacman -S --needed --noconfirm gwenview kimageformats kdegraphics-okular kipi-plugins libreoffice-fresh hunspell-{fr,en}
echo 'install media softwares' print_msg 'install media softwares'
sudo pacman -S --needed --noconfirm digikam darktable vlc lua-socket ktorrent banshee sudo pacman -S --needed --noconfirm digikam darktable vlc lua-socket ktorrent banshee
echo 'install graphic softwares'
print_msg 'install graphic softwares'
sudo pacman -S --needed --noconfirm inkscape gimp scribus fontforge blender sudo pacman -S --needed --noconfirm inkscape gimp scribus fontforge blender
#echo 'install some more fonts'
#sudo pacman -S ttf-{,} print_msg 'install cloud softwares'
echo 'install cloud softwares'
sudo pacman -S --needed --noconfirm owncloud-client syncthing syncthing-gtk syncthing-inotify sudo pacman -S --needed --noconfirm owncloud-client syncthing syncthing-gtk syncthing-inotify
echo 'increase inotify watch limit' print_msg 'increase inotify watch limit'
sleep 3 sleep 3
sudo cp $_cwd/assets/90-inotify.conf /etc/sysctl.d/ sudo cp $_cwd/assets/90-inotify.conf /etc/sysctl.d/
if [ "$yaourt" == "y" ]; then if [ -f /usr/bin/yaourt ];
yaourt -S downgrade then
yaourt -S atom-editor yaourt -S downgrade
yaourt -S atom-editor
else
print_warning "some packages can't be installed because you don't have yaourt installed"
fi fi
fi fi
} }
@@ -232,110 +356,122 @@ alpi_defaultpkgs(){
# LAMP # LAMP
alpi_lamp(){ alpi_lamp(){
# https://wiki.archlinux.org/index.php/Apache_HTTP_Server # https://wiki.archlinux.org/index.php/Apache_HTTP_Server
echo -n "Install apache php mysql? [Y|n] " print_title "Web Server (apache, php, mysql)"
print_question "Install apache php mysql? [Y|n] "
read yn read yn
yn=${yn:-y} yn=${yn:-y}
if [ "$yn" == "y" ]; then if [ "$yn" == "y" ]; then
# install packages
sudo pacman -S --needed --noconfirm apache php php-apache phpmyadmin php-mcrypt sudo pacman -S --needed --noconfirm apache php php-apache phpmyadmin php-mcrypt
echo -n "Should we install and configure mysql (if not already done)? [y|N] " print_question "Should we install and configure mysql (if not already done)? [y|N] "
read sql read sql
sql=${sql:-n} sql=${sql:-n}
if [ "$sql" == "y" ]; then if [ "$sql" == "y" ]; then
alpi_mysql alpi_mysql
fi fi
# configure apache print_msg "configure apache"
sudo sed -i.back 's/^LoadModule mpm_event_module modules\/mod_mpm_event\.so$/#&/' /etc/httpd/conf/httpd.conf sudo sed -i.back 's/^LoadModule mpm_event_module modules\/mod_mpm_event\.so$/#&/' /etc/httpd/conf/httpd.conf
sudo sed -i.back 's/^#LoadModule mpm_prefork_module modules\/mod_mpm_prefork\.so$/LoadModule mpm_prefork_module modules\/mod_mpm_prefork.so/' /etc/httpd/conf/httpd.conf sudo sed -i.back 's/^#LoadModule mpm_prefork_module modules\/mod_mpm_prefork\.so$/LoadModule mpm_prefork_module modules\/mod_mpm_prefork.so/' /etc/httpd/conf/httpd.conf
sudo sed -i.back 's/^#LoadModule rewrite_module modules\/mod_rewrite\.so$/LoadModule rewrite_module modules\/mod_rewrite.so/' /etc/httpd/conf/httpd.conf sudo sed -i.back 's/^#LoadModule rewrite_module modules\/mod_rewrite\.so$/LoadModule rewrite_module modules\/mod_rewrite.so/' /etc/httpd/conf/httpd.conf
# configure vhosts folder print-msg "configure vhosts folder"
sudo mkdir /etc/httpd/conf/vhosts sudo mkdir /etc/httpd/conf/vhosts
sudo sed -i.back 's/^#Include conf\/extra\/httpd-vhosts\.conf$/&\nInclude conf\/vhosts\/*.conf/' /etc/httpd/conf/httpd.conf sudo sed -i.back 's/^#Include conf\/extra\/httpd-vhosts\.conf$/&\nInclude conf\/vhosts\/*.conf/' /etc/httpd/conf/httpd.conf
# configure apache for php print_msg "configure apache for php"
sudo sed -i.back 's/^LoadModule dir_module modules\/mod_dir\.so$/&\nLoadModule php5_module modules\/libphp5.so/' /etc/httpd/conf/httpd.conf sudo sed -i.back 's/^LoadModule dir_module modules\/mod_dir\.so$/&\nLoadModule php5_module modules\/libphp5.so/' /etc/httpd/conf/httpd.conf
sudo sh -c "echo 'Include conf/extra/php5_module.conf' >> /etc/httpd/conf/httpd.conf" sudo sh -c "echo 'Include conf/extra/php5_module.conf' >> /etc/httpd/conf/httpd.conf"
# configure php print_msg "configure php"
sudo sed -i.back 's/^memory_limit.*$/memory_limit = 512M/' /etc/php/php.ini sudo sed -i.back 's/^memory_limit.*$/memory_limit = 512M/' /etc/php/php.ini
sudo sed -i.back 's/^error_reporting.*$/error_reporting = E_ALL \& ~E_NOTICE/' /etc/php/php.ini sudo sed -i.back 's/^error_reporting.*$/error_reporting = E_ALL \& ~E_NOTICE/' /etc/php/php.ini
sudo sed -i.back 's/;extension=gd\.so/extension=gd.so/' /etc/php/php.ini sudo sed -i.back 's/;extension=gd\.so/extension=gd.so/' /etc/php/php.ini
# configure php for mysql print_question "Should we configure custom basedir folder for php? [Y|n] "
read bd
sql=${bd:-y}
if [ "$bd" == "y" ]; then
print_question "Please enter the basedir path"
read basedir
sudo sed -i.back "s/^open_basedir = .*$/&:${basedir}/" /etc/php/php.ini
fi
print_msg "configure php for mysql"
sudo sed -i.back 's/;extension=pdo_mysql\.so/extension=pdo_mysql.so/' /etc/php/php.ini sudo sed -i.back 's/;extension=pdo_mysql\.so/extension=pdo_mysql.so/' /etc/php/php.ini
# configure phpmyadmin print_msg "configure phpmyadmin"
sudo sed -i.back 's/;extension=mysqli\.so/extension=mysqli.so/' /etc/php/php.ini
sudo sed -i.back 's/;extension=mcrypt\.so/extension=mcrypt.so/' /etc/php/php.ini sudo sed -i.back 's/;extension=mcrypt\.so/extension=mcrypt.so/' /etc/php/php.ini
sudo sed -i.back 's/;extension=bz2\.so/extension=bz2.so/' /etc/php/php.ini sudo sed -i.back 's/;extension=bz2\.so/extension=bz2.so/' /etc/php/php.ini
sudo sed -i.back 's/;extension=zip\.so/extension=zip.so/' /etc/php/php.ini sudo sed -i.back 's/;extension=zip\.so/extension=zip.so/' /etc/php/php.ini
sudo sed -i.back 's/^open_basedir = .*$/&:\/etc\/webapps\//' /etc/php/php.ini sudo sed -i.back 's/^open_basedir = .*$/&:\/etc\/webapps\//' /etc/php/php.ini
echo -n "Should we configure custom basedir folder? [Y|n] "
read bd
sql=${bd:-y}
if [ "$bd" == "y" ]; then
echo -n "Please enter the basedir path"
read basedir
sudo sed -i.back "s/^open_basedir = .*$/&:${basedir}/" /etc/php/php.ini
fi
# TODO : instal drush # TODO : instal drush
fi fi
} }
# END # END
alpi_end(){ alpi_end(){
echo -n "Reboot? [Y|n] " print_question "Reboot now? [Y|n] "
read yn read yn
yn=${yn:-y} yn=${yn:-y}
if [ "$yn" != "y" ]; then if [ "$yn" != "y" ]; then
echo "depending on what you've done you may need to reboot" print_warning "depending on what you've done you may need to reboot"
exit exit
fi fi
print_msg "Rebooting in 5sec"
sleep 3
reboot reboot
} }
alpi_menu(){
while true while true
do do
echo -e "choosse action (preferably in order)\n" print_question "choose an action (preferably in proposed order)"
action_list=("create user" "install basics" "cosmetics" "create gnupgp key" "secure the system" "install Xorg Server" "install Plasma 5 (kde)" "yaourt" "switch to LTS kernel" "install default packages" "install lamp" "end"); echo
select action in "${action_list[@]}"; do action_list=("create user" "install basics" "cosmetics" "create gnupgp key" "secure the system" "install Xorg Server" "install Plasma 5 (kde)" "yaourt" "cups (printers)" "switch to LTS kernel" "install default packages" "install lamp" "end");
case "$REPLY" in select action in "${action_list[@]}"; do
1) case "$REPLY" in
alpi_user 1)
;; alpi_user
2) ;;
alpi_basics 2)
;; alpi_basics
3) ;;
alpi_cosmetics 3)
;; alpi_cosmetics
4) ;;
alpi_gnupg 4)
;; alpi_gnupg
5) ;;
alpi_secure 5)
;; alpi_secure
6) ;;
alpi_xserver 6)
;; alpi_xserver
7) ;;
alpi_plasma5 7)
;; alpi_plasma5
8) ;;
alpi_yaourt 8)
;; alpi_yaourt
9) ;;
alpi_kernellts 9)
;; alpi_cups
10) ;;
alpi_defaultpkgs 10)
;; alpi_kernellts
11) ;;
alpi_lamp 11)
;; alpi_defaultpkgs
12) ;;
alpi_end 12)
;; alpi_lamp
esac ;;
[[ -n $OPT ]] && break 13)
alpi_end
;;
*)
print_warning "dommage, essaye encore"
;;
esac
[[ -n $OPT ]] && break
done
done done
done }
alpi_menu