|
# Title : Visual Studio Code Workspaces Storage Filter Script |
|
# Summary : List & filter workspace cache folder; use for cleanup |
|
# Created-at : Saturday, October 09, 2021 |
|
# Last-Modified : Saturday, October 09, 2021 |
|
# Repository : |
|
# Authors : Alex A. Davronov <[email protected]> (2021-) |
|
# Version : 1.0.0 |
|
# Description : TODO: add description |
|
# Usage : |
|
# # list cache folder |
|
# $ code.workspaces.cache.filter |
|
# |
|
# # list vscode project cache folders |
|
# $ code.workspaces.cache.filter vscode |
|
# |
|
# # export them into an $arr variable |
|
# $ code.workspaces.cache.filter vscode arr |
|
# Install : Install this into ~/.bashrc or ~/.zshrc |
|
|
|
# Visual Studio Code Workspaces Storage Filter Script |
|
# Copyright (C) 2021- Alex A. Davronov <[email protected]> |
|
# |
|
# Redistribution and (re)use of this Source or Binary code produced from such |
|
# regardless of the carrier with or without modification is permitted free of |
|
# charge (unless explicitly stated otherwise herewith) provided that |
|
# the following conditions are met: |
|
# |
|
# 1. Redistributions of the Source code must retain the above |
|
# Copyright notice, this List of conditions, and the following |
|
# Disclaimer. |
|
# |
|
# 2. Redistributions of the Binary code must reproduce the above |
|
# Copyright notice, this List of conditions, and the following |
|
# Disclaimer visible prominently and clearly to the user's eyes |
|
# within documentation provided with such distribution or at the |
|
# user request immediately. |
|
# |
|
# 3. Failure to meet the List of condition set hereby terminates |
|
# unconditionally your rights and permissions granted by the above |
|
# Copyright notice and makes you eligible for prosecution, lawsuit or any |
|
# legal actions or proceedings under appropritate law of a country of your |
|
# or licensor's residence or International law if applicable. |
|
# |
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
|
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
|
# DEALINGS IN THE SOFTWARE. |
|
|
|
|
|
#---------------------------------------------------code.workspaces.cache.filter |
|
# See https://github.com/microsoft/vscode/issues/134532 |
|
# @param name - the project name to use as a filter |
|
# @param arrayName - an array name to store paths to |
|
code.workspaces.cache.filter(){ |
|
local name="$1"; |
|
local arrayName="$2"; |
|
local workspacesStoragePath="$HOME/.config/Code/User/workspaceStorage"; |
|
local ll="ls -ha -l -c --color --group-directories-first"; |
|
if [[ "$name" ]]; |
|
then |
|
local ___arr=($(grep -lF "$name" $workspacesStoragePath/*/*.json)); |
|
[[ "$arrayName" ]] && { |
|
eval "$arrayName=("${___arr[@]}")"; |
|
return 0; |
|
}; |
|
for f in "${___arr[@]}"; |
|
do |
|
ll -d $(dirname $f); |
|
done; |
|
else |
|
# List all project's *.json files |
|
ll $workspacesStoragePath/*/*.json |
|
fi |
|
} |