Script para criação de pacotes auto extrator.
Publicado por Jeferson Alberi da Silva 10/01/2006
[ Hits: 5.733 ]
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
Raiz Quadrada (Square Root) para Bash
Invertendo strings usando vetores
Agenda de Contatos - Shell Script + MYSQL
IA Turbina o Desktop Linux enquanto distros renovam forças
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
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









