blob: 9861a4cfc135d45e5c20419a728a319a5eb0b3af (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#!/bin/bash
readonly SCRIPT="$(readlink -f "${BASH_SOURCE[0]?}")"
readonly SCRIPT_FILENAME="${BASH_SOURCE[0]##*/}"
readonly SCRIPT_DIR="${SCRIPT%/*}"
readonly PRJROOT="${SCRIPT_DIR%/*}"
extra_args=()
SCRIPT_NAME="${SCRIPT_FILENAME%.py}"
case "${SCRIPT_NAME}" in
*[-_.]others)
export ROVERLAY_TARGET_TYPE="foreign"
SCRIPT_NAME="${SCRIPT_NAME%[-_.]*}"
;;
*)
: ${ROVERLAY_TARGET_TYPE:=gentoo}
SCRIPT_NAME="${SCRIPT_NAME}"
;;
esac
case "${SCRIPT_NAME}" in
'roverlay') SCRIPT_NAME="main" ;;
esac
readonly SCRIPT_NAME
if [[ "${ROVERLAY_TARGET_TYPE}" == "foreign" ]]; then
case "${SCRIPT_NAME#roverlay[_-]}" in
'setup')
extra_args+=( '--target-type' 'foreign' )
;;
'main'|'query'[-_]'config'|'status')
extra_args+=( '-c' "${PRJROOT}/R-overlay.conf.others" )
;;
esac
fi
readonly PYSCRIPT="${SCRIPT_DIR}/py/${SCRIPT_NAME}.py"
[ ${#extra_args[@]} -eq 0 ] || set -- "${extra_args[@]}" "$@"
export ROVERLAY_PRJROOT="${PRJROOT}"
export PYTHONPATH="${PRJROOT}${PYTHONPATH:+:}${PYTHONPATH}"
cd "${PRJROOT}" || exit
if [[ -z "${PYTHON-}" ]] && [[ -x "${PYSCRIPT}" ]]; then
exec ${PYSCRIPT} "$@"
elif [[ -f "${PYSCRIPT}" ]]; then
exec ${PYTHON:-python} ${PYSCRIPT} "$@"
else
echo "script not found: ${PYSCRIPT}" 1>&2
exit 9
fi
|