Advertisement
Rnery

Docker search and pull auto..

Feb 17th, 2024 (edited)
954
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.16 KB | Source Code | 0 0
  1. #!/usr/bin/env bash
  2. #####################################
  3. # Docker search and pull auto.      #
  4. #                                   #
  5. # Depois eu melhoro esse código.   #
  6. #####################################
  7.  
  8. RED='\033[0;31m'
  9. GREEN='\033[0;32m'
  10. YELLOW='\033[1;33m'
  11. NC='\033[0m' # No Color
  12.  
  13. function verificar_container_name() {
  14.   local container_name="$1"
  15.  
  16.   if [[ ! "$container_name" =~ ^[[:alpha:]][[:alnum:]_]*$ ]]; then
  17.     echo -e "\n${RED}Erro: O nome do contêiner deve começar com letras e números.${NC}"
  18.     return 1
  19.   fi
  20.  
  21.   if ! docker search "$container_name" > /dev/null; then
  22.     echo -e "\n${RED}Erro: O contêiner '$container_name' não foi encontrado.${NC}"
  23.     return 1
  24.   fi
  25.  
  26.   return 0
  27. }
  28.  
  29. function pull_container() {
  30.   local container_name="$1"
  31.  
  32.   if ! docker pull "$container_name" 2>&1 | grep -q "Image is up to date"; then
  33.     echo "Erro ao fazer o pull do $container_name:"
  34.     echo -e "$1"
  35.     exit 1
  36.   fi
  37.  
  38.   echo -e "\n${GREEN}Pull realizado com sucesso!${NC}"
  39. }
  40.  
  41. function verificar_resposta() {
  42.   local resposta
  43.  
  44.   while true; do
  45.     echo -e "\n"
  46.     read -rp "Deseja fazer pull? [Ss/Nn]: " resposta
  47.  
  48.     case "$resposta" in
  49.       [Ss])
  50.         return 0
  51.         ;;
  52.       [Nn])
  53.         echo -e "\n${YELLOW}Pull cancelado.${NC}"
  54.         exit 0
  55.         ;;
  56.       *)
  57.         echo -e "\n${RED}Resposta inválida. Digite 'S' para sim ou 'N' para não.${NC}"
  58.         ;;
  59.     esac
  60.   done
  61. }
  62.  
  63. function main() {
  64.   local container_name
  65.  
  66.   while true; do
  67.     read -rp "Digite o nome do contêiner: " container_name
  68.  
  69.     if verificar_container_name "$container_name"; then
  70.       clear
  71.       echo -e "\n"
  72.       docker search "$container_name"
  73.       break
  74.     fi
  75.  
  76.     echo -e "\n${YELLOW}Nome de contêiner inválido. Tente novamente.${NC}"
  77.   done
  78.  
  79.   if verificar_resposta; then
  80.     while true; do
  81.       read -rp "Digite novamente o nome do contêiner para pull e aguarde instantes: " novo_container_name
  82.  
  83.       if [[ -n "$novo_container_name" ]]; then
  84.         pull_container "$novo_container_name"
  85.         break
  86.       fi
  87.  
  88.       echo -e "\n${YELLOW}Nome de contêiner não pode estar vazio. Tente novamente.${NC}"
  89.     done
  90.   fi
  91. }
  92.  
  93. main
  94.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement