diff options
-rwxr-xr-x | src/abslibre-tools/libredbdiff | 133 | ||||
-rw-r--r-- | src/abslibre-tools/libredbdiff.conf | 4 | ||||
-rw-r--r-- | test/libredbdiff-test.sh | 4 |
3 files changed, 68 insertions, 73 deletions
diff --git a/src/abslibre-tools/libredbdiff b/src/abslibre-tools/libredbdiff index eadb0a4..5ef1029 100755 --- a/src/abslibre-tools/libredbdiff +++ b/src/abslibre-tools/libredbdiff @@ -23,28 +23,25 @@ name="Libredbdiff" . "$(librelib conf)" load_files libredbdiff || exit 1 -baseconfpath="$statedir" -basedbpath="$statedir" +conffile_prbl="$statedir/pacman.conf.parabola" +conffile_arch="$statedir/pacman.conf.archlinux" -conffile="$baseconfpath/pacman.conf.parabola" -conffilearch="$baseconfpath/pacman.conf.archlinux" +dbpath_prbl="$statedir/pacman.parabola" +dbpath_arch="$statedir/pacman.archlinux" -dbpath="$basedbpath/pacman.parabola" -dbpatharch="$basedbpath/pacman.archlinux" +mirrorlist_prbl="$statedir/mirrorlist.parabola" +mirrorlist_arch="$statedir/mirrorlist.archlinux" -mirrorlist="$baseconfpath/mirrorlist.parabola" -mirrorlistarch="$baseconfpath/mirrorlist.archlinux" - -field_pkgname_parabola=30 +field_pkgname_prbl=30 field_pkgname_arch=30 cmd="${0##*/}" arch_packages_tmp="/tmp/$cmd.arch-packages" -parabola_packages_tmp="/tmp/$cmd.parabola-packages" +prbl_packages_tmp="/tmp/$cmd.parabola-packages" -field_pkgname_total="$((field_pkgname_parabola + field_pkgname_arch))" -printf_format="%s %-${field_pkgname_parabola}s%-${field_pkgname_arch}s %s | %s\n" +field_pkgname_total="$((field_pkgname_prbl + field_pkgname_arch))" +printf_format="%s %-${field_pkgname_prbl}s%-${field_pkgname_arch}s %s | %s\n" printf_format_noarch="%s %-${field_pkgname_total}s %s\n" downloadfile() { @@ -103,54 +100,53 @@ arguments as root to initialize %s." "$cmd" "$name" } initialize() { - createdir "$baseconfpath" - createdir "$basedbpath" + createdir "$statedir" downloadfile \ - "$conffile" \ + "$conffile_prbl" \ "https://projects.parabola.nu/abslibre.git/plain/libre/pacman/pacman.conf.x86_64" \ "Downloading Parabola %q" \ pacman.conf if [[ $? == 255 ]] ; then - msg2 "Setting DBPath in %q" "$conffile" - sed -i "s|^#DBPath .*|DBPath = $dbpath|" "$conffile" - enablerepo nonprism "$conffile" - enablerepo pcr "$conffile" - enablerepo libre-multilib "$conffile" - enablerepo multilib "$conffile" + msg2 "Setting DBPath in %q" "$conffile_prbl" + sed -i "s|^#DBPath .*|DBPath = $dbpath_prbl|" "$conffile_prbl" + enablerepo nonprism "$conffile_prbl" + enablerepo pcr "$conffile_prbl" + enablerepo libre-multilib "$conffile_prbl" + enablerepo multilib "$conffile_prbl" fi downloadfile \ - "$conffilearch" \ + "$conffile_arch" \ "https://projects.archlinux.org/svntogit/packages.git/plain/pacman/trunk/pacman.conf.x86_64" \ "Downloading Arch %q" \ pacman.conf if [[ $? == 255 ]] ; then - msg2 "Setting DBPath in %q" "$conffilearch" - sed -i "s|^#DBPath .*|DBPath = $dbpatharch|" "$conffilearch" - msg2 "Setting Arch mirrorlist file in %q" "$conffilearch" - sed -i "s|/etc/pacman\.d/mirrorlist$|$baseconfpath/mirrorlist.archlinux|" \ - "$conffilearch" - enablerepo multilib "$conffilearch" + msg2 "Setting DBPath in %q" "$conffile_arch" + sed -i "s|^#DBPath .*|DBPath = $dbpath_arch|" "$conffile_arch" + msg2 "Setting Arch mirrorlist file in %q" "$conffile_arch" + sed -i "s|/etc/pacman\.d/mirrorlist$|$mirrorlist_arch|" \ + "$conffile_arch" + enablerepo multilib "$conffile_arch" fi downloadfile \ - "$mirrorlist" \ + "$mirrorlist_prbl" \ "https://repo.parabola.nu/mirrorlist.txt" \ "Downloading Parabola %q" \ mirrorlist if [[ $? == 255 ]] ; then - sed -i 's|^Server|#Server|' "$mirrorlist" - setmirror "Parabola" "$mirror" "$mirrorlist" + sed -i 's|^Server|#Server|' "$mirrorlist_prbl" + setmirror "Parabola" "$mirror_prbl" "$mirrorlist_prbl" fi downloadfile \ - "$mirrorlistarch" \ + "$mirrorlist_arch" \ "https://projects.archlinux.org/svntogit/packages.git/plain/pacman-mirrorlist/trunk/mirrorlist" \ "Downloading Arch %q" \ mirrorlist if [[ $? == 255 ]] ; then - setmirror "Arch" "$mirrorarch" "$mirrorlistarch" + setmirror "Arch" "$mirror_arch" "$mirrorlist_arch" fi } @@ -168,29 +164,29 @@ repo_test() { compare_pkgs() { local cmp - if [[ -n "${verarch[$pkgname]}" ]] ; then - cmp=$(vercmp "${ver[$pkgname]}" "${verarch[$pkgname]}") + if [[ -n "${ver_arch[$pkgname]}" ]] ; then + cmp=$(vercmp "${ver_prbl[$pkgname]}" "${ver_arch[$pkgname]}") if [[ "$cmp" -lt 0 ]]; then printf "$printf_format" \ '=' \ "$pkgname" \ "" \ - "${ver[$pkgname]}" \ - "${verarch[$pkgname]}" + "${ver_prbl[$pkgname]}" \ + "${ver_arch[$pkgname]}" fi elif [[ -n "${provides[$pkgname]}" ]]; then local _provides provide read -r -a _provides <<<"${provides[$pkgname]}" for provide in "${_provides[@]}"; do - if [[ -n "${verarch[$provide]}" ]]; then - cmp=$(vercmp "${ver[$pkgname]}" "${verarch[$provide]}") + if [[ -n "${ver_arch[$provide]}" ]]; then + cmp=$(vercmp "${ver_prbl[$pkgname]}" "${ver_arch[$provide]}") if [[ "$cmp" -lt 0 ]]; then printf "$printf_format" \ 'p' \ "$pkgname" \ "$provide" \ - "${ver[$pkgname]}" \ - "${verarch[$provide]}" + "${ver_prbl[$pkgname]}" \ + "${ver_arch[$provide]}" fi fi done @@ -198,7 +194,7 @@ compare_pkgs() { printf "$printf_format_noarch" \ 'o' \ "$pkgname" \ - "${ver[$pkgname]}" + "${ver_prbl[$pkgname]}" fi } @@ -206,9 +202,9 @@ print_cmp() { local repo="$1" awk -F/ -v repo="$repo" \ '$1 == repo {print $2}' \ - "$parabola_packages_tmp" | \ + "$prbl_packages_tmp" | \ while read -a line ; do - ver["${line[0]}"]="${line[1]}" + ver_prbl["${line[0]}"]="${line[1]}" provides["${line[0]}"]="${line[*]:2}" pkgname="${line[0]}" compare_pkgs @@ -274,37 +270,36 @@ main() { "$name" \ "$cmd" fi - check_vars libredbdiff statedir mirror mirrorarch || exit 1 + check_vars libredbdiff statedir mirror_prbl mirror_arch || exit 1 - if ! [[ -e "$conffile" && \ - -e "$conffilearch" && \ - -e "$mirrorlist" && \ - -e "$mirrorlist" ]]; then + if ! [[ -e "$conffile_prbl" && \ + -e "$conffile_arch" && \ + -e "$mirrorlist_prbl" && \ + -e "$mirrorlist_arch" ]]; then warning "At least one %s configuration file is missing." \ "$name" msg "Downloading and preparing missing configuration files." init=1 fi - createdir "$baseconfpath" - createdir "$basedbpath" + createdir "$statedir" initialize - if ! [[ -d "$dbpath" && \ - -d "$dbpatharch" ]]; then + if ! [[ -d "$dbpath_prbl" && \ + -d "$dbpath_arch" ]]; then warning "At least one %s pacman DB directory is missing. Synchronizing %s DB files." \ "$name" "$name" fi - createdir "$dbpath" + createdir "$dbpath_prbl" msg "Synchronizing %s pacman databases for Parabola" "$name" - pacman --config "$conffile" -Sy || + pacman --config "$conffile_prbl" -Sy || die "Failed to synchronize pacman database for Parabola. Exiting." - createdir "$dbpatharch" + createdir "$dbpath_arch" msg "Synchronizing %s pacman databases for Arch" "$name" - pacman --config "$conffilearch" -Sy || + pacman --config "$conffile_arch" -Sy || die "Failed to synchronize pacman database for Arch. Exiting." msg "%s pacman databases are updated. %s is ready. Run %q -n to print results." \ @@ -313,15 +308,15 @@ main() { else check_vars libredbdiff statedir repos || exit 1 - filenotfound "$dbpath/sync/libre.db" - filenotfound "$dbpatharch/sync/core.db" - filenotfound "$conffile" - filenotfound "$conffilearch" + filenotfound "$dbpath_prbl/sync/libre.db" + filenotfound "$dbpath_arch/sync/core.db" + filenotfound "$conffile_prbl" + filenotfound "$conffile_arch" - unset provides ver verarch - declare -gA provides ver verarch + unset provides ver_prbl ver_arch + declare -gA provides ver_prbl ver_arch - pacman --config "$conffilearch" -Ss | \ + pacman --config "$conffile_arch" -Ss | \ grep -v '^ ' | \ awk -F/ '{print $2}' \ > "$arch_packages_tmp" || \ @@ -329,13 +324,13 @@ main() { chmod 777 "$arch_packages_tmp" while read -a line; do - verarch["${line[0]}"]="${line[1]}" + ver_arch["${line[0]}"]="${line[1]}" done < "$arch_packages_tmp" - expac --config "$conffile" -S '%r/%n %v %S' \ - > "$parabola_packages_tmp" || \ + expac --config "$conffile_prbl" -S '%r/%n %v %S' \ + > "$prbl_packages_tmp" || \ die "expac command to get Parabola package data has failed. Exiting." - chmod 777 "$parabola_packages_tmp" + chmod 777 "$prbl_packages_tmp" if [[ -n "$repo_arg" ]] ; then print_cmp "$repo_arg" diff --git a/src/abslibre-tools/libredbdiff.conf b/src/abslibre-tools/libredbdiff.conf index 4ec024b..ed0fcb1 100644 --- a/src/abslibre-tools/libredbdiff.conf +++ b/src/abslibre-tools/libredbdiff.conf @@ -3,7 +3,7 @@ statedir='/var/lib/libredbdiff' -mirror='http://repo.parabola.nu/$repo/os/$arch' -mirrorarch='http://mirrors.kernel.org/archlinux/$repo/os/$arch' +mirror_prbl='http://repo.parabola.nu/$repo/os/$arch' +mirror_arch='http://mirrors.kernel.org/archlinux/$repo/os/$arch' repos=(libre pcr libre-multilib nonprism) diff --git a/test/libredbdiff-test.sh b/test/libredbdiff-test.sh index 0ded607..8602b5c 100644 --- a/test/libredbdiff-test.sh +++ b/test/libredbdiff-test.sh @@ -7,8 +7,8 @@ common_before() { mkdir -p "$XDG_CONFIG_HOME/libretools" printf '%s\n' \ 'statedir="$PWD"' \ - "mirror='http://repo.parabola.nu/\$repo/os/\$arch'" \ - "mirrorarch='http://mirrors.kernel.org/archlinux/\$repo/os/\$arch'" \ + "mirror_prbl='http://repo.parabola.nu/\$repo/os/\$arch'" \ + "mirror_arch='http://mirrors.kernel.org/archlinux/\$repo/os/\$arch'" \ 'repos=(libre)' \ > $XDG_CONFIG_HOME/libretools/libredbdiff.conf } |