Last active
April 7, 2018 05:01
-
-
Save tavinus/5b2135f4363198c7356139a2399fc1ba to your computer and use it in GitHub Desktop.
Gera Links e Lançadores para AutoSystem em chroot (jessie_i386)
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 | |
| ######################################### | |
| # make_as_links.sh | |
| # | |
| # Cria scripts locais que chamam o AS | |
| # instalado no chroot | |
| # | |
| # Links de usuario normal - as_* | |
| # Links de usuario root - asr_* | |
| # | |
| ######################################### | |
| VERSION=0.0.3 | |
| # Para detectar erros | |
| f=0 | |
| # Locais | |
| INSTLOC='/usr/local/bin' | |
| CHROOTLOC='/srv/chroot/jessie_i386' | |
| ASICON='/usr/share/pixmaps/as_main.png' | |
| [ $SUDO_USER ] && REALUSER=$SUDO_USER || REALUSER=`whoami` | |
| DESKSHORTS="/home/$REALUSER/AutoSystemLinks" | |
| # Lista completa dos programas do AutoSystem | |
| ASPROGS='brinde caixa cex comanda concentrador config delivery main manutencao medicao nfe_proc paf rec serialserver sync sync_old sync_online tefwsserver terminal_consulta trocaoleo trr update' | |
| function print_version { | |
| echo "MakeLinks AutoSystem debootstrap v$VERSION" | |
| } | |
| # checa se root | |
| function check_root { | |
| if [ "$(id -u)" != "0" ]; then | |
| print_version | |
| echo "Voce tem que rodar o instalador com privilegios de root." | |
| echo "Tente:" | |
| echo " sudo $0" | |
| exit 1 | |
| fi | |
| } | |
| # Gera o coteudo de cada script para cada programa | |
| # param $1 => nome programa | |
| # param $2 => vazio = root / algo = user | |
| chroot_bash() { | |
| [ -z "$1" ] && return 1 | |
| as_prog="$1" | |
| local chroot_user='root' | |
| [ -z "$2" ] || chroot_user="$REALUSER" | |
| echo '#!/bin/bash' | |
| [ -z "$2" ] && echo 'xhost +SI:localuser:root &>/dev/null' | |
| echo 'echo "export DISPLAY=$DISPLAY && '"$as_prog"'" | schroot -c jessie_i386 -u '"$chroot_user" | |
| [ -z "$2" ] && echo 'xhost -SI:localuser:root &>/dev/null' | |
| } | |
| as_main_print() { | |
| echo '[Desktop Entry] | |
| Version=1.0 | |
| Type=Application | |
| Name=Auto System Geral | |
| GenericName=Auto System Main | |
| Comment=Aplicaçao principal do Auto System | |
| Icon=as_main | |
| Exec=as_main %u | |
| NoDisplay=false | |
| Categories=applications;menulibre-auto-system;suits; | |
| StartupNotify=false | |
| Terminal=false' | |
| } | |
| as_caixa_print() { | |
| echo '[Desktop Entry] | |
| Version=1.0 | |
| Type=Application | |
| Name=Auto System Caixa | |
| GenericName=Auto System Caixa | |
| Comment=Auto System Cashflow Application | |
| Icon=as_main | |
| Exec=as_caixa %u | |
| NoDisplay=false | |
| Categories=applications;menulibre-auto-system;suits; | |
| StartupNotify=false | |
| Terminal=false' | |
| } | |
| as_trocaoleo_print() { | |
| echo '[Desktop Entry] | |
| Version=1.0 | |
| Type=Application | |
| Name=Auto System TrocaOleo | |
| GenericName=Auto System TrocaOleo | |
| Comment=Auto System Oil Change Application | |
| Icon=as_main | |
| Exec=as_trocaoleo %u | |
| NoDisplay=false | |
| Categories=applications;menulibre-auto-system;suits; | |
| StartupNotify=false | |
| Terminal=false' | |
| } | |
| # as_config usa o usuario root | |
| as_config_print() { | |
| echo '[Desktop Entry] | |
| Version=1.0 | |
| Type=Application | |
| Name=Auto System Config | |
| GenericName=Auto System Config | |
| Comment=Auto System Configuration Application | |
| Icon=as_main | |
| Exec=asr_config %u | |
| NoDisplay=false | |
| Categories=applications;menulibre-auto-system;suits; | |
| StartupNotify=false | |
| Terminal=false' | |
| } | |
| ##### COMECA AQUI | |
| check_root | |
| print_version | |
| echo | |
| echo "Criando redirecionadores locais do Autosystem" | |
| echo $' Os executaveis as_ rodam em modo usuario\n Os executaveis asr_ rodam em modo root\n' | |
| for p in $ASPROGS; do | |
| e=0 | |
| local_path="$INSTLOC/asr_$p" | |
| localu_path="$INSTLOC/as_$p" | |
| chroot_path='/usr/bin/as_'"$p" | |
| echo "$(chroot_bash $chroot_path)" > "$local_path" || e=1 | |
| chmod +x "$local_path" || e=1 | |
| echo "$(chroot_bash $chroot_path user)" > "$localu_path" || e=1 | |
| chmod +x "$localu_path" || e=1 | |
| cstr="> as_$p / asr_$p" | |
| [[ $e -eq 0 ]] && echo " Ok $cstr" || echo " Falha cstr" | |
| f=$((f+e)) | |
| done | |
| echo | |
| echo "Copiando ícone do AutoSystem" | |
| cp "$CHROOTLOC/$ASICON" "$ASICON" && echo -n " Ok > " || echo -n " Falha > " | |
| echo "$ASICON" | |
| echo | |
| echo "Criando Lançadores de Desktop" | |
| mkdir -p "$DESKSHORTS" | |
| echo " > $DESKSHORTS" | |
| echo "$(as_main_print)" > "$DESKSHORTS/as_main.desktop" && echo -n " Ok > " || echo -n " Falha > " | |
| echo "as_main.desktop" | |
| chmod +x "$DESKSHORTS/as_main.desktop" | |
| echo "$(as_caixa_print)" > "$DESKSHORTS/as_caixa.desktop" && echo -n " Ok > " || echo -n " Falha > " | |
| echo "as_caixa.desktop" | |
| chmod +x "$DESKSHORTS/as_caixa.desktop" | |
| echo "$(as_trocaoleo_print)" > "$DESKSHORTS/as_trocaoleo.desktop" && echo -n " Ok > " || echo -n " Falha > " | |
| echo "as_trocaoleo.desktop" | |
| chmod +x "$DESKSHORTS/as_trocaoleo.desktop" | |
| echo "$(as_config_print)" > "$DESKSHORTS/as_config.desktop" && echo -n " Ok > " || echo -n " Falha > " | |
| echo "as_config.desktop" | |
| chmod +x "$DESKSHORTS/as_config.desktop" | |
| chown -R "$REALUSER":"$REALUSER" "$DESKSHORTS" | |
| echo | |
| echo "Tudo Feito!" | |
| [[ $f -eq 0 ]] && echo "Nenhum erro!" || echo "Erros detectados! Verificar..." | |
| exit $f |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Links Relacionados
A partir da v0.0.3, por padrão os links de desktop rodam no usuário normal e somente o
as_configno usuário root.Assim sendo não precisa liberar o X-server para o usuário root.
As rotinas root
asr_agora também removem a permissão de root no X quando fecham.