11#! /bin/bash
22set -e
33
4- if [ " $# " -ne 1 ]; then
5- echo " You must provide a path to the offline PyPI mirror web folder" >> 2;
6- exit 1;
7- fi ;
8-
9- export AURA_MIRROR_PATH=$1 ;
104export AURA_ALL_MODULE_IMPORTS=true;
115export PYTHONWARNINGS=ignore;
12- export TEMPDIR=$( dirname $( mktemp -u) )
6+ export OUTDIR=${AURA_SCAN_DIR:= aura_mirror_scan}
7+
8+
9+ if [[ -z " ${AURA_MIRROR_PATH} " ]]; then
10+ echo " You must set the AURA_MIRROR_PATH env variable!" >> 2;
11+ exit 1
12+ fi ;
13+
14+
15+ # Create directory structure
16+ [ -d $OUTDIR ] || mkdir $OUTDIR
17+ [ -d $OUTDIR /package_errors ] || mkdir -p $OUTDIR /package_errors
18+ [ -d $OUTDIR /package_results ] || mkdir -p $OUTDIR /package_results
1319
1420
1521if [ ! -d " ${AURA_MIRROR_PATH} /json" ]; then
1622 echo " JSON directory not found at ${AURA_MIRROR_PATH} . You probably have not provided a correct path to the web mirror directory" >> 2;
1723 exit 1;
1824fi
1925
20- if [ ! -f " aura_mirror_scan/package_cache" ]; then
21- ls $AURA_MIRROR_PATH /json > aura_mirror_scan/package_cache;
26+ if [ ! -f " $OUTDIR /package_cache" ]; then
27+ if [ -f $AURA_MIRROR_PATH /pypi_package_list.txt]; then
28+ cp $AURA_MIRROR_PATH /pypi_package_list.txt $OUTDIR /package_cache;
29+ else
30+ ls $AURA_MIRROR_PATH /json > $OUTDIR /package_cache;
2231fi
2332
2433
25- PKGS=$( cat aura_mirror_scan /package_cache)
34+ PKGS=$( cat $OUTDIR /package_cache)
2635
2736scan () {
28- AURA_LOG_LEVEL=" ERROR" AURA_NO_PROGRESS=true aura scan -f json mirror://$1 -v 1> >( tee -a " aura_mirror_scan/$1 .results.json" | jq .) 2> >( tee -a aura_mirror_scan/$1 .errors.log >&2 )
37+ ERROR_FILE=$OUTDIR /package_errors/$1 .errors.log
38+ RESULTS_FILE=$OUTDIR /package_results/$1 .results.json
39+
40+ AURA_LOG_LEVEL=" ERROR" AURA_NO_PROGRESS=true aura scan -f json mirror://$1 -v 1> >( tee -a $RESULTS_FILE | jq .) 2> >( tee -a $ERROR_FILE >&2 )
2941 if [ $? -ne 0 ]; then
30- echo $1 >> aura_mirror_scan /failed_packages.log
42+ echo $1 >> $OUTDIR /failed_packages.log
3143 else
32- echo $1 >> aura_mirror_scan/processed_packages.log
44+ echo $1 >> $OUTDIR /processed_packages.log
45+ fi
46+
47+ if [ -s $RESULTS_FILE ]; then
48+ echo " Removing empty $RESULTS_FILE "
49+ rm $RESULTS_FILE
3350 fi
3451
35- if [ -s aura_mirror_scan/$1 .errors.log ]; then
36- rm aura_mirror_scan/$1 .errors.log
52+ if [ -s $ERROR_FILE ]; then
53+ echo " Removing empty $ERROR_FILE "
54+ rm $ERROR_FILE
3755 fi
3856
3957}
@@ -42,4 +60,4 @@ export -f scan
4260
4361echo " Starting Aura scan"
4462
45- echo $PKGS | tr ' \r' ' \n' | parallel --memfree 5G -j30 --progress --resume --timeout 1200 --joblog ${TEMPDIR} /aura_pypi_scan_joblog --max-args 1 scan
63+ echo $PKGS | tr ' \r' ' \n' | parallel --memfree 5G -j30 --progress --resume-failed --timeout 1200 --joblog $OUTDIR /joblog --max-args 1 scan
0 commit comments