From 8a4e6eb5bac58ce36c15caef35eef39fb67a1a2a Mon Sep 17 00:00:00 2001 From: Markus Fleschutz Date: Mon, 15 Feb 2021 16:54:38 +0100 Subject: [PATCH] Added clean-branch.ps1 --- Data/scripts.csv | 1 + README.md | 1 + Scripts/clean-branch.ps1 | 30 ++++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100755 Scripts/clean-branch.ps1 diff --git a/Data/scripts.csv b/Data/scripts.csv index d9a6c311..b413a39a 100644 --- a/Data/scripts.csv +++ b/Data/scripts.csv @@ -5,6 +5,7 @@ check-ipv6-address.ps1, checks the given IPv6 address for validity check-mac-address.ps1, checks the given MAC address for validity check-symlinks.ps1, checks every symlink in the given directory tree check-xml-file.ps1, checks the given XML file for validity +clean-branch.ps1, cleans the current Git branch (and submodules) from generated files clone-repos.ps1, clones well-known Git repositories close-calculator.ps1, closes the calculator program gracefully close-chrome.ps1, closes Google Chrome gracefully diff --git a/README.md b/README.md index b45c3b26..c90eb9c6 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ Table of Contents * [check-mac-address.ps1](Scripts/check-mac-address.ps1) - checks the given MAC address for validity * [check-symlinks.ps1](Scripts/check-symlinks.ps1) - checks every symlink in the given directory tree * [check-xml-file.ps1](Scripts/check-xml-file.ps1) - checks the given XML file for validity +* [clean-branch.ps1](Scripts/clean-branch.ps1) - cleans the current Git branch (and submodules) from generated files * [clone-repos.ps1](Scripts/clone-repos.ps1) - clones well-known Git repositories * [close-calculator.ps1](Scripts/close-calculator.ps1) - closes the calculator program gracefully * [close-chrome.ps1](Scripts/close-chrome.ps1) - closes Google Chrome gracefully diff --git a/Scripts/clean-branch.ps1 b/Scripts/clean-branch.ps1 new file mode 100755 index 00000000..998d5e5f --- /dev/null +++ b/Scripts/clean-branch.ps1 @@ -0,0 +1,30 @@ +#!/bin/powershell +<# +.SYNTAX ./clean-branch.ps1 +.DESCRIPTION cleans the current Git branch (and submodules) from generated files +.LINK https://github.com/fleschutz/PowerShell +.NOTES Author: Markus Fleschutz / License: CC0 +#> + +try { + & git --version +} catch { + write-error "ERROR: can't execute 'git' - make sure Git is installed and available" + exit 1 +} + +try { + & git clean --force -d -x + if ($lastExitCode -ne "0") { throw "'git clean' failed" } + + & git submodule foreach --recursive git clean --force -d -x + if ($lastExitCode -ne "0") { throw "'git clean' in submodules failed" } + + & git status + if ($lastExitCode -ne "0") { throw "'git status' failed" } + + exit 0 +} catch { + write-error "ERROR in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" + exit 1 +}