mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 01:39:16 -04:00
- Sort directories by Lexicographical Depth-First order (find -ds)
With hat: portmgr
This commit is contained in:
parent
6fdcdb7344
commit
e81c57a53d
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=351693
1 changed files with 27 additions and 7 deletions
|
@ -23,6 +23,12 @@ listmtree() { # mtreefile prefix
|
||||||
} | tar -tf- | sed "s,^,$2/,;s,^$2/\.$,$2,;s,^$,/,"
|
} | tar -tf- | sed "s,^,$2/,;s,^$2/\.$,$2,;s,^$,/,"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sort_dfs() {
|
||||||
|
while read dir; do
|
||||||
|
grep "^[0-9]* ${dir}$" ${WRKDIR}/.staged-dirs-dfs-sorted
|
||||||
|
done | sort -n | cut -d ' ' -f2-
|
||||||
|
}
|
||||||
|
|
||||||
# obtain operating mode from command line
|
# obtain operating mode from command line
|
||||||
makeplist=0
|
makeplist=0
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
@ -234,10 +240,14 @@ comm -13 ${WRKDIR}/.plist-files ${WRKDIR}/.staged-files | \
|
||||||
### HANDLE DIRS
|
### HANDLE DIRS
|
||||||
cat ${WRKDIR}/.plist-dirs-unsorted ${WRKDIR}/.mtree \
|
cat ${WRKDIR}/.plist-dirs-unsorted ${WRKDIR}/.mtree \
|
||||||
${WRKDIR}/.run-depends-dirs | sort -u >${WRKDIR}/.traced-dirs
|
${WRKDIR}/.run-depends-dirs | sort -u >${WRKDIR}/.traced-dirs
|
||||||
find ${STAGEDIR} -type d | sed -e "s,^${STAGEDIR},,;/^$/d" | \
|
find -sd ${STAGEDIR} -type d | sed -e "s,^${STAGEDIR},,;/^$/d" \
|
||||||
sort >${WRKDIR}/.staged-dirs
|
>${WRKDIR}/.staged-dirs-dfs
|
||||||
comm -13 ${WRKDIR}/.traced-dirs ${WRKDIR}/.staged-dirs \
|
sort ${WRKDIR}/.staged-dirs-dfs >${WRKDIR}/.staged-dirs-sorted
|
||||||
| sort -r | sed "${sed_dirs}" \
|
awk '{print FNR, $0}' ${WRKDIR}/.staged-dirs-dfs \
|
||||||
|
>${WRKDIR}/.staged-dirs-dfs-sorted
|
||||||
|
# Find all staged dirs and then sort them by depth-first (find -ds)
|
||||||
|
comm -13 ${WRKDIR}/.traced-dirs ${WRKDIR}/.staged-dirs-sorted \
|
||||||
|
| sort_dfs | sed "${sed_dirs}" \
|
||||||
>>${WRKDIR}/.staged-plist || :
|
>>${WRKDIR}/.staged-plist || :
|
||||||
|
|
||||||
# If just making plist, show results and exit successfully.
|
# If just making plist, show results and exit successfully.
|
||||||
|
@ -270,7 +280,7 @@ cat ${WRKDIR}/.mtree ${WRKDIR}/.run-depends-dirs | sort -u \
|
||||||
>${WRKDIR}/.restricted-dirs
|
>${WRKDIR}/.restricted-dirs
|
||||||
: >${WRKDIR}/.invalid-plist-dependencies
|
: >${WRKDIR}/.invalid-plist-dependencies
|
||||||
comm -12 ${WRKDIR}/.plist-dirs-sorted-no-comments ${WRKDIR}/.restricted-dirs \
|
comm -12 ${WRKDIR}/.plist-dirs-sorted-no-comments ${WRKDIR}/.restricted-dirs \
|
||||||
| sort -r | sed "${sed_dirs}" \
|
| sort_dfs | sed "${sed_dirs}" \
|
||||||
>>${WRKDIR}/.invalid-plist-dependencies || :
|
>>${WRKDIR}/.invalid-plist-dependencies || :
|
||||||
if [ -s "${WRKDIR}/.invalid-plist-dependencies" ]; then
|
if [ -s "${WRKDIR}/.invalid-plist-dependencies" ]; then
|
||||||
ret=1
|
ret=1
|
||||||
|
@ -285,9 +295,19 @@ comm -23 ${WRKDIR}/.plist-files-no-comments ${WRKDIR}/.staged-files | \
|
||||||
sed -e "${sed_files}" \
|
sed -e "${sed_files}" \
|
||||||
>>${WRKDIR}/.invalid-plist-missing || :
|
>>${WRKDIR}/.invalid-plist-missing || :
|
||||||
|
|
||||||
comm -23 ${WRKDIR}/.plist-dirs-sorted-no-comments ${WRKDIR}/.staged-dirs \
|
# Look for directories, then sort them by DFS. Must create the dirs
|
||||||
| sort -r | sed "${sed_dirs}" \
|
# so find -ds can be used to sort them.
|
||||||
|
rm -rf ${WRKDIR}/.missing-dirs > /dev/null 2>&1 || :
|
||||||
|
mkdir ${WRKDIR}/.missing-dirs
|
||||||
|
comm -23 ${WRKDIR}/.plist-dirs-sorted-no-comments \
|
||||||
|
${WRKDIR}/.staged-dirs-sorted > ${WRKDIR}/.missing-plist-dirs
|
||||||
|
sed "s,^,${WRKDIR}/.missing-dirs," ${WRKDIR}/.missing-plist-dirs | \
|
||||||
|
xargs mkdir -p
|
||||||
|
find -ds ${WRKDIR}/.missing-dirs | sed -e "s,^${WRKDIR}/.missing-dirs,," | \
|
||||||
|
while read dir; do grep -x "${dir}" ${WRKDIR}/.missing-plist-dirs || :; done | \
|
||||||
|
sed "${sed_dirs}" \
|
||||||
>>${WRKDIR}/.invalid-plist-missing || :
|
>>${WRKDIR}/.invalid-plist-missing || :
|
||||||
|
rm -rf ${WRKDIR}/.missing-dirs
|
||||||
if [ -s "${WRKDIR}/.invalid-plist-missing" ]; then
|
if [ -s "${WRKDIR}/.invalid-plist-missing" ]; then
|
||||||
ret=1
|
ret=1
|
||||||
while read line; do
|
while read line; do
|
||||||
|
|
Loading…
Add table
Reference in a new issue