env.sh 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. TOOL_VER=${TOOL_VER:-latest}
  2. DRYRUN=${DRYRUN:-0}
  3. NSDK_ROOT=${NSDK_ROOT:-}
  4. NSDK_VER=${NSDK_VER-}
  5. LOGROOT=${LOGROOT:-gen}
  6. DEVTOOL_ENV=${DEVTOOL_ENV:-/home/share/devtools/env.sh}
  7. SCRIPTDIR=$(dirname $(readlink -f $BASH_SOURCE))
  8. SCRIPTDIR=$(readlink -f $SCRIPTDIR)
  9. if [ "x$NSDK_ROOT" == "x" ] ; then
  10. NSDK_ROOT=$(readlink -f $SCRIPTDIR/../../..)
  11. fi
  12. function pushd {
  13. command pushd "$@" > /dev/null
  14. }
  15. function popd {
  16. command popd "$@" > /dev/null
  17. }
  18. function env_setup {
  19. if [ -f $DEVTOOL_ENV ] ; then
  20. TOOL_VER=$TOOL_VER source $DEVTOOL_ENV
  21. else
  22. pushd $NSDK_ROOT
  23. source setup.sh
  24. popd
  25. fi
  26. }
  27. function describe_repo {
  28. local repodir=${1}
  29. local repodesc=${2:-repogit.txt}
  30. repodir=$(readlink -f $repodir)
  31. if [ -d ${repodir}/.git ] ; then
  32. pushd ${repodir}
  33. echo "Git Repo $repodir Information:" >> ${repodesc}
  34. gitver=$(git describe --tags --always --abbrev=10 --dirty)
  35. gitslog=$(git log --oneline -1)
  36. echo "git describe version: $gitver" >> ${repodesc}
  37. echo "git shortlog: $gitslog" >> ${repodesc}
  38. git submodule >> ${repodesc}
  39. popd
  40. else
  41. echo "$repodir not a git repo" >> ${repodesc}
  42. fi
  43. }
  44. function describe_build {
  45. logfile=$1
  46. echo -n "Build Date: " > $logfile
  47. date >> $logfile
  48. echo "Nuclei GNU Toolchain Version:" >> $logfile
  49. riscv-nuclei-elf-gcc -v >> $logfile 2>&1
  50. riscv64-unknown-elf-gcc -v >> $logfile 2>&1
  51. }
  52. function describe_sdk {
  53. logfile=$1
  54. echo -n "Nuclei SDK(npk) " >> $logfile
  55. cat $NSDK_ROOT/npk.yml | grep version 2>&1 >> $logfile
  56. }
  57. function get_sdk_ver {
  58. local repodir=${1}
  59. repodir=$(readlink -f $repodir)
  60. if [ -d ${repodir}/.git ] ; then
  61. pushd ${repodir} > /dev/null
  62. gitver=$(git describe --tags --always --abbrev=10 --dirty)
  63. popd > /dev/null
  64. echo $gitver
  65. else
  66. cat $NSDK_ROOT/npk.yml | grep version 2>&1
  67. fi
  68. }
  69. if [ "x$NSDK_VER" == "x" ] ; then
  70. NSDK_VER=$(get_sdk_ver $NSDK_ROOT)
  71. fi
  72. LOGROOT=$(readlink -f $LOGROOT)
  73. LOGDIR=$(readlink -f $LOGROOT)/$NSDK_VER
  74. LOGZIPNAME=$NSDK_VER
  75. LOGZIP=${LOGZIPNAME}.zip
  76. function gen_logdir {
  77. local logdirname=${1:-}
  78. LOGDIR=$LOGDIR/$logdirname
  79. LOGZIPNAME=${logdirname}_${LOGZIPNAME}_$(date -u +"%Y%m%dT%H%M%S")
  80. LOGZIP=${LOGZIPNAME}.zip
  81. if [ -d $LOGDIR ] ; then
  82. echo "WARNING: Removed existing $LOGDIR"
  83. rm -rf $LOGDIR
  84. fi
  85. if [ ! -d $LOGDIR ] ; then
  86. mkdir -p $LOGDIR
  87. fi
  88. echo "INFO: Creating log directory in $LOGDIR"
  89. }
  90. function zip_logdir {
  91. local logdir=${1:-$LOGDIR}
  92. local logzip=${2:-$LOGZIP}
  93. logzip=$(readlink -f $logzip)
  94. logdirname=$logdir/..
  95. logdirbase=$(basename $logdir)
  96. pushd $logdirname
  97. zip -r $logzip $logdirbase
  98. popd
  99. echo "INFO: Generate zip file $logzip using $logdir"
  100. echo "Copy to your local machine using command below"
  101. echo "scp $(whoami)@$(hostname):$logzip ."
  102. }
  103. function describe_env {
  104. describe_build $LOGDIR/build.txt
  105. describe_sdk $LOGDIR/build.txt
  106. describe_repo $NSDK_ROOT $LOGDIR/build.txt
  107. }
  108. NSDK_RUNNER_PY="$NSDK_ROOT/tools/scripts/nsdk_cli/nsdk_runner.py"
  109. NSDK_BENCH_PY="$NSDK_ROOT/tools/scripts/nsdk_cli/nsdk_bench.py"
  110. NSDK_REPORT_PY="$NSDK_ROOT/tools/scripts/nsdk_cli/nsdk_report.py"
  111. env_setup
  112. echo "Nuclei SDK location: $NSDK_ROOT, SDK Version $NSDK_VER, Tool version: $TOOL_VER"