|
Packit |
96cac8 |
#!/bin/sh
|
|
Packit |
96cac8 |
# vim:noet:ts=2
|
|
Packit |
96cac8 |
# Fake the system time
|
|
Packit |
96cac8 |
|
|
Packit |
96cac8 |
dat="$1"
|
|
Packit |
96cac8 |
static=0
|
|
Packit |
96cac8 |
|
|
Packit |
96cac8 |
if [ "$dat" = "-s" -o "$dat" = "--static" ] ; then
|
|
Packit |
96cac8 |
static=1
|
|
Packit |
96cac8 |
shift
|
|
Packit |
96cac8 |
dat="$1"
|
|
Packit |
96cac8 |
fi
|
|
Packit |
96cac8 |
if [ "$dat" = "-v" -o "$dat" = "--version" ] ; then
|
|
Packit |
96cac8 |
echo "$0: Version @VERSION@"
|
|
Packit |
96cac8 |
echo ""
|
|
Packit |
96cac8 |
echo "For usage information, use '$0 --help'."
|
|
Packit |
96cac8 |
exit 0
|
|
Packit |
96cac8 |
fi
|
|
Packit |
96cac8 |
if [ -z "$dat" -o "$dat" = "-h" -o "$dat" = "-?" -o "$dat" = "--help" ] ; then
|
|
Packit |
96cac8 |
echo "Usage: $0 [-s|--static] date program args..."
|
|
Packit |
96cac8 |
echo ""
|
|
Packit |
96cac8 |
echo "Run 'program' with 'args'."
|
|
Packit |
96cac8 |
echo "The program will believe that the current time is 'date'."
|
|
Packit |
96cac8 |
if [ -z "$dat" ] ; then exit 1; else exit 0; fi
|
|
Packit |
96cac8 |
fi
|
|
Packit |
96cac8 |
|
|
Packit |
96cac8 |
shift
|
|
Packit |
96cac8 |
|
|
Packit |
96cac8 |
# Assume that 'date' already printed an error message
|
|
Packit |
96cac8 |
sec1=$(date -d "$dat" '+%s')
|
|
Packit |
96cac8 |
[ $? -eq 0 ] || exit 1
|
|
Packit |
96cac8 |
|
|
Packit |
96cac8 |
sec2=$(expr $(date '+%s') - $sec1)
|
|
Packit |
96cac8 |
# According to its documentation expr returns exit status 1,
|
|
Packit |
96cac8 |
# when the expression evaluates to 0
|
|
Packit |
96cac8 |
[ $? -le 1 ] || exit 1
|
|
Packit |
96cac8 |
|
|
Packit |
96cac8 |
add_ld_preload()
|
|
Packit |
96cac8 |
{
|
|
Packit |
96cac8 |
export LD_PRELOAD="${1}${LD_PRELOAD:+:}${LD_PRELOAD}"
|
|
Packit |
96cac8 |
}
|
|
Packit |
96cac8 |
|
|
Packit |
96cac8 |
add_ld_library_path()
|
|
Packit |
96cac8 |
{
|
|
Packit |
96cac8 |
export LD_LIBRARY_PATH="${1}${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}"
|
|
Packit |
96cac8 |
}
|
|
Packit |
96cac8 |
|
|
Packit |
96cac8 |
set_ld_environment()
|
|
Packit |
96cac8 |
{
|
|
Packit |
96cac8 |
lib="datefudge.so"
|
|
Packit |
96cac8 |
libpath="@LIBDIR@"
|
|
Packit |
96cac8 |
set -- "$libpath"@MULTIARCH_PATTERN@"/datefudge/$lib"
|
|
Packit |
96cac8 |
if [ ! -e "$1" ]; then
|
|
Packit |
96cac8 |
echo "Cannot find $lib in $libpath" >&2
|
|
Packit |
96cac8 |
[ -z "$POSH_VERSION" ] || echo "You might have just encountered posh bug#636601, please try using another shell." >&2
|
|
Packit |
96cac8 |
exit 1;
|
|
Packit |
96cac8 |
fi
|
|
Packit |
96cac8 |
for path in "$@"; do
|
|
Packit |
96cac8 |
add_ld_library_path "${path%/*}"
|
|
Packit |
96cac8 |
done
|
|
Packit |
96cac8 |
add_ld_preload "$lib"
|
|
Packit |
96cac8 |
}
|
|
Packit |
96cac8 |
|
|
Packit |
96cac8 |
set_datefudge_vars()
|
|
Packit |
96cac8 |
{
|
|
Packit |
96cac8 |
if [ "$static" = "1" ]; then
|
|
Packit |
96cac8 |
export DATEFUDGE=$sec1
|
|
Packit |
96cac8 |
export DATEFUDGE_DOSTATIC="1"
|
|
Packit |
96cac8 |
else
|
|
Packit |
96cac8 |
export DATEFUDGE=$sec2
|
|
Packit |
96cac8 |
unset DATEFUDGE_DOSTATIC
|
|
Packit |
96cac8 |
fi
|
|
Packit |
96cac8 |
}
|
|
Packit |
96cac8 |
|
|
Packit |
96cac8 |
|
|
Packit |
96cac8 |
set_ld_environment
|
|
Packit |
96cac8 |
set_datefudge_vars
|
|
Packit |
96cac8 |
|
|
Packit |
96cac8 |
exec "$@"
|