#!/usr/bin/env bash
name=$0
test $name = bash && name=iutinfo-user
exec > >(tee -i $name-$(date '+%F-%T').log)
exec 2>&1
export PS4='+ \D{%F %T} '
set -x

# Il faut s'assurer qu'une session D-Bus soit active
dconf write /org/mate/desktop/peripherals/keyboard/kbd/layouts "['fr', 'fr\tmac']"
# gsettings set org.mate.peripherals-keyboard-xkb.kbd layouts "['fr', 'fr\tmac']"

mkdir -p ~/ijava2
wget -q -O ~/ijava2/ijava.jar https://ijava.iutinfo.fr/ijava.jar

cat <<EOF >~/.iutinforc
# Environnement bash pour l'IUTINFO -*-sh-*-

EOF

cat <<'EOF'  >>~/.iutinforc
# Raccourcis ijava' >> .iutinforc
alias ijava="java -cp $HOME/ijava2/ijava.jar:. ijava2.clitools.MainCLI"
alias ijava-update="echo ijava-update est remplacé par la commande iutinfo"
EOF

cat <<EOF >>~/.iutinforc
# Utilisation en anglais
export LC_MESSAGES=C.UTF-8

# Man page en français quand c'est possible
alias manfr="man -L fr_FR.UTF-8"

EOF

cat <<'EOF' >>~/.iutinforc
# Accès aux fichiers de l'IUT #FIXME: ne fonctionne que pour les étudiants d'info
iut-attacher () { iutinfo attacher ; }
iut-detacher () { iutinfo detacher ; }
alias monter-iut=iut-attacher
alias monter_iut=iut-attacher
alias iut-monter=iut-attacher
alias demonter-iut=iut-detacher
alias demonter_iut=iut-detacher
alias iut-demonter=iut-detacher

EOF

cat <<'EOF' >>~/.iutinforc
# Ne pas modifier les barres de titre des terminaux (retrait de la séquence ESC ]0;)
case "$TERM" in
    xterm*|rxvt*) PS1=$(echo $PS1 | sed -r 's!\\\[\\e\]0;[^]]+\](.*)$!\1!')" " ;;
    *) ;;
esac

EOF

cat <<'EOF' >>~/.iutinforc
# activation des couleurs et des alias utiles
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    alias ll='ls -l ${COLOR}'
    alias cls='clear ; ls ${COLOR}'
    alias cla='clear ; ls -al ${COLOR}'
    alias cll='clear ; ls -l ${COLOR}'
    alias color='export COLOR=--color'
    alias nocolor='export COLOR='
    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# evitons les betises
alias cp='cp -i'
alias rm='rm -i'
alias mv='mv -i'
EOF

grep -q 'source $HOME/.iutinforc' ~/.bashrc || {
    cat <<'EOF' >> ~/.bashrc

# Environnement de l'IUTINFO
test -r $HOME/.iutinforc && source $HOME/.iutinforc
EOF
}

test -d ~/.emacs.d || mkdir ~/.emacs.d
cat <<EOF > ~/.emacs.d/init.el
;;; init.el -- Configuration minimale d'Emacs au département informatique

;; Configuration du clavier
(global-set-key [home] 'beginning-of-line)
(global-set-key [end] 'end-of-line)
(global-set-key [(control home)] 'beginning-of-buffer)
(global-set-key [(control end)] 'end-of-buffer) 
(global-set-key "\M-g" 'goto-line)
(global-set-key [f12] 'undo)

;; Configuration diverses via le mécanisme 'custom'
(custom-set-variables
 '(blink-matching-paren t)
 '(backup-by-copying-when-linked t)
 '(backup-by-copying nil)
 '(blink-matching-paren-on-screen t)
 '(case-fold-search t)
 '(column-number-mode t)
 '(default-input-method "latin-1-prefix")
 '(display-line-numbers t)
 '(global-font-lock-mode t nil (font-lock))
 '(line-number-mode t)
 '(mouse-wheel-mode t nil (mwheel))
 '(search-highlight t)
 '(show-paren-mode t nil (paren))
 '(transient-mark-mode t))
(custom-set-faces
)
EOF

codium --install-extension MS-CEINTL.vscode-language-pack-fr --force
if ! test -e ~/.vscode-oss/argv.json ; then 
    echo '{ "locale": "fr" }' > ~/.vscode-oss/argv.json
elif ! grep -q '"locale"' ~/.vscode-oss/argv.json ; then
    sed -i '/^ *{/a\
   "locale": "fr",\
' ~/.vscode-oss/argv.json
fi

set +x
