I believe this was only used with BokChoy and just got missed in the various cleanup. Removing it now since we're not using it.
50 lines
2.2 KiB
Bash
Executable File
50 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
############################################################################
|
|
#
|
|
# find-dead-code.sh
|
|
#
|
|
# This script analyzes the edx-platform for dead code instances using
|
|
# vulture, a static analysis tool that ranks potential unused code using
|
|
# the following confidence scores:
|
|
# - 100% = completely unreachable code: code that follows return, continue
|
|
# or raise statements, or code that cannot logically be run, i.e.
|
|
# a condition that can never be True
|
|
# - 90% = unused imports within a file
|
|
# - 60% = unused code: code that has no reference in the code base, aside
|
|
# from definition
|
|
#
|
|
# This script will output a list of dead-code instances with their
|
|
# confidence scores, in descending order of the size of the instance
|
|
# (in lines). This in turn can be used to clean up the edx-platform.
|
|
# However, you shouldn't automatically delete code reported back from
|
|
# vulture. It can report false positives. Often it's not the case that
|
|
# code is truly dead, but has been referenced incorrectly (spelling)
|
|
# elsewhere in the code base, most likely in a refactor. Another example
|
|
# of code that will be interpreted as dead by vulture is anything that
|
|
# is used in a template (which is not considered in the analysis).
|
|
#
|
|
# Therefore, the results of this script should be used as a jumping off
|
|
# point for investigating potential dead code removal
|
|
#
|
|
############################################################################
|
|
|
|
OUTPUT_DIR="reports/vulture"
|
|
mkdir -p "$OUTPUT_DIR"
|
|
OUTPUT_FILE="${OUTPUT_DIR}/vulture-report.txt"
|
|
echo '' > "$OUTPUT_FILE"
|
|
# exclude test code from analysis, as it isn't explicitly called by other
|
|
# code. Additionally, application code that is only called by tests
|
|
# should be considered dead
|
|
EXCLUSIONS='/test,/acceptance,cms/envs,lms/envs,migrations/,signals.py'
|
|
MIN_CONFIDENCE=90
|
|
# paths to the code on which to run the analysis
|
|
CODE_PATHS=('cms' 'common' 'lms' 'openedx')
|
|
WHITELIST_PATH="$(dirname "${BASH_SOURCE[0]}")/whitelist.py"
|
|
echo "Checking for dead code in the following paths: ${CODE_PATHS[*]}"
|
|
echo "Results can be found in $OUTPUT_FILE"
|
|
vulture "${CODE_PATHS[@]}" "$WHITELIST_PATH" --exclude "$EXCLUSIONS" \
|
|
--min-confidence "$MIN_CONFIDENCE" \
|
|
--sort-by-size |tac > "$OUTPUT_FILE"
|