The R Project SVN R

Rev

Rev 3609 | Rev 4577 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3609 Rev 4562
Line 1... Line 1...
1
#!/bin/sh
1
#!/bin/sh
2
 
2
 
3
# ${RHOME}/bin/check for checking installed add-on packages
3
# ${RHOME}/bin/check for checking installed add-on packages
-
 
4
 
4
USAGE_MSG="Usage: R CMD check [options] [-l lib] pkg_1 ... pkg_n"
5
USAGE_MSG="Usage: R CMD check [options] [-l lib] pkg_1 ... pkg_n"
5
VERSION="0.1-0"
6
VERSION="0.2-0"
-
 
7
 
6
OPTS=
8
OPTS=
7
PKGS=
9
PKGS=
-
 
10
CLEAN=false
8
DEBUG=false
11
DEBUG=false
-
 
12
REBUILD=true
-
 
13
START_DIR=`pwd`
9
lib=${RHOME}/library
14
lib=${RHOME}/library
10
 
15
 
11
while test -n "${1}"; do
16
while test -n "${1}"; do
12
  case ${1} in
17
  case ${1} in
13
    -h|--help|-\?)
18
    -h|--help|-\?)
14
      echo "${USAGE_MSG}"; exit 0 ;;
19
      echo "${USAGE_MSG}"; exit 0 ;;
15
    -V|--version)
20
    -V|--version)
16
      echo "${VERSION}"; exit 0 ;;
21
      echo "${VERSION}"; exit 0 ;;
-
 
22
    -c|--clean)
-
 
23
      CLEAN=true ;;
17
    --debug)
24
    --debug)
18
      DEBUG=true; OPTS="${OPTS} --debug" ;;
25
      DEBUG=true; OPTS="${OPTS} --debug" ;;
-
 
26
    --no-rebuild)
-
 
27
      REBUILD=false ;;
19
    -l)
28
    -l)
20
      lib=${2}; shift ;;
29
      lib=${2}; shift;
-
 
30
      RLIBS="${lib}:${RLIBS}";
-
 
31
      ;;
21
    *)
32
    *)
22
      PKGS="${PKGS} ${1}" ;;
33
      PKGS="${PKGS} ${1}" ;;
23
  esac
34
  esac
24
  shift
35
  shift
25
done
36
done
-
 
37
 
26
if ${DEBUG}; then set -x; fi
38
if ${DEBUG}; then set -x; fi
27
 
39
 
28
if test -z "${PKGS}"; then
40
if test -z "${PKGS}"; then
29
  echo "${USAGE_MSG}"
41
  echo "${USAGE_MSG}"
30
  exit 1
42
  exit 1
31
fi
43
fi
32
 
44
 
33
if test -d ${lib} -a -w ${lib}; then
45
if test -d ${lib}; then
34
  lib=`cd ${lib}; pwd`
46
  lib=`cd ${lib}; pwd`
35
else
47
else
36
  echo "ERROR: cannot write to or create directory \`${lib}'"
48
  echo "ERROR: library directory \`${lib}' does not exist"
37
  exit 2
49
  exit 2
38
fi
50
fi
39
 
51
 
40
for pkg in ${PKGS}; do
52
for pkg in ${PKGS}; do
-
 
53
  cd ${START_DIR}
-
 
54
  USE_MAN=false
-
 
55
 
41
  if test -d $pkg; then
56
  if ${REBUILD}; then
-
 
57
    if test -d ${pkg}/man -a -w ${lib}/`basename ${pkg}`; then
-
 
58
      USE_MAN=true
42
    cd ${pkg}
59
      cd ${pkg}
43
  else
60
      pkg=`basename ${pkg}`
44
    echo "WARNING: No subdirectory ${pkg} in "`pwd`' ... skipping'
61
      rm -rf ${lib}/${pkg}/R-ex
45
    break
62
    fi
46
  fi
63
  fi
47
  pkg=`basename ${pkg}`
-
 
-
 
64
 
48
  echo "Checking package \`${pkg}' ..."
65
  echo "Checking package \`${pkg}' ..."
49
 
66
 
50
  if test -d ${lib}/${pkg}; then
67
  if test \! -d ${lib}/${pkg}; then
51
    rm -rf ${lib}/${pkg}/R-ex
-
 
52
  else
-
 
53
    echo "WARNING: package \`${pkg} not installed ... skipping"
68
    echo "WARNING: package \`${pkg}' not installed ... skipping"
54
    break
69
    break
55
  fi
70
  fi
56
 
71
 
57
  if test -d man; then
72
  if ${USE_MAN}; then
58
    ${RHOME}/bin/build-help ${OPTS} --example ../${pkg} ${lib}
73
    ${RHOME}/bin/build-help ${OPTS} --example ../${pkg} ${lib}
-
 
74
    CHECK_DIR=check
59
  else
75
  else
60
    echo "WARNING: package \`${pkg} contains no examples ... skipping"
76
    CHECK_DIR=check-${pkg}
61
  fi
77
  fi
62
 
78
 
63
  test -d check || mkdir check
79
  test -d ${CHECK_DIR} || mkdir ${CHECK_DIR}
64
  cd check
80
  cd ${CHECK_DIR}
-
 
81
    
65
  echo " Massaging examples into \`${pkg}-Ex.R' ..."
82
  echo " Massaging examples into \`${pkg}-Ex.R' ..."
66
  ${RHOME}/bin/massage-Examples ${pkg} ${lib}/${pkg}/R-ex/*.R \
83
  ${RHOME}/bin/massage-Examples ${pkg} ${lib}/${pkg}/R-ex/*.R \
67
    > ${pkg}-Ex.R
84
    > ${pkg}-Ex.R
68
  echo " Running examples in package \`${pkg}' ..."
85
  echo " Running examples in package \`${pkg}' ..."
69
  ${RHOME}/bin/R --vanilla --vsize 6M < ${pkg}-Ex.R > ${pkg}-Ex.Rout
86
  RLIBS=${RLIBS} ${RHOME}/bin/R --vanilla < ${pkg}-Ex.R \
-
 
87
    > ${pkg}-Ex.Rout
70
  if test ${?} -eq 0; then
88
  if test ${?} -eq 0; then
71
    echo " OK"
89
    echo " OK"
72
  else
90
  else
73
    echo " ERROR"
91
    echo " ERROR" && exit 1
74
  fi
92
  fi
-
 
93
  if ${CLEAN}; then cd .. && rm -rf ${CHECK_DIR}; fi
75
 
94
 
76
done
95
done