Skip to content

Instantly share code, notes, and snippets.

@krisfoster
Last active May 16, 2024 09:14
Show Gist options
  • Save krisfoster/f327c7d861290eccb3f44a4efe78e114 to your computer and use it in GitHub Desktop.
Save krisfoster/f327c7d861290eccb3f44a4efe78e114 to your computer and use it in GitHub Desktop.
clean-code.sh
#!/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