Feature: Added checkExist. And updated logging
**checkExist:** This is a check if there is a folder with the name of "Chrome - *" and deletes it if it is enabled. By Default it is disabled. **Logging:** Changed the format of the logs, by adding 4 different categories. Info, Debug, Error and Warn.
This commit is contained in:
parent
8dbd6d8d16
commit
55863336f0
4 changed files with 44 additions and 20 deletions
|
@ -18,14 +18,35 @@ function Log-Message {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Log the start of the script
|
# Log the start of the script
|
||||||
Log-Message "Script initiation: Chrome Downloader"
|
Log-Message "Debug: Script started"
|
||||||
|
|
||||||
# Check if both options are disabled and log a message
|
# Check if both options are disabled and log a message
|
||||||
if (-not $config.options.enableRegularVersion -and -not $config.options.enableForcedVersion) {
|
if (-not $config.options.enableRegularVersion -and -not $config.options.enableForcedVersion) {
|
||||||
Log-Message "Configuration error: Both Regular and Forced versions are disabled. Please enable at least one option to proceed."
|
Log-Message "Warn: Both Regular and Forced versions are disabled. Please enable at least one option to proceed."
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($config.options.checkExist) {
|
||||||
|
$testPath = "$PSScriptRoot\Chrome - *"
|
||||||
|
|
||||||
|
# Store subfolders before deletion
|
||||||
|
$subfolders = @()
|
||||||
|
|
||||||
|
if (Test-Path $testPath) {
|
||||||
|
$subfolders = Get-ChildItem -Path $testPath -Directory | ForEach-Object { $_.FullName }
|
||||||
|
|
||||||
|
# Remove the folders
|
||||||
|
Remove-Item $testPath -Recurse -Force
|
||||||
|
}
|
||||||
|
|
||||||
|
# Output the subfolders
|
||||||
|
foreach ($subfolder in $subfolders) {
|
||||||
|
Log-Message "Info: The subfolder '$subfolder\' has been deleted."
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Define URLs
|
# Define URLs
|
||||||
$url1 = "https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi"
|
$url1 = "https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi"
|
||||||
$url2 = "https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi"
|
$url2 = "https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise.msi"
|
||||||
|
@ -47,7 +68,7 @@ if ($config.options.enableRegularVersion) {
|
||||||
if (-not (Test-Path $filesFolder)) {
|
if (-not (Test-Path $filesFolder)) {
|
||||||
try {
|
try {
|
||||||
New-Item -Path $filesFolder -ItemType Directory -ErrorAction Stop
|
New-Item -Path $filesFolder -ItemType Directory -ErrorAction Stop
|
||||||
Log-Message "Directory creation: 'Chrome - VERSION' and 'Files' folder successfully created in $PSScriptRoot"
|
Log-Message "Info: Directory creation, 'Chrome - VERSION' and 'Files' folder successfully created in $PSScriptRoot"
|
||||||
} catch {
|
} catch {
|
||||||
Log-Message "Error: Directory creation failed - $_"
|
Log-Message "Error: Directory creation failed - $_"
|
||||||
}
|
}
|
||||||
|
@ -56,7 +77,7 @@ if ($config.options.enableRegularVersion) {
|
||||||
# Copy items from source folder to destination folder
|
# Copy items from source folder to destination folder
|
||||||
try {
|
try {
|
||||||
Copy-Item -Path $sourceFolderRegular\* -Destination $destinationFolder -Recurse -Force -ErrorAction Stop
|
Copy-Item -Path $sourceFolderRegular\* -Destination $destinationFolder -Recurse -Force -ErrorAction Stop
|
||||||
Log-Message "Success: Regular Template successfully copied to $destinationFolder"
|
Log-Message "Info: Regular Template successfully copied to $destinationFolder"
|
||||||
} catch {
|
} catch {
|
||||||
Log-Message "Error: Failed to copy Regular Template - $_"
|
Log-Message "Error: Failed to copy Regular Template - $_"
|
||||||
}
|
}
|
||||||
|
@ -66,7 +87,7 @@ if ($config.options.enableRegularVersion) {
|
||||||
$filePath1 = Join-Path -Path $filesFolder -ChildPath $fileName1
|
$filePath1 = Join-Path -Path $filesFolder -ChildPath $fileName1
|
||||||
try {
|
try {
|
||||||
Invoke-RestMethod -Uri $url1 -OutFile $filePath1 -ErrorAction Stop
|
Invoke-RestMethod -Uri $url1 -OutFile $filePath1 -ErrorAction Stop
|
||||||
Log-Message "Download complete: 64-bit version of Chrome successfully downloaded to $filePath1"
|
Log-Message "Info: Download complete, 64-bit version of Chrome successfully downloaded to $filePath1"
|
||||||
} catch {
|
} catch {
|
||||||
Log-Message "Error: 64-bit Chrome download failed - $_"
|
Log-Message "Error: 64-bit Chrome download failed - $_"
|
||||||
}
|
}
|
||||||
|
@ -76,7 +97,7 @@ if ($config.options.enableRegularVersion) {
|
||||||
$filePath2 = Join-Path -Path $filesFolder -ChildPath $fileName2
|
$filePath2 = Join-Path -Path $filesFolder -ChildPath $fileName2
|
||||||
try {
|
try {
|
||||||
Invoke-RestMethod -Uri $url2 -OutFile $filePath2 -ErrorAction Stop
|
Invoke-RestMethod -Uri $url2 -OutFile $filePath2 -ErrorAction Stop
|
||||||
Log-Message "Download complete: 32-bit version of Chrome successfully downloaded to $filePath2"
|
Log-Message "Info: Download complete, 32-bit version of Chrome successfully downloaded to $filePath2"
|
||||||
} catch {
|
} catch {
|
||||||
Log-Message "Error: 32-bit Chrome download failed - $_"
|
Log-Message "Error: 32-bit Chrome download failed - $_"
|
||||||
}
|
}
|
||||||
|
@ -87,7 +108,7 @@ if ($config.options.enableForcedVersion) {
|
||||||
if (-not (Test-Path $forceUpdateFolder)) {
|
if (-not (Test-Path $forceUpdateFolder)) {
|
||||||
try {
|
try {
|
||||||
New-Item -Path $forceUpdateFolder -ItemType Directory -ErrorAction Stop
|
New-Item -Path $forceUpdateFolder -ItemType Directory -ErrorAction Stop
|
||||||
Log-Message "Directory creation: 'Chrome - VERSION_force_update' successfully created in $PSScriptRoot"
|
Log-Message "Info: Directory creation, 'Chrome - VERSION_force_update' successfully created in $PSScriptRoot"
|
||||||
} catch {
|
} catch {
|
||||||
Log-Message "Error: Force update directory creation failed - $_"
|
Log-Message "Error: Force update directory creation failed - $_"
|
||||||
}
|
}
|
||||||
|
@ -96,7 +117,7 @@ if ($config.options.enableForcedVersion) {
|
||||||
# Copy items from forced source folder to force update folder
|
# Copy items from forced source folder to force update folder
|
||||||
try {
|
try {
|
||||||
Copy-Item -Path "$sourceFolderForced\*" -Destination $forceUpdateFolder -Recurse -Force -ErrorAction Stop
|
Copy-Item -Path "$sourceFolderForced\*" -Destination $forceUpdateFolder -Recurse -Force -ErrorAction Stop
|
||||||
Log-Message "Success: Forced Template successfully copied to $forceUpdateFolder"
|
Log-Message "Info: Forced Template successfully copied to $forceUpdateFolder"
|
||||||
} catch {
|
} catch {
|
||||||
Log-Message "Error: Failed to copy Forced Template - $_"
|
Log-Message "Error: Failed to copy Forced Template - $_"
|
||||||
}
|
}
|
||||||
|
@ -107,7 +128,7 @@ if ($config.options.enableForcedVersion) {
|
||||||
$filePath1 = Join-Path -Path $forceUpdateFolder -ChildPath $fileName1
|
$filePath1 = Join-Path -Path $forceUpdateFolder -ChildPath $fileName1
|
||||||
try {
|
try {
|
||||||
Invoke-RestMethod -Uri $url1 -OutFile $filePath1 -ErrorAction Stop
|
Invoke-RestMethod -Uri $url1 -OutFile $filePath1 -ErrorAction Stop
|
||||||
Log-Message "Download complete: 64-bit version of Chrome successfully downloaded to force update folder at $filePath1"
|
Log-Message "Info: Download complete, 64-bit version of Chrome successfully downloaded to force update folder at $filePath1"
|
||||||
} catch {
|
} catch {
|
||||||
Log-Message "Error: 64-bit Chrome download to force update folder failed - $_"
|
Log-Message "Error: 64-bit Chrome download to force update folder failed - $_"
|
||||||
}
|
}
|
||||||
|
@ -118,12 +139,12 @@ if ($config.options.enableForcedVersion) {
|
||||||
if (Test-Path $filePath1) {
|
if (Test-Path $filePath1) {
|
||||||
try {
|
try {
|
||||||
Copy-Item -Path $filePath1 -Destination $forceUpdateFolder -Force -ErrorAction Stop
|
Copy-Item -Path $filePath1 -Destination $forceUpdateFolder -Force -ErrorAction Stop
|
||||||
Log-Message "Success: 64-bit version of Chrome copied to force update folder at $forceUpdateFolder"
|
Log-Message "Info: 64-bit version of Chrome copied to force update folder at $forceUpdateFolder"
|
||||||
} catch {
|
} catch {
|
||||||
Log-Message "Error: Failed to copy 64-bit installer to force update folder - $_"
|
Log-Message "Error: Failed to copy 64-bit installer to force update folder - $_"
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log-Message "Warning: 64-bit version of Chrome was not downloaded and could not be copied to force update folder."
|
Log-Message "Warn: 64-bit version of Chrome was not downloaded and could not be copied to force update folder."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,8 @@ The `config.json` file should be structured as follows:
|
||||||
"options": {
|
"options": {
|
||||||
"enableRegularVersion": true,
|
"enableRegularVersion": true,
|
||||||
"enableForcedVersion": false,
|
"enableForcedVersion": false,
|
||||||
"enableNumberedVersion": false
|
"enableNumberedVersion": false,
|
||||||
|
"checkExist": false,
|
||||||
},
|
},
|
||||||
"logDateFormat": "dd/MM/yyyy HH:mm:ss"
|
"logDateFormat": "dd/MM/yyyy HH:mm:ss"
|
||||||
}
|
}
|
||||||
|
@ -24,6 +25,7 @@ The `config.json` file should be structured as follows:
|
||||||
- `enableRegularVersion`: A boolean flag to enable downloading and installing the regular version of Chrome.
|
- `enableRegularVersion`: A boolean flag to enable downloading and installing the regular version of Chrome.
|
||||||
- `enableForcedVersion`: A boolean flag to enable downloading and installing the forced update version of Chrome.
|
- `enableForcedVersion`: A boolean flag to enable downloading and installing the forced update version of Chrome.
|
||||||
- `enableNumberedVersion`: A boolean flag to enable the automatic renaming of the folder to the newest version of Chrome. ⚠️ **This option requires administrative privileges when executing the script!** ⚠️
|
- `enableNumberedVersion`: A boolean flag to enable the automatic renaming of the folder to the newest version of Chrome. ⚠️ **This option requires administrative privileges when executing the script!** ⚠️
|
||||||
|
- `checkExist`: A boolean flag to delete old Chrome folders when the script is executed. ⚠️ **This action will delete your Chrome folders, so ensure you have backups if you wish to retain them.** ⚠️
|
||||||
- `logDateFormat`: A string defining the format of timestamps in logs. The default format is `dd/MM/yyyy HH:mm:ss`.
|
- `logDateFormat`: A string defining the format of timestamps in logs. The default format is `dd/MM/yyyy HH:mm:ss`.
|
||||||
|
|
||||||
### Date Configuration
|
### Date Configuration
|
||||||
|
|
14
Rename.ps1
14
Rename.ps1
|
@ -26,12 +26,12 @@ if ($config.options.enableRegularVersion -and -not $config.options.enableForcedV
|
||||||
$newFolderName = "Chrome - $chromeVersion"
|
$newFolderName = "Chrome - $chromeVersion"
|
||||||
try {
|
try {
|
||||||
Rename-Item -Path $destinationFolder -NewName $newFolderName -ErrorAction Stop
|
Rename-Item -Path $destinationFolder -NewName $newFolderName -ErrorAction Stop
|
||||||
Log-Message "Success: Folder renamed to $newFolderName"
|
Log-Message "Info: Folder renamed to $newFolderName"
|
||||||
} catch {
|
} catch {
|
||||||
Log-Message "Error: Failed to rename folder - $_"
|
Log-Message "Error: Failed to rename folder - $_"
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log-Message "Warning: Chrome version could not be determined. Folder was not renamed."
|
Log-Message "Warn: Chrome version could not be determined. Folder was not renamed."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif ($config.options.enableForcedVersion -and -not $config.options.enableRegularVersion) {
|
elseif ($config.options.enableForcedVersion -and -not $config.options.enableRegularVersion) {
|
||||||
|
@ -47,12 +47,12 @@ elseif ($config.options.enableForcedVersion -and -not $config.options.enableRegu
|
||||||
$newFolderName = "Chrome - $chromeVersion" + "_force_update"
|
$newFolderName = "Chrome - $chromeVersion" + "_force_update"
|
||||||
try {
|
try {
|
||||||
Rename-Item -Path $forceUpdateFolder -NewName $newFolderName -ErrorAction Stop
|
Rename-Item -Path $forceUpdateFolder -NewName $newFolderName -ErrorAction Stop
|
||||||
Log-Message "Success: Folder renamed to $newFolderName"
|
Log-Message "Info: Folder renamed to $newFolderName"
|
||||||
} catch {
|
} catch {
|
||||||
Log-Message "Error: Failed to rename folder - $_"
|
Log-Message "Error: Failed to rename folder - $_"
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log-Message "Warning: Chrome version could not be determined. Folder was not renamed."
|
Log-Message "Warn: Chrome version could not be determined. Folder was not renamed."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif ($config.options.enableForcedVersion -and $config.options.enableRegularVersion) {
|
elseif ($config.options.enableForcedVersion -and $config.options.enableRegularVersion) {
|
||||||
|
@ -71,7 +71,7 @@ elseif ($config.options.enableForcedVersion -and $config.options.enableRegularVe
|
||||||
$newRegularFolderName = "Chrome - $chromeVersion"
|
$newRegularFolderName = "Chrome - $chromeVersion"
|
||||||
try {
|
try {
|
||||||
Rename-Item -Path $destinationFolder -NewName $newRegularFolderName -ErrorAction Stop
|
Rename-Item -Path $destinationFolder -NewName $newRegularFolderName -ErrorAction Stop
|
||||||
Log-Message "Success: Folder renamed to $newRegularFolderName"
|
Log-Message "Info: Folder renamed to $newRegularFolderName"
|
||||||
} catch {
|
} catch {
|
||||||
Log-Message "Error: Failed to rename folder - $_"
|
Log-Message "Error: Failed to rename folder - $_"
|
||||||
}
|
}
|
||||||
|
@ -80,11 +80,11 @@ elseif ($config.options.enableForcedVersion -and $config.options.enableRegularVe
|
||||||
$newForcedFolderName = "Chrome - $chromeVersion" + "_force_update"
|
$newForcedFolderName = "Chrome - $chromeVersion" + "_force_update"
|
||||||
try {
|
try {
|
||||||
Rename-Item -Path $forceUpdateFolder -NewName $newForcedFolderName -ErrorAction Stop
|
Rename-Item -Path $forceUpdateFolder -NewName $newForcedFolderName -ErrorAction Stop
|
||||||
Log-Message "Success: Folder renamed to $newForcedFolderName"
|
Log-Message "Info: Folder renamed to $newForcedFolderName"
|
||||||
} catch {
|
} catch {
|
||||||
Log-Message "Error: Failed to rename folder - $_"
|
Log-Message "Error: Failed to rename folder - $_"
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log-Message "Warning: Chrome version could not be determined. Folders were not renamed."
|
Log-Message "Warn: Chrome version could not be determined. Folders were not renamed."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
"options": {
|
"options": {
|
||||||
"enableRegularVersion": true,
|
"enableRegularVersion": true,
|
||||||
"enableForcedVersion": false,
|
"enableForcedVersion": false,
|
||||||
"enableNumberedVersion": false
|
"enableNumberedVersion": false,
|
||||||
|
"checkExist": false
|
||||||
},
|
},
|
||||||
"logDateFormat": "dd/MM/yyyy HH:mm:ss"
|
"logDateFormat": "dd/MM/yyyy HH:mm:ss"
|
||||||
}
|
}
|
Loading…
Reference in a new issue