Skip to content
This repository has been archived by the owner on May 31, 2018. It is now read-only.

Commit

Permalink
Merge pull request #633 from ChuckDaniels87/documentation
Browse files Browse the repository at this point in the history
Add file and function documentation
  • Loading branch information
ismaelgv committed Apr 12, 2017
2 parents 433c870 + b920ea1 commit 9035f37
Show file tree
Hide file tree
Showing 9 changed files with 475 additions and 129 deletions.
59 changes: 59 additions & 0 deletions libpacaur/info.sh → libpacaur/aur.sh
Original file line number Diff line number Diff line change
@@ -1,10 +1,68 @@
#!/bin/bash
#
# aur.sh - functions related to AUR operations
#

##
# Upgrade needed AUR packages.
#
# usage: UpgradeAur()
##
UpgradeAur() {
local foreignpkgs allaurpkgs allaurpkgsAver allaurpkgsQver aurforeignpkgs i json
# global aurpkgs
Note "i" $"${colorW}Starting AUR upgrade...${reset}"

# selective upgrade switch
if [[ $selective && -n ${pkgs[@]} ]]; then
aurpkgs+=(${pkgs[@]})
else
foreignpkgs=($($pacmanbin -Qmq))
SetJson ${foreignpkgs[@]}
allaurpkgs=($(GetJson "var" "$json" "Name"))
allaurpkgsAver=($(GetJson "var" "$json" "Version"))
allaurpkgsQver=($(expac -Q '%v' ${allaurpkgs[@]}))
for i in "${!allaurpkgs[@]}"; do
[[ $(vercmp "${allaurpkgsAver[$i]}" "${allaurpkgsQver[$i]}") -gt 0 ]] && aurpkgs+=(${allaurpkgs[$i]});
done
fi

# foreign packages check
aurforeignpkgs=($(grep -xvf <(printf '%s\n' "${allaurpkgs[@]}") <(printf '%s\n' "${foreignpkgs[@]}")))
for i in "${aurforeignpkgs[@]}"; do
Note "w" $"${colorW}$i${reset} is ${colorY}not present${reset} in AUR -- skipping"
done

# add devel packages
if [[ $devel ]]; then
for i in "${allaurpkgs[@]}"; do
[[ -n "$(grep -E "\-(cvs|svn|git|hg|bzr|darcs|nightly.*)$" <<< $i)" ]] && aurpkgs+=($i)
done
fi

# avoid possible duplicate
aurpkgs=($(tr ' ' '\n' <<< ${aurpkgs[@]} | sort -u))

NothingToDo ${aurpkgs[@]}
}

##
# Search packages in the AUR
#
# usage: SearchAur( $packages )
##
SearchAur() {
if [[ -z "$(grep -E "\-\-[r]?sort" <<< ${coweropts[@]})" ]]; then
[[ $sortorder = descending ]] && coweropts+=("--rsort=$sortby") || coweropts+=("--sort=$sortby");
fi
cower ${coweropts[@]} -- $@
}

##
# Fetch and print formatted information of AUR packages
#
# usage: InfoAur( $aur_packages )
##
InfoAur() {
local aurinfopkgs info infolabel maxlength linfo lbytes

Expand Down Expand Up @@ -88,3 +146,4 @@ InfoAur() {
echo
done
}
# vim:set ts=4 sw=2 et:
12 changes: 12 additions & 0 deletions libpacaur/cache.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
#!/bin/bash
#
# cache.sh - functions related to cache management
#

##
# Clean AUR cache, including sources and clone directories. This function let
# users select what content is deleted.
#
# usage: CleanCache( $packages )
##
CleanCache() {
if [[ $SRCDEST ]]; then
[[ $count -eq 1 ]] && printf "\n%s\n %s\n" $"Sources to keep:" $"All development packages sources"
Expand Down Expand Up @@ -43,3 +54,4 @@ CleanCache() {
fi
exit 0
}
# vim:set ts=4 sw=2 et:
84 changes: 84 additions & 0 deletions libpacaur/checks.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
#!/bin/bash
#
# checks.sh - functions related to checking operations
#

##
# Check packages that are ignored on upgrade or installation.
#
# usage: IgnoreChecks()
##
IgnoreChecks() {
local checkaurpkgs checkaurpkgsAver checkaurpkgsQver i json
# global aurpkgs rmaurpkgs
Expand Down Expand Up @@ -47,6 +57,49 @@ IgnoreChecks() {
NothingToDo ${aurpkgs[@]}
}

##
# Check ignored packages needed as dependencies.
#
# usage: IgnoreDepsChecks()
##
IgnoreDepsChecks() {
local i
# global ignoredpkgs aurpkgs aurdepspkgs rmaurpkgs deps repodepspkgs
[[ -z "${ignoredpkgs[@]}" ]] && return

# add checked targets
deps=(${aurpkgs[@]})

# check dependencies
for i in "${repodepspkgs[@]}"; do
if [[ " ${ignoredpkgs[@]} " =~ " $i " ]]; then
Note "w" $"${colorW}$i${reset}: ignoring package upgrade"
Note "e" $"Unresolved dependency '${colorW}$i${reset}'"
fi
done
for i in "${aurdepspkgs[@]}"; do
# skip already checked dependencies
[[ " ${aurpkgs[@]} " =~ " $i " ]] && continue
[[ " ${rmaurpkgs[@]} " =~ " $i " ]] && Note "e" $"Unresolved dependency '${colorW}$i${reset}'"

if [[ " ${ignoredpkgs[@]} " =~ " $i " ]]; then
if [[ ! $noconfirm ]]; then
if ! Proceed "y" $"$i dependency is in IgnorePkg/IgnoreGroup. Install anyway?"; then
Note "e" $"Unresolved dependency '${colorW}$i${reset}'"
fi
else
Note "w" $"${colorW}$i${reset}: ignoring package upgrade"
Note "e" $"Unresolved dependency '${colorW}$i${reset}'"
fi
fi
deps+=($i)
done
}
##
# Check providers of packages and dependencies.
#
# usage: ProviderChecks()
##
ProviderChecks() {
local allproviders providersdeps providers repodepspkgsprovided providerspkgs provided nb providersnb rmproviderpkgs providerpkgsrm
# global repodepspkgs repoprovidersconflictingpkgs repodepsSver repodepsSrepo repodepsQver
Expand Down Expand Up @@ -139,6 +192,11 @@ ProviderChecks() {
fi
}

##
# Check conflicting packages and dependencies.
#
# usage: ConflictChecks()
##
ConflictChecks() {
local allQprovides allQconflicts Aprovides Aconflicts aurconflicts aurAconflicts Qrequires i j k
local repodepsprovides repodepsconflicts checkedrepodepsconflicts repodepsconflictsname repodepsconflictsver localver repoconflictingpkgs
Expand Down Expand Up @@ -277,6 +335,11 @@ ConflictChecks() {
done
}

##
# Check and notify which packages are marked to be reinstalled.
#
# usage: ReinstallChecks()
##
ReinstallChecks() {
local i depsAtmp
# global aurpkgs aurdepspkgs deps aurconflictingpkgs depsAname depsQver depsAver depsAood depsAmain
Expand All @@ -302,6 +365,11 @@ ReinstallChecks() {
NothingToDo ${deps[@]}
}

##
# Check out of date packages.
#
# usage: OutofdateChecks()
##
OutofdateChecks() {
local i
# global depsAname depsAver depsAood
Expand All @@ -310,6 +378,11 @@ OutofdateChecks() {
done
}

##
# Check orphaned packages.
#
# usage: OrphanChecks()
##
OrphanChecks() {
local i
# global depsAname depsAver depsAmain
Expand All @@ -318,6 +391,11 @@ OrphanChecks() {
done
}

##
# Check which packages need to be updated.
#
# usage: CheckUpdates( $packages )
##
CheckUpdates() {
local foreignpkgs foreignpkgsbase repopkgsQood repopkgsQver repopkgsSver repopkgsSrepo repopkgsQgrp repopkgsQignore
local aurpkgsQood aurpkgsAname aurpkgsAver aurpkgsQver aurpkgsQignore i json
Expand Down Expand Up @@ -444,6 +522,11 @@ CheckUpdates() {
fi
}

##
# Check that all dependencies required by the packages are satisfied.
#
# usage: CheckRequires( $packages )
##
CheckRequires() {
local Qrequires
Qrequires=($(expac -Q '%n %D' | grep -E " $@[\+]*[^a-zA-Z0-9_@\.\+-]+" | awk '{print $1}' | tr '\n' ' '))
Expand All @@ -452,3 +535,4 @@ CheckRequires() {
Note "e" $"${Qrequires[@]}: requires $@"
fi
}
# vim:set ts=4 sw=2 et:
66 changes: 32 additions & 34 deletions libpacaur/deps.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
#!/bin/bash
#
# deps.sh - functions related to dependency resolution
#

##
# Dependency solver that wraps both pacman and AUR packages dependency
# resolution.
#
# usage: DepsSolver()
##
DepsSolver() {
local i aurpkgsname aurpkgsver aurpkgsaurver aurpkgsconflicts
# global aurpkgs aurpkgsnover aurpkgsproviders aurdeps deps json errdeps errdepsnover foreignpkgs repodeps depsAname depsAver depsAood depsQver
Expand Down Expand Up @@ -93,6 +104,11 @@ DepsSolver() {
FindDepsRepo ${repodeps[@]}
}

##
# Find dependencies of AUR packages.
#
# usage: FindDepsAur( $aur_packages )
##
FindDepsAur() {
local depspkgs depspkgstmp depspkgsaurtmp repodepstmp builtpkg vcsdepspkgs assumedepspkgs
local aurversionpkgs aurversionpkgsname aurversionpkgsver aurversionpkgsaurver i j json
Expand Down Expand Up @@ -258,6 +274,11 @@ FindDepsAur() {
fi
}

##
# Sort dependencies to ensure correct resolution order.
#
# usage: SortDepsAur( $aur_packages )
##
SortDepsAur() {
local i j sortaurpkgs sortdepspkgs sortdepspkgsaur
# global checkedsortdepspkgsaur allcheckedsortdepspkgsaur json errdepsnover
Expand Down Expand Up @@ -307,6 +328,11 @@ SortDepsAur() {
fi
}

##
# Find dependency errors in AUR packages.
#
# usage: FindDepsAurError( $sorted_dependencies )
##
FindDepsAurError() {
local i nexterrdep nextallerrdeps
# global errdepsnover errdepslist tsorterrdeps currenterrdep
Expand Down Expand Up @@ -351,6 +377,11 @@ FindDepsAurError() {
fi
}

##
# Find dependencies of repository packages.
#
# usage: FindDepsRepo( $repo_packages )
##
FindDepsRepo() {
local allrepopkgs providersrepopkgs providersrepopkgsrm i j
# global repodeps
Expand Down Expand Up @@ -379,37 +410,4 @@ FindDepsRepo() {

repodepspkgs=($($pacmanbin -T ${allrepopkgs[@]} | sort -u))
}

IgnoreDepsChecks() {
local i
# global ignoredpkgs aurpkgs aurdepspkgs rmaurpkgs deps repodepspkgs
[[ -z "${ignoredpkgs[@]}" ]] && return

# add checked targets
deps=(${aurpkgs[@]})

# check dependencies
for i in "${repodepspkgs[@]}"; do
if [[ " ${ignoredpkgs[@]} " =~ " $i " ]]; then
Note "w" $"${colorW}$i${reset}: ignoring package upgrade"
Note "e" $"Unresolved dependency '${colorW}$i${reset}'"
fi
done
for i in "${aurdepspkgs[@]}"; do
# skip already checked dependencies
[[ " ${aurpkgs[@]} " =~ " $i " ]] && continue
[[ " ${rmaurpkgs[@]} " =~ " $i " ]] && Note "e" $"Unresolved dependency '${colorW}$i${reset}'"

if [[ " ${ignoredpkgs[@]} " =~ " $i " ]]; then
if [[ ! $noconfirm ]]; then
if ! Proceed "y" $"$i dependency is in IgnorePkg/IgnoreGroup. Install anyway?"; then
Note "e" $"Unresolved dependency '${colorW}$i${reset}'"
fi
else
Note "w" $"${colorW}$i${reset}: ignoring package upgrade"
Note "e" $"Unresolved dependency '${colorW}$i${reset}'"
fi
fi
deps+=($i)
done
}
# vim:set ts=4 sw=2 et:
Loading

0 comments on commit 9035f37

Please sign in to comment.