Skip to content

Instantly share code, notes, and snippets.

@mikhailnov
Created November 17, 2022 13:37
Show Gist options
  • Save mikhailnov/81c13c7feb146be80b7cf7b2efc8b379 to your computer and use it in GitHub Desktop.
Save mikhailnov/81c13c7feb146be80b7cf7b2efc8b379 to your computer and use it in GitHub Desktop.
Скрипт подсчета статистики по репозиторию ROSA Linux
#!/bin/bash
set -e
set -o pipefail
trap 'echo ОШИБКА' ERR
# список пакетов в репах
# --disablerepo '*i686*' т.к. большинство пакетов есть и в 32, и в 64 битных вариантах
pkgs_list="$(dnf --disablerepo '*i686*' repoquery --qf '%{name} %{sourcerpm}' 2>/dev/null | sort -u)"
# кол-во пакетов в этом списке
pkgs_num="$(echo "$pkgs_list" | grep -c .)"
# приложения с графическими ярлыками запуска
apps_list="$(dnf repoquery --disablerepo '*i686*' --whatprovides 'application(*)' --qf '%{name}' 2>/dev/null | sort -u)"
# их кол-во
apps_num="$(echo "$apps_list" | grep -c .)"
# кол-во исходных пакетов
src_num="$(echo "$pkgs_list" | awk '{print $2}' | sort -u | grep -c .)"
# кол-во библиотек
libs_num="$(echo "$pkgs_list" | awk '{print $1}' | grep -v -- -devel | grep ^lib64 | sort -u | grep -c .)"
# кол-во пакетов для разработчиков (с заголовочными файлами)
dev_num="$(echo "$pkgs_list" | awk '{print $1}' | grep -- '-devel$' | sort -u | grep -c .)"
cat << EOF
Статистика репозитория
Всего исходных пакетов: $src_num
Всего бинарных пакетов (из одного исходника собирается в среднем больше одного пакета): $pkgs_num
Пакетов с графическими программами: $apps_num
Пакетов с библиотеками: $libs_num
Пакетов для разработчиков (с заголовочными файлами): $dev_num
EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment