Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Code Block
languagebash
#!/bin/bash

# File create for save temporary values
>list_one
>list_two
>pkg_dep
>tmp0
>tmp1
>tmp

function get_depends()
{
  ## This function get depends for build component
  [ -z "$(grep -f pkg_dep <<< $1)" ] &&
  apt-get install -s $1 2>/dev/null | grep Inst | awk '{print $2}'| sort -u &&
  echo $pkg >> pkg_dep
}

function all_dep()
{
  ## This recursion function for get recursion depends for build conmponents
  for pkg in $@; do
    all_dep $(get_depends $pkg)
  done
}

## Loop for get depends for build components
while read component; do
  if [[ "" == "$component" ]]; then
    continue
  fi
  echo -e "\033[33;1;4m =====> Getting depends for $component... \033[0m"
  apt-get --dry-run build-dep $component 2>/dev/null | grep Inst | awk '{print $2}' >> list_one
done < list_component

while read pkg; do
  if [[ "" == "$pkg" ]]; then
    continue
  fi
  echo -e "\033[32;1;4m =====> Installing $pkg... \033[0m"
  apt-get install -s $pkg 2>/dev/null | grep Inst | awk '{print $2}' >> list_two
done < list_pkg_sec

cat list_one       >> tmp0
cat list_two       >> tmp0
cat list_component >> tmp0
cat list_pkg_sec   >> tmp0
cat tmp0 | sort -u >> tmp1

## Loop for get depends, use function 'all_dep'
while read pkg; do
  if [[ "" == "$pkg" ]]; then
    continue
  fi
  echo -e "\033[36;1;4m =====> Getting depends for $pkg... \033[0m"
  all_dep $pkg >/dev/null
done < tmp1

cat pkg_dep        >> tmp1
cat tmp1 | sort -u >> tmp

while read pkg; do
  if [[ "" == "$pkg" ]]; then
    continue
  fi
  echo -e "\033[35;1;4m =====> Downloading $pkg... \033[0m"
  sudo apt-get download $pkg
done < tmp
EOT