diff options
author | Tudor Florea <tudor.florea@enea.com> | 2014-10-16 03:05:19 +0200 |
---|---|---|
committer | Tudor Florea <tudor.florea@enea.com> | 2014-10-16 03:05:19 +0200 |
commit | c527fd1f14c27855a37f2e8ac5346ce8d940ced2 (patch) | |
tree | bb002c1fdf011c41dbd2f0927bed23ecb5f83c97 /scripts/contrib/documentation-audit.sh | |
download | poky-c527fd1f14c27855a37f2e8ac5346ce8d940ced2.tar.gz |
initial commit for Enea Linux 4.0-140929daisy-140929
Migrated from the internal git server on the daisy-enea-point-release branch
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Diffstat (limited to 'scripts/contrib/documentation-audit.sh')
-rwxr-xr-x | scripts/contrib/documentation-audit.sh | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/scripts/contrib/documentation-audit.sh b/scripts/contrib/documentation-audit.sh new file mode 100755 index 0000000000..2144aac936 --- /dev/null +++ b/scripts/contrib/documentation-audit.sh | |||
@@ -0,0 +1,94 @@ | |||
1 | #!/bin/bash | ||
2 | # | ||
3 | # Perform an audit of which packages provide documentation and which | ||
4 | # are missing -doc packages. | ||
5 | # | ||
6 | # Setup requirements: be sure to be building for MACHINE=qemux86. Run | ||
7 | # this script after source'ing the build environment script, so you're | ||
8 | # running it from build/ directory. | ||
9 | # | ||
10 | # Maintainer: Scott Garman <scott.a.garman@intel.com> | ||
11 | |||
12 | REPORT_DOC_SIMPLE="documentation_exists.txt" | ||
13 | REPORT_DOC_DETAIL="documentation_exists_detail.txt" | ||
14 | REPORT_MISSING_SIMPLE="documentation_missing.txt" | ||
15 | REPORT_MISSING_DETAIL="documentation_missing_detail.txt" | ||
16 | REPORT_BUILD_ERRORS="build_errors.txt" | ||
17 | |||
18 | rm -rf $REPORT_DOC_SIMPLE $REPORT_DOC_DETAIL $REPORT_MISSING_SIMPLE $REPORT_MISSING_DETAIL | ||
19 | |||
20 | BITBAKE=`which bitbake` | ||
21 | if [ -z "$BITBAKE" ]; then | ||
22 | echo "Error: bitbake command not found." | ||
23 | echo "Did you forget to source the build environment script?" | ||
24 | exit 1 | ||
25 | fi | ||
26 | |||
27 | echo "REMINDER: you need to build for MACHINE=qemux86 or you won't get useful results" | ||
28 | echo "REMINDER: you need to set LICENSE_FLAGS_WHITELIST appropriately in local.conf or " | ||
29 | echo " you'll get false positives. For example, LICENSE_FLAGS_WHITELIST = \"Commercial\"" | ||
30 | |||
31 | for pkg in `bitbake -s | awk '{ print \$1 }'`; do | ||
32 | if [[ "$pkg" == "Loading" || "$pkg" == "Loaded" || | ||
33 | "$pkg" == "Recipe" || | ||
34 | "$pkg" == "Parsing" || "$pkg" == "Package" || | ||
35 | "$pkg" == "NOTE:" || "$pkg" == "WARNING:" || | ||
36 | "$pkg" == "done." || "$pkg" == "===========" ]] | ||
37 | then | ||
38 | # Skip initial bitbake output | ||
39 | continue | ||
40 | fi | ||
41 | if [[ "$pkg" =~ -native$ || "$pkg" =~ -nativesdk$ || | ||
42 | "$pkg" =~ -cross-canadian ]]; then | ||
43 | # Skip native/nativesdk/cross-canadian recipes | ||
44 | continue | ||
45 | fi | ||
46 | if [[ "$pkg" =~ ^meta- || "$pkg" =~ ^packagegroup- || "$pkg" =~ -image ]]; then | ||
47 | # Skip meta, task and image recipes | ||
48 | continue | ||
49 | fi | ||
50 | if [[ "$pkg" =~ ^glibc- || "$pkg" =~ ^libiconv$ || | ||
51 | "$pkg" =~ -toolchain$ || "$pkg" =~ ^package-index$ || | ||
52 | "$pkg" =~ ^linux- || "$pkg" =~ ^adt-installer$ || | ||
53 | "$pkg" =~ ^eds-tools$ || "$pkg" =~ ^external-python-tarball$ || | ||
54 | "$pkg" =~ ^qt4-embedded$ || "$pkg" =~ ^qt-mobility ]]; then | ||
55 | # Skip glibc, libiconv, -toolchain, and other recipes known | ||
56 | # to cause build conflicts or trigger false positives. | ||
57 | continue | ||
58 | fi | ||
59 | |||
60 | echo "Building package $pkg..." | ||
61 | bitbake $pkg > /dev/null | ||
62 | if [ $? -ne 0 ]; then | ||
63 | echo "There was an error building package $pkg" >> "$REPORT_MISSING_DETAIL" | ||
64 | echo "$pkg" >> $REPORT_BUILD_ERRORS | ||
65 | |||
66 | # Do not skip the remaining tests, as sometimes the | ||
67 | # exit status is 1 due to QA errors, and we can still | ||
68 | # perform the -doc checks. | ||
69 | fi | ||
70 | |||
71 | echo "$pkg built successfully, checking for a documentation package..." | ||
72 | WORKDIR=`bitbake -e $pkg | grep ^WORKDIR | awk -F '=' '{ print \$2 }' | awk -F '"' '{ print \$2 }'` | ||
73 | FIND_DOC_PKG=`find $WORKDIR/packages-split/*-doc -maxdepth 0 -type d` | ||
74 | if [ -z "$FIND_DOC_PKG" ]; then | ||
75 | # No -doc package was generated: | ||
76 | echo "No -doc package: $pkg" >> "$REPORT_MISSING_DETAIL" | ||
77 | echo "$pkg" >> $REPORT_MISSING_SIMPLE | ||
78 | continue | ||
79 | fi | ||
80 | |||
81 | FIND_DOC_FILES=`find $FIND_DOC_PKG -type f` | ||
82 | if [ -z "$FIND_DOC_FILES" ]; then | ||
83 | # No files shipped with the -doc package: | ||
84 | echo "No files shipped with the -doc package: $pkg" >> "$REPORT_MISSING_DETAIL" | ||
85 | echo "$pkg" >> $REPORT_MISSING_SIMPLE | ||
86 | continue | ||
87 | fi | ||
88 | |||
89 | echo "Documentation shipped with $pkg:" >> "$REPORT_DOC_DETAIL" | ||
90 | echo "$FIND_DOC_FILES" >> "$REPORT_DOC_DETAIL" | ||
91 | echo "" >> "$REPORT_DOC_DETAIL" | ||
92 | |||
93 | echo "$pkg" >> "$REPORT_DOC_SIMPLE" | ||
94 | done | ||