Exheredludis/paludis/hooker_TEST_setup.sh

296 lines
5.4 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
2007-04-16 00:57:51 +02:00
# vim: set ft=sh sw=4 sts=4 et :
mkdir hooker_TEST_dir || exit 2
cd hooker_TEST_dir || exit 3
mkdir simple_hook
cat <<"END" > simple_hook/one.bash
exit 3
END
chmod +x simple_hook/one.bash
2007-05-14 02:11:34 +02:00
mkdir simple_hook_output
cat <<"END" > simple_hook_output/one.bash
echo "foo"
END
chmod +x simple_hook_output/one.bash
2007-04-16 00:57:51 +02:00
mkdir fancy_hook
cat <<"END" > fancy_hook/one.hook
hook_run_fancy_hook() {
return 5
}
hook_depend_fancy_hook() {
echo
}
hook_after_fancy_hook() {
echo
}
2007-04-16 00:57:51 +02:00
END
chmod +x fancy_hook/one.hook
2007-05-14 02:11:34 +02:00
mkdir fancy_hook_output
cat <<"END" > fancy_hook_output/one.hook
hook_run_fancy_hook_output() {
echo foo
}
hook_depend_fancy_hook_output() {
echo
}
hook_after_fancy_hook_output() {
echo
}
END
chmod +x fancy_hook_output/one.hook
2007-05-17 21:10:44 +02:00
mkdir so_hook
ln -s ${TOP_BUILDDIR}/paludis/libpaludissohooks_TEST_${PALUDIS_PC_SLOT}.so.${SO_SUFFIX} so_hook
2007-05-17 21:10:44 +02:00
mkdir so_hook_output
ln -s ${TOP_BUILDDIR}/paludis/libpaludissohooks_TEST_${PALUDIS_PC_SLOT}.so.${SO_SUFFIX} so_hook_output
2007-05-17 21:10:44 +02:00
2007-09-10 11:50:32 +02:00
mkdir py_hook
cat <<"END" > py_hook/hook.py
def hook_run_py_hook(env, hook_env):
pass
END
mkdir py_hook_output
cat <<"END" > py_hook_output/hook.py
def hook_run_py_hook_output(env, hook_env):
return "foo"
END
2007-05-17 21:10:44 +02:00
2007-04-16 00:57:51 +02:00
mkdir several_hooks
cat <<"END" > several_hooks/one.hook
hook_run_several_hooks() {
return 4
}
hook_depend_several_hooks() {
echo
}
END
chmod +x several_hooks/one.hook
cat <<"END" > several_hooks/two.hook
hook_run_several_hooks() {
return 6
}
hook_depend_several_hooks() {
echo
}
END
chmod +x several_hooks/two.hook
cat <<"END" > several_hooks/three.hook
hook_run_several_hooks() {
return 7
}
hook_depend_several_hooks() {
echo
}
END
chmod +x several_hooks/three.hook
2007-05-14 02:11:34 +02:00
mkdir several_hooks_output
cat <<"END" > several_hooks_output/one.hook
hook_run_several_hooks_output() {
echo one
echo one >> hooker_TEST_dir/several_output.out
}
hook_depend_several_hooks_output() {
echo
}
END
chmod +x several_hooks_output/one.hook
cat <<"END" > several_hooks_output/two.hook
hook_run_several_hooks_output() {
echo two
echo two >> hooker_TEST_dir/several_output.out
}
hook_depend_several_hooks_output() {
echo one
}
END
chmod +x several_hooks_output/two.hook
cat <<"END" > several_hooks_output/three.hook
hook_run_several_hooks_output() {
echo three
echo three >> hooker_TEST_dir/several_output.out
}
hook_depend_several_hooks_output() {
echo two
}
END
chmod +x several_hooks_output/three.hook
mkdir several_hooks_output_bad
cat <<"END" > several_hooks_output_bad/one.hook
hook_run_several_hooks_output_bad() {
echo one
echo one >> hooker_TEST_dir/several_output_bad.out
return 1
}
hook_depend_several_hooks_output_bad() {
echo
}
END
chmod +x several_hooks_output_bad/one.hook
cat <<"END" > several_hooks_output_bad/two.hook
hook_run_several_hooks_output_bad() {
echo two
echo two >> hooker_TEST_dir/several_output_bad.out
return 99
}
hook_depend_several_hooks_output_bad() {
echo one
}
END
chmod +x several_hooks_output_bad/two.hook
cat <<"END" > several_hooks_output_bad/three.hook
hook_run_several_hooks_output_bad() {
echo three
echo three >> hooker_TEST_dir/several_output_bad.out
return 2
}
hook_depend_several_hooks_output_bad() {
echo two
}
END
chmod +x several_hooks_output_bad/three.hook
2007-04-16 00:57:51 +02:00
mkdir ordering
cat <<"END" > ordering.common
hook_run_ordering() {
basename ${HOOK_FILE} | sed -e 's,\.hook$,,' >> hooker_TEST_dir/ordering.out
}
hook_depend_ordering() {
case $(basename ${HOOK_FILE} | sed -e 's,\.hook$,,' ) in
a)
echo b
;;
b)
echo c d
;;
c)
echo e
;;
d)
echo e f
;;
h)
esac
}
hook_after_ordering() {
case $(basename ${HOOK_FILE} | sed -e 's,\.hook$,,' ) in
a)
echo x
;;
h)
2007-09-10 11:50:32 +02:00
echo i py_hook
2007-04-16 00:57:51 +02:00
;;
j)
2007-05-17 21:10:44 +02:00
echo k libpaludissohooks_TEST
2007-04-16 00:57:51 +02:00
;;
esac
}
END
chmod +x ordering.common
for a in a b c d e f g h i j k ; do
ln -s ../ordering.common ordering/${a}.hook
done
ln -s ${TOP_BUILDDIR}/paludis/libpaludissohooks_TEST_${PALUDIS_PC_SLOT}.so.${SO_SUFFIX} ordering
2007-09-10 11:50:32 +02:00
cat <<"END" > ordering/py_hook.py
def hook_run_ordering(env, hook_env):
open("hooker_TEST_dir/ordering.out", "a").write("py_hook\n")
2007-09-10 11:50:32 +02:00
def hook_depend_ordering(hook_env):
return ["f"]
END
2007-04-16 00:57:51 +02:00
2007-04-16 05:28:30 +02:00
mkdir bad_hooks
cat <<"END" > bad_hooks.common
hook_run_bad_hooks() {
basename ${HOOK_FILE} | sed -e 's,\.hook$,,' >> hooker_TEST_dir/bad_hooks.out
}
END
chmod +x bad_hooks.common
for a in one three ; do
ln -s ../bad_hooks.common bad_hooks/${a}.hook
done
cat <<"END" > bad_hooks/two.hook
asdf
END
chmod +x bad_hooks/two.hook
2007-09-10 11:50:32 +02:00
cat <<"END" > bad_hooks/four.py
def hook_run_bad_hooks(env, hook_env):
1/0
END
2007-04-16 05:28:30 +02:00
mkdir cycles
cat <<"END" > cycles.common
hook_run_cycles() {
basename ${HOOK_FILE} | sed -e 's,\.hook$,,' >> hooker_TEST_dir/cycles.out
}
hook_depend_cycles() {
case $(basename ${HOOK_FILE} | sed -e 's,\.hook$,,' ) in
c)
echo d;
;;
d)
echo e;
;;
e)
echo c;
;;
f)
echo g;
;;
h)
echo h;
;;
esac
}
hook_after_cycles() {
case $(basename ${HOOK_FILE} | sed -e 's,\.hook$,,' ) in
a)
echo b
;;
esac
}
END
chmod +x cycles.common
for a in a b c d e f g h i ; do
ln -s ../cycles.common cycles/${a}.hook
done