Last active
May 16, 2024 09:14
-
-
Save krisfoster/f327c7d861290eccb3f44a4efe78e114 to your computer and use it in GitHub Desktop.
clean-code.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# flags | |
INSTALL_DIR="" | |
TMP_EXT_DIR="" | |
TMP_USR_DIR="" | |
# | |
INSTALL_FROM_DIR=false | |
INSTALL_JAVA=false | |
INSTALL_JAVA_PRE=false | |
INSTALL_GRADLE=false | |
INSTALL_GRADLE_PRE=false | |
INSTALL_REMOTE=false | |
INSTALL_ORACLE_JAVA=false | |
function setup () { | |
# Create temp dirs | |
TMP_EXT_DIR=`mktemp -d -t ext-dir` || exit 1 | |
TMP_USR_DIR=`mktemp -d -t usr-dir` | |
if [ $? -ne 0 ]; then | |
rm -f $TMP_EXT_DIR | |
exit 1 | |
fi | |
echo "Created temp dirs: ${TMP_EXT_DIR}; ${TMP_USR_DIR}" | |
echo "Creating dir: ${TMP_USR_DIR}/User" | |
mkdir -p ${TMP_USR_DIR}/User | |
cat << EOF > ${TMP_USR_DIR}/User/settings.json | |
{ | |
"update.mode": "none", | |
"extensions.autoUpdate": false, | |
"extensions.autoCheckUpdates": false, | |
"netbeans.javaSupport.enabled": false, | |
"redhat.telemetry.enabled": false, | |
"oci.devops.showToolsPage": false, | |
"oci.devops.pushLocalSourcesToOciConfirmedPermanently": true, | |
"oci.devops.startBuildPipelineUsingCustomShapeConfirmedPermanently": true, | |
"java.trace.server": "verbose", | |
} | |
EOF | |
} | |
function install_extensions () { | |
echo "installing visxs from directory : ${INSTALL_DIR}" | |
for f in `ls -1 ${INSTALL_DIR}/*.vsix` | |
do | |
echo "Installing : ${f}" | |
code --extensions-dir="${TMP_EXT_DIR}" \ | |
--user-data-dir="${TMP_USR_DIR}" \ | |
--install-extension ${f} \ | |
--force | |
done | |
} | |
function install_oracle_java () { | |
echo "Installing Oracle Java..." | |
code --extensions-dir="${TMP_EXT_DIR}" \ | |
--user-data-dir="${TMP_USR_DIR}" \ | |
--install-extension Oracle.oracle-java | |
} | |
function install_ms_java () { | |
echo "Installing MS Java..." | |
code --extensions-dir="${TMP_EXT_DIR}" \ | |
--user-data-dir="${TMP_USR_DIR}" \ | |
--install-extension vscjava.vscode-java-pack | |
} | |
function install_ms_java_pre_release () { | |
echo "Installing MS Java (pre-release)..." | |
code --extensions-dir="${TMP_EXT_DIR}" \ | |
--user-data-dir="${TMP_USR_DIR}" \ | |
--install-extension vscjava.vscode-java-pack \ | |
--pre-release | |
} | |
function install_ms_gradle () { | |
echo "Installing MS Gradle..." | |
code --extensions-dir="${TMP_EXT_DIR}" \ | |
--user-data-dir="${TMP_USR_DIR}" \ | |
--install-extension vscjava.vscode-gradle | |
} | |
function install_ms_gradle_pre_release () { | |
echo "Installing MS Gradle (pre-release)..." | |
code --extensions-dir="${TMP_EXT_DIR}" \ | |
--user-data-dir="${TMP_USR_DIR}" \ | |
--install-extension vscjava.vscode-gradle \ | |
--pre-release | |
} | |
function install_remote () { | |
echo "Installing Remote Development Extension Pack..." | |
code --extensions-dir="${TMP_EXT_DIR}" \ | |
--user-data-dir="${TMP_USR_DIR}" \ | |
--install-extension ms-vscode-remote.vscode-remote-extensionpack | |
} | |
function print_help () { | |
echo "HELP: Creates a clean instance of VS Code, with new User and extensions directories." | |
echo "USAGE: clean-code.sh -i DIR -j" | |
echo "-i DIR : Install any visx extension files contained with the directory, DIR" | |
echo "-j : Install MS Java Extension Pack" | |
echo "-j : Install MS Java Extension Pack (PRE_RELEASE)" | |
echo "-g : Install MS Gradle Extension Pack" | |
echo "-G : Install MS Gradle Extension Pack (PRE_RELEASE)" | |
echo "-r : Install MS Remote Development Ext Pack" | |
echo "-o : Install Oracle Java" | |
} | |
while getopts 'hi:jJgGro' OPTION; do | |
case "$OPTION" in | |
h) | |
print_help | |
exit;; | |
i) | |
INSTALL_DIR=$OPTARG | |
INSTALL_FROM_DIR=true;; | |
j) | |
INSTALL_JAVA=true;; | |
J) | |
INSTALL_JAVA_PRE=true;; | |
g) | |
INSTALL_GRADLE=true;; | |
G) | |
INSTALL_GRADLE_PRE=true;; | |
r) | |
INSTALL_REMOTE=true;; | |
o) | |
INSTALL_ORACLE_JAVA=true;; | |
esac | |
done | |
shift "$(($OPTIND -1))" | |
setup | |
if [ "$INSTALL_FROM_DIR" = true ] ; then | |
install_extensions | |
fi | |
if [ "$INSTALL_JAVA" = true ] ; then | |
install_ms_java | |
fi | |
if [ "$INSTALL_JAVA_PRE" = true ] ; then | |
install_ms_java_pre_release | |
fi | |
if [ "$INSTALL_GRADLE" = true ] ; then | |
install_ms_gradle | |
fi | |
if [ "$INSTALL_GRADLE_PRE" = true ] ; then | |
install_ms_gradle_pre_release | |
fi | |
if [ "$INSTALL_REMOTE" = true ] ; then | |
install_remote | |
fi | |
if [ "$INSTALL_ORACLE_JAVA" = true ] ; then | |
install_oracle_java | |
fi | |
# Run VS Code | |
code --extensions-dir="${TMP_EXT_DIR}" --user-data-dir="${TMP_USR_DIR}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment