Script para criação de pacotes auto extrator.
Publicado por Jeferson Alberi da Silva 10/01/2006
[ Hits: 5.721 ]
Download createAutoExtractor.sh
Script shell para criação de pacote auto extrator com opção de adicionar comandos de pré-install e post-install.
Para maiores informações consulte o help do mesmo.
#!/bin/bash # Jeferson A SILVA # 22/09/2005 AUX_A="script1.sh_tmp" AUX_B="script2.sh_tmp" Usage(){ echo -e "Usage:" echo -e "\t--preinst\t- Arquivo texto ou .sh com os comandos (script) pré-instalacao." echo -e "\t--posinst\t- Arquivo texto ou .sh com os comandos (script) pós-instalacao." echo -e "\t--input\t\t- Obrigatorio - Arquivo .tar.gz com arquivos e/ou binarios." echo -e "\t--output\t- Obrigatorio - Nome do script de saida. E.: meushell.sh" echo -e "\t--help\t\t- Utilize para obter informações sobre a utilização deste." echo -e "Exemplo:" echo -e "\t$0 --input=teste.tar.gz --output=teste.sh" echo -e "\t$0 --preinst=preinst.sh --posinst=postinst.sh --input=files.tar.gz --output=meushell.sh" exit 0 } while [ $# -gt 0 ] do case $1 in --preinst*) if echo $1 | grep -q '=' >/dev/null then PREINST=`echo $1 | sed 's/^--preinst=//'` else PREINST=$2 shift fi ;; --posinst*) if echo $1 | grep -q '=' >/dev/null then POSINST=`echo $1 | sed 's/^--posinst=//'` else POSINST=$2 shift fi ;; --input*) if echo $1 | grep -q '=' >/dev/null then INPUT=`echo $1 | sed 's/^--input=//'` else INPUT=$2 shift fi ;; --output*) if echo $1 | grep -q '=' >/dev/null then OUTPUT=`echo $1 | sed 's/^--output=//'` else OUTPUT=$2 shift fi ;; --help|-help|--h|--info|-info*) Usage ;; *) echo "Opcao invalida utilizada na funcao $(basename $0) - $1" Usage ;; esac shift done if [ -e "$INPUT" ] && [ ! -z "$OUTPUT" ] then echo '#!/bin/bash' > ${AUX_A} echo "" >> ${AUX_A} if [ ! -z "${PREINST}" ] && [ -e "${PREINST}" ] then echo "# Pré Install" >> ${AUX_A} cat ${PREINST} | grep -v '#!/bin/bash' >> ${AUX_A} else echo "ATENÇÃO - pré-install não definido ou não encontrado ${PREINST}" fi echo "# Install" >> ${AUX_A} echo "tail -n +{NUMBER} \$0 > ${INPUT}" >> ${AUX_A} echo "tar zxf ${INPUT}" >> ${AUX_A} echo "rm -f ${INPUT}" >> ${AUX_A} if [ ! -z "${POSINST}" ] && [ -e "${POSINST}" ] then echo "# Pós Install" >> ${AUX_A} cat ${POSINST} | grep -v '#!/bin/bash' >> ${AUX_A} else echo "ATENÇÃO - pós-install não definido ou não encontrado ${POSINST}" fi echo "" >> ${AUX_A} echo "exit 0" >> ${AUX_A} LINE=$(($(wc -l ${AUX_A} | awk '{print $1}')+1)) sed -e "s/{NUMBER}/${LINE}/g" ${AUX_A} > ${AUX_B} mv -f ${AUX_B} ${AUX_A} cat "${AUX_A}" "${INPUT}" > ${OUTPUT} chmod +x ${OUTPUT} rm -f ${AUX_A} echo "Script gerado em ${OUTPUT}" else Usage fi
Apagando 2 linhas do fim de um arquivo
Criando Boot pelo USB para o VirtualBox no Linux KDu5
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Problema em SSD ao dar boot LinuxMint LMDE FAYE 64 (0)
Baixar jogos Independentes para Ubuntu [RESOLVIDO] (4)
PIP3 - erro ao instalar módulo do mariadb para o Python (1)
Linux x Plataformas de Trading - um problema (in-)solúvel? (4)