123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- #!/usr/bin/env bash
- #-------HEADER---------------------------------------------------------------------|
- #AUTOR
- # Jefferson Rocha <lrcjefferson@gmail.com>
- #
- #PROGRAMA
- # Slac
- #
- #DESCRICAO
- # Programa de manutenção para Slackware 14x
- #
- #DEPENDÊNCIAS
- # ntpd >= 4.2.8
- # bash >= 4.4.12
- #
- #CHANGELOG
- # 23/02/2018 (Jefferson Rocha)
- # -Adicionado Chaves, (internet_key e keyboard_key)
- # para ativação dos serviços desejados
- #
- # -Agora podemos atualizar a hora!
- #
- # -Opções podem ser chamadas via linha de comando.
- # (-i ou --internet, -k ou --keyboard, -h ou --hour, -H ou --help)
- #
- #----------------------------------------------------------------------------------|
- ##########################################
- # #
- # Controle de chave. #
- # Caso queira habilitar/desabilitar #
- # algum recurso do programa #
- # #
- # 0 Para desligado, 1 para ligado #
- # #
- ##########################################
- internet_key="0" # Internet
- keyboard_key="1" # Teclado
- hour_key="0" # Hora
- ####################################################
- # #
- # Mude conforme sua necessidade... #
- # Para verificar qual sua interface use o comando #
- # "ifconfig -s" #
- # Por exemplo, para conexões com placa wireless a #
- # interface pode ser wlan0, wlan1 wlan2 etc... #
- # Para conexções Cabeadas eth0, eth1, enps0 etc... #
- # #
- # Por padrão o programa slac vem interface eth0 #
- # #
- ####################################################
- interface="eth0"
- ### FIM DA CONFIGURAÇÃO, não edite daqui para baixo.
- #-----VÁRIAVEIS------------------->
- VERSION="1.0"
- # Servidores para o uso do ntpdate
- server1="ntp.br"
- server2="2.br.pool.ntp.org"
- # Cores para vida
- end="\033[m"
- red="\033[31;1m"
- green="\033[38;1m"
- #--------------------------------->
- #--------FUNÇÕES------------------>
- have_internet(){ wget -q --spider www.google.com; }
- help_now(){
- cat << EOF | less
- NOME
- Slac - Sistema de configuração do Slackware
- VERSAO
- $VERSION
- SINOPSE
- slac [PARÂMETRO] [OPERAÇÃO]
- OPÇÕES
- -i, --internet
- Ative a configuração da internet...
- A interface padrão é eth0, caso deseje mudar use
- -i [INTERFACE]
- -k, --keyboard
- Troque a configuração do teclado para ABNT2
- -h, --hour
- Ajuste a hora do sistema com ntpdate...
- -H, --help
- Chama este manual
- AUTOR
- Escrito por Jefferson Rocha <lrcjefferson@gmail.com>
- LICENÇA
- MIT
- PRESSIONE 'Q' para SAIR
- EOF
- }
- #--------------------------------->
- #-----TESTES INICIAIS------------->
- [[ "$UID" -ne "0" ]] && exit 1
- # Ntpdate não existe? chave desliga.
- [[ $(which ntpdate 2>/dev/null) ]] && hour_key="0"
- #--------------------------------->
- #################################
- # Opções via linha de comando #
- # Parâmetro foi utilizado? #
- # A chave é ligada! #
- #################################
- while [[ -n "$1" ]]; do
- case "$1" in
- -i|--internet)
- internet_key="1"
- shift
- interface="$1"
- [[ -z "$1" ]] && interface="eth0"
- ;;
- -k|--keyboard) keyboard_key="1" && shift ;;
- -h|--hour) hour_key="1" && shift ;;
- -H|--help) help_now && shift;; # Chamada Função
- esac
- done
- # Aqui toda brincadeira começa!
- # boa diversão!
- # Internet
- if [[ "$internet_key" = "1" ]]; then # Chave está habilitada?
- if ! have_internet; then
- if ! which dhclient >/dev/null 2>&1; then
- dhcpcd -t 5 "$interface"
- else
- dhclient "$interface"
- fi
- fi
- fi
- # Teclado
- if [[ "$keyboard_key" = "1" ]]; then # Chave está habilitada?
- if [[ "$TERM" != "linux" ]]; then
- setxkbmap -model abnt2 -layout br
- else
- loadkeys br-abnt2
- fi
- fi
- # Hora
- if [[ "$hour_key" = "1" ]]; then
- if ! have_internet; then
- if ! ntpdate "$server1"; then
- ntpdate "$server2"
- fi
- fi
- fi
|