Ai
2 Star 0 Fork 0

mirrors_sourcegraph/example-index-jar-files

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
index-jar-files.sh 1.26 KB
一键复制 编辑 原始数据 按行查看 历史
Ólafur Páll Geirsson 提交于 2021-01-28 19:26 +08:00 . First commit.
#!/usr/bin/env bash
set -eu
WORKING_DIRECTORY="$PWD"
SOURCES_OUTPUT_DIRECTORY="$PWD/generated/sources"
JAR_OUTPUT_DIRECTORY="$PWD/generated/jars"
mkdir -p "$JAR_OUTPUT_DIRECTORY"
mkdir -p "$SOURCES_OUTPUT_DIRECTORY"
function extract-sources-jar() {
FILE="$1"
# Change the working directory to extract the files to the right output
# directory. The jar command supports a -C flag that should support this
# use-case and avoid the need to change the working directory, but I
# couldn't get it to work.
echo "$FILE"
cd "$SOURCES_OUTPUT_DIRECTORY"
jar xf "$FILE"
cd "$WORKING_DIRECTORY"
}
function decompile-jar() {
FILE="$1"
printf "$FILE "
for C in $(jar tf "$FILE"); do
if [[ "$C" == *.class ]]; then
CLASS_NAME="$(echo ${C%.class} | tr / .)"
OUTPUT_FILE_NAME="$JAR_OUTPUT_DIRECTORY/$(echo ${C%.class}.java)"
mkdir -p "$(dirname "$OUTPUT_FILE_NAME")"
javap -cp "$FILE" "$CLASS_NAME" | tail -n +2 > "$OUTPUT_FILE_NAME" || true
printf .
fi
done
echo
}
for RELATIVE_FILE_NAME in $(git ls-files); do
FILE="$WORKING_DIRECTORY/$RELATIVE_FILE_NAME"
if [[ "$FILE" == *-sources.jar ]]; then
extract-sources-jar "$FILE"
elif [[ "$FILE" == *.jar ]]; then
decompile-jar "$FILE"
echo
fi
done
echo "=========="
date
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mirrors_sourcegraph/example-index-jar-files.git
git@gitee.com:mirrors_sourcegraph/example-index-jar-files.git
mirrors_sourcegraph
example-index-jar-files
example-index-jar-files
main

搜索帮助