Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- #####################################
- # Docker search and pull auto. #
- # #
- # Depois eu melhoro esse código. #
- #####################################
- RED='\033[0;31m'
- GREEN='\033[0;32m'
- YELLOW='\033[1;33m'
- NC='\033[0m' # No Color
- function verificar_container_name() {
- local container_name="$1"
- if [[ ! "$container_name" =~ ^[[:alpha:]][[:alnum:]_]*$ ]]; then
- echo -e "\n${RED}Erro: O nome do contêiner deve começar com letras e números.${NC}"
- return 1
- fi
- if ! docker search "$container_name" > /dev/null; then
- echo -e "\n${RED}Erro: O contêiner '$container_name' não foi encontrado.${NC}"
- return 1
- fi
- return 0
- }
- function pull_container() {
- local container_name="$1"
- if ! docker pull "$container_name" 2>&1 | grep -q "Image is up to date"; then
- echo "Erro ao fazer o pull do $container_name:"
- echo -e "$1"
- exit 1
- fi
- echo -e "\n${GREEN}Pull realizado com sucesso!${NC}"
- }
- function verificar_resposta() {
- local resposta
- while true; do
- echo -e "\n"
- read -rp "Deseja fazer pull? [Ss/Nn]: " resposta
- case "$resposta" in
- [Ss])
- return 0
- ;;
- [Nn])
- echo -e "\n${YELLOW}Pull cancelado.${NC}"
- exit 0
- ;;
- *)
- echo -e "\n${RED}Resposta inválida. Digite 'S' para sim ou 'N' para não.${NC}"
- ;;
- esac
- done
- }
- function main() {
- local container_name
- while true; do
- read -rp "Digite o nome do contêiner: " container_name
- if verificar_container_name "$container_name"; then
- clear
- echo -e "\n"
- docker search "$container_name"
- break
- fi
- echo -e "\n${YELLOW}Nome de contêiner inválido. Tente novamente.${NC}"
- done
- if verificar_resposta; then
- while true; do
- read -rp "Digite novamente o nome do contêiner para pull e aguarde instantes: " novo_container_name
- if [[ -n "$novo_container_name" ]]; then
- pull_container "$novo_container_name"
- break
- fi
- echo -e "\n${YELLOW}Nome de contêiner não pode estar vazio. Tente novamente.${NC}"
- done
- fi
- }
- main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement