You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
beta_channel_for_rift/landscape/hwloc-compress-dir

170 lines
4.3 KiB

#!/bin/sh
#-*-sh-*-
#
# Copyright © 2013-2021 Inria. All rights reserved.
# See COPYING in top-level directory.
#
HWLOC_VERSION="2.8.0"
prefix="/d/bld/libhwloc_1663269843804/_h_env/Library"
exec_prefix="${prefix}"
bindir="${exec_prefix}/bin"
# this will be changed into $bindir/... during make install
localhwlocdiff="$bindir/hwloc-diff"
localhwlocpatch="$bindir/hwloc-patch"
verbose=0
reverse=0
error()
{
echo $@ 2>&1
}
usage()
{
echo `basename $0`" [options] <inputdir> <outputdir>"
echo " Compress topologies from <inputdir> into <outputdir>"
echo "Options:"
echo " -R --reverse Uncompress instead of compressing"
echo " -v --verbose Display verbose messages"
echo " --version Report version and exit"
echo " -h --help Show this usage"
}
while test $# -gt 0 ; do
case "$1" in
-R|--reverse)
reverse=1
;;
-v|--verbose)
verbose=1
;;
--version)
echo `basename $0`" $HWLOC_VERSION"
exit 0
;;
-h|--help)
usage
exit 0
;;
-*)
error "Unrecognized option: $1"
usage
exit 1
;;
*)
break
;;
esac
shift
done
if test $# -lt 2 ; then
usage
exit 1
fi
inputdir="$1"
test x`echo $inputdir | sed -e 's/^\///'` = x$inputdir && inputdir="$PWD/$inputdir"
outputdir="$2"
test x`echo $outputdir | sed -e 's/^\///'` = x$outputdir && outputdir="$PWD/$outputdir"
if ! cd "$outputdir" ; then
echo "Cannot enter output directory $outputdir"
exit 1
fi
if test x$reverse = x0; then
# compress
alreadycompressed=0
alreadynoncompressed=0
newlycompressed=0
newlynoncompressed=0
inputs=`ls -1 "$inputdir"`
for input in $inputs ; do
name=`echo $input | sed -e 's/.xml$//'`
if test "x${name}.xml" != "x$input"; then
test x$verbose = x1 && echo "Ignoring non-XML file $input"
continue
fi
if test -f "$outputdir/${name}.xml" ; then
test x$verbose = x1 && echo "$name already non-compressed, skipping"
alreadynoncompressed=`expr $alreadynoncompressed + 1`
continue
fi
if test -f "$outputdir/${name}.diff.xml" ; then
test x$verbose = x1 && echo "$name already compressed, skipping"
alreadycompressed=`expr $alreadycompressed + 1`
continue
fi
found=
outputs=`ls -1 "$outputdir"`
for output in $outputs ; do
outputname=`echo $output | sed -e 's/.xml$//' | sed -e 's/.diff$//'`
test -f "${outputdir}/${outputname}.diff.xml" && continue
if $localhwlocdiff "$outputdir/${outputname}.xml" "$inputdir/${name}.xml" "$outputdir/${name}.diff.xml" >/dev/null 2>/dev/null; then
echo "Compressed $name on top of $outputname"
newlycompressed=`expr $newlycompressed + 1`
found=1
break
fi
done
if test x$found = x ; then
echo "Could not compress $name, keeping non-compressed"
newlynoncompressed=`expr $newlynoncompressed + 1`
cp "$inputdir/${name}.xml" "$outputdir/${name}.xml"
fi
done
echo "Compressed $newlycompressed new topologies ($alreadycompressed were already compressed)"
echo "Kept $newlynoncompressed new topologies non-compressed ($alreadynoncompressed were already non-compressed)"
else
# uncompress
newlyuncompressed=0
newlynoncompressed=0
alreadyuncompressed=0
inputs=`ls -1 "$inputdir"`
for input in $inputs ; do
name=`echo $input | sed -e 's/.xml$//' | sed -e 's/.diff$//'`
if test "x${name}.xml" != "x$input" -a "x${name}.diff.xml" != "x$input"; then
test x$verbose = x1 && echo "Ignoring non-XML and non-diff-XML file $input"
continue
fi
if test -f "$outputdir/${name}.xml" ; then
test x$verbose = x1 && echo "$name already uncompressed, skipping"
alreadyuncompressed=`expr $alreadyuncompressed + 1`
continue
fi
if test "x${name}.xml" = "x$input"; then
# non-compressed
cp "$inputdir/${name}.xml" "$outputdir/${name}.xml"
echo "Copied $name, wasn't compressed"
newlynoncompressed=`expr $newlynoncompressed + 1`
else
# compressed
if (cd $outputdir && $localhwlocpatch refname "$inputdir/${name}.diff.xml" "${name}.xml"); then
echo "Uncompressed $name"
newlyuncompressed=`expr $newlyuncompressed + 1`
else
echo "Failed to uncompress $inputdir/${name}.diff.xml" 1>&2
fi
fi
done
echo "Uncompressed $newlyuncompressed new topologies, copied $newlynoncompressed non-compressed topologies ($alreadyuncompressed were already uncompressed)"
fi