| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- #!/bin/sh
- #-*-sh-*-
- #
- # Copyright © 2013-2021 Inria. All rights reserved.
- # See COPYING in top-level directory.
- #
- HWLOC_VERSION="2.9.3"
- prefix="/d/bld/libhwloc_1694532365898/_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
|