sh 用于将多个IntelliJ IDEA(或其他JetBrains IDE)语法颜色主题组合到单个jar文件中的Bash脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 用于将多个IntelliJ IDEA(或其他JetBrains IDE)语法颜色主题组合到单个jar文件中的Bash脚本相关的知识,希望对你有一定的参考价值。

#!/bin/bash

urldecode() {
    # urldecode <string>

    local url_encoded="${1//+/ }"
    printf '%b' "${url_encoded//%/\\x}"
}

touch "IntelliJ IDEA Global Settings"

l=(*.jar)
for f in "${l[@]}"; do
	n=${f%.jar}
	echo "Adding $(urldecode "$n")"
	unzip -qq -o "$f" "colors/*"
	tmp="$(unzip -qq -c "$f" "options/colors.scheme.xml")"
  tmp="$(grep -Ev '(<\?xml version|<application|application>)' <<< "$tmp")"
	tmp="$(gsed -E -e 's/^[[:space:]]+//' -e 's/[[:space:]]+/ /g' <<< "$tmp")"
	tmp="$(tr -d '\n' <<< "$tmp")"
	opt="$opt$tmp\n"
done

opt="$(sort <<< "$opt" | uniq)"
opt="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<application>\n$opt"
opt="$opt</application>\n"
opt="$(gsed -E -e "s/(<component[^>]*>|<[^>]*component>)/\n\t\1/g" -e "s/(<option[^>]*>|<global[^>]*>)/\n\t\t\1/g" <<< "$opt")"

mkdir -p "options"
printf "$opt" > options/colors.scheme.xml

echo "Compressing..."
zip -q -r Colors.jar "colors" "options" "IntelliJ IDEA Global Settings"

rm -rf "IntelliJ IDEA Global Settings" "colors" "options"

echo "Done!"

以上是关于sh 用于将多个IntelliJ IDEA(或其他JetBrains IDE)语法颜色主题组合到单个jar文件中的Bash脚本的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse应该向IntelliJ IDEA学习的5种优秀特性

IntelliJ IDEA添加过滤文件或目录

IntelliJ idea 多个maven模块同时运行,怎么操作

IntelliJ IDEA入门教程之一

Intellij IDEA同时打开多个项目

sh Ubuntu上的IntelliJ IDEA中的键盘锁定