Add clean.cmd, clean.ps1 and clean.sh (#11154)

- #10463
This commit is contained in:
Doug Bunting 2019-06-12 20:53:17 -07:00 committed by GitHub
parent 79326220b4
commit 852680f618
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 82 additions and 0 deletions

3
clean.cmd Normal file
View File

@ -0,0 +1,3 @@
@ECHO OFF
SETLOCAL
PowerShell -NoProfile -NoLogo -ExecutionPolicy ByPass -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = ''; try { & '%~dp0clean.ps1' %*; exit $LASTEXITCODE } catch { write-host $_; exit 1 }"

41
clean.ps1 Normal file
View File

@ -0,0 +1,41 @@
#requires -version 5
<#
.SYNOPSIS
Clean this repository.
.DESCRIPTION
This script cleans this repository interactively, leaving downloaded infrastructure untouched.
Clean operation is interactive to avoid losing new but unstaged files. Press 'c' then [Enter]
to perform the proposed deletions.
.EXAMPLE
Perform default clean operation.
clean.ps1
.EXAMPLE
Clean everything but downloaded infrastructure and VS / VS Code folders.
clean.ps1 -e .vs/ -e .vscode/
#>
[CmdletBinding(PositionalBinding = $false)]
param(
# Other lifecycle targets
[switch]$Help, # Show help
# Capture the rest
[Parameter(ValueFromRemainingArguments = $true)]
[string[]]$GitArguments
)
Set-StrictMode -Version 2
$ErrorActionPreference = 'Stop'
if ($Help) {
Get-Help $PSCommandPath
exit 0
}
git clean -dix -e .dotnet/ -e .tools/ -e src/SignalR/clients/ts/FunctionalTests/node_modules/ @GitArguments

38
clean.sh Executable file
View File

@ -0,0 +1,38 @@
#!/usr/bin/env bash
set -euo pipefail
#
# Functions
#
__usage() {
echo "Usage: $(basename "${BASH_SOURCE[0]}") <Arguments>
Arguments:
<Arguments>... Arguments passed to the 'git' command. Any number of arguments allowed.
Description:
This script cleans the repository interactively, leaving downloaded infrastructure untouched.
Clean operation is interactive to avoid losing new but unstaged files. Press 'c' then [Enter]
to perform the proposed deletions.
"
}
git_args=()
while [[ $# -gt 0 ]]; do
case $1 in
-\?|-h|--help)
__usage
exit 0
;;
*)
git_args[${#git_args[*]}]="$1"
;;
esac
shift
done
# This incantation avoids unbound variable issues if git_args is empty
# https://stackoverflow.com/questions/7577052/bash-empty-array-expansion-with-set-u
git clean -dix -e .dotnet/ -e .tools/ ${git_args[@]+"${git_args[@]}"}