Octopus.Script exported 2017-06-01 by daviesaus belongs to ‘File System’ category.
Renames a file on the file system.
Parameters
When steps based on the template are included in a project’s deployment process, the parameters below can be set.
File Path
FilePath =
The location of the file you wish to rename.
New Name
NewName =
The new name for the file you’re renaming.
Script body
Steps based on this template will execute the following PowerShell script.
$filePath = $OctopusParameters['FilePath']
$newName = $OctopusParameters['NewName']
function Test-FileLocked([string]$filePath)
{
Rename-Item $filePath $filePath -ErrorVariable errs -ErrorAction SilentlyContinue
return ($errs.Count -ne 0)
}
$fileExists = Test-Path -Path $filePath
if (!$fileExists)
{
Write-Warning "File not found at $filePath"
return
}
$fileIsLocked = Test-FileLocked($filePath)
function Wait-ForFileUnlock
{
for ($attemptNo = 1; $attemptNo -lt 6; $attemptNo++) {
Write-Host "Waiting for the file to become unlocked $attemptNo/5"
Start-Sleep -Seconds 10
$fileIsLocked = Test-FileLocked($filePath)
if (!$fileIsLocked)
{
return
}
if ($attemptNo -eq 5) {
Write-Error "File at location $filePath is locked and cannot be renamed"
return
}
}
}
if ($fileIsLocked)
{
Wait-ForFileUnlock
}
Rename-Item -Path $filePath -NewName $newName
Write-Host "Successfully renamed file at location: $filePath to $newName"
Provided under the Apache License version 2.0.
To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.
{
"Id": "5ca37bfb-ebbc-4b4c-ab1e-06d462e7f910",
"Name": "File System - Rename File",
"Description": "Renames a file on the file system.",
"Version": 2,
"ExportedAt": "2017-06-01T11:11:00.134Z",
"ActionType": "Octopus.Script",
"Author": "daviesaus",
"Parameters": [
{
"Id": "37fd875e-f5f7-493c-bb8c-30354bf39678",
"Name": "FilePath",
"Type": "String",
"Label": "File Path",
"HelpText": "The location of the file you wish to rename.",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "MultiLineText"
},
"Links": {}
},
{
"Id": "facc1261-1b0e-476e-a520-13e682c4f8b7",
"Name": "NewName",
"Type": "String",
"Label": "New Name",
"HelpText": "The new name for the file you're renaming.",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
},
"Links": {}
}
],
"Properties": {
"Octopus.Action.Script.Syntax": "PowerShell",
"Octopus.Action.Script.ScriptSource": "Inline",
"Octopus.Action.RunOnServer": "false",
"Octopus.Action.Script.ScriptBody": "$filePath = $OctopusParameters['FilePath']\n$newName = $OctopusParameters['NewName']\n\nfunction Test-FileLocked([string]$filePath)\n{\n Rename-Item $filePath $filePath -ErrorVariable errs -ErrorAction SilentlyContinue\n return ($errs.Count -ne 0)\n}\n\n$fileExists = Test-Path -Path $filePath\n\nif (!$fileExists)\n{\n Write-Warning \"File not found at $filePath\"\n\n return\n}\n\n$fileIsLocked = Test-FileLocked($filePath)\n\nfunction Wait-ForFileUnlock\n{\n for ($attemptNo = 1; $attemptNo -lt 6; $attemptNo++) {\n Write-Host \"Waiting for the file to become unlocked $attemptNo/5\"\n\n Start-Sleep -Seconds 10\n\n $fileIsLocked = Test-FileLocked($filePath)\n\n if (!$fileIsLocked)\n {\n return\n }\n\n if ($attemptNo -eq 5) {\n Write-Error \"File at location $filePath is locked and cannot be renamed\"\n\n return\n }\n }\n}\n\nif ($fileIsLocked)\n{\n Wait-ForFileUnlock\n}\n\nRename-Item -Path $filePath -NewName $newName\n\nWrite-Host \"Successfully renamed file at location: $filePath to $newName\"",
"Octopus.Action.Script.ScriptFileName": null,
"Octopus.Action.Package.FeedId": null,
"Octopus.Action.Package.PackageId": null
},
"Category": "File System",
"HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/file-system-rename-file.json",
"Website": "/step-templates/5ca37bfb-ebbc-4b4c-ab1e-06d462e7f910",
"Logo": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAMAAACahl6sAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKhQTFRF/////78A/6oAVVVV/++//+q/gICA1dXV/79A/9R///ff/8MQ/9dg/8cg//vv/68A/+ef//PP//rv/7Ug/68Q/+Sv/8sw/9tw/9NQ/89w/+uv/+OP/8pg/89A/8VQ/9+f/9+A/9qP/+/P/99//7cA/7IA/7wA/6sA/+/A39/f/64A2tjX//Tfn5+f/7MA/7sA/74A/60A/9Zw/7gA/74Q/7oA/7UA/7EAi6g4fwAAAuRJREFUeNrs21tT2mAUheEvaaCQQCSczyi29WzP7f//Z6UdZBIIM44us9hf13vbC+eRbLo3qnNKKaWUUkoppZRSSimllFJKKaWUwlVrLhsvbrLqnoai2+yFr2x+fwKOwasZm/oXdEczxDQnOyYhqgn3uQpxDZhz3gdCesQ3r3mIjDfwXagj7NEgKywkXLMgSzCE9mz1wBDaOzDYETYEEUSQ/wPSaz6rQa174pDnt1x5Atm8emtPIGG48gUClJAh/XtPILi36+L3Zz6oVdBF4w32/sIbYmWH6qAPX5fzjio/14Q/W7nnqtIPDnYfFfThkGpPovXu68IhNdKSVyXkoQ7qgQypvwNVFwQDuXkP6oYM8WbYBWFDYMPNHnZBTv3tV8MuiCC+Q6K36+ypkn/LsJC4lQSkhhkQch4Qa+MgrYBahIKcB35AYrIjyEAQ9gsCm5E2GTIDQabsJysFQcZkxxj0H2LKfkGmIMjM3KgfgbBHfQSCROwnKwZByNtJsACt8WlChnRAkA7ZkaAOqyEZ0gJB7O2LRyAjsmOIutlNjnoJhD3qL9gXyyFjk6N+CKGPegSC2DsNj0DY++IlCEI/DWMQhL0vjh0GYvE0LIWwT8PEgSDsfXEEgmRmR30PYvI0LIGkRvfFAwj9NExBkIXRfXEfYvQ0PISwT8O2A0HYoz4DQb4ZPQ0PID8sj3oO8tXuvliEPJoe9Rzkk9XTcA9yZnhfLEA+mD0Ni5Ar9gvSAUE+2j0Ni5DPdk/DAuTW9L6Yg7BHfehAkC/WR30LoY96CoL8tL0v7iD0fTECQX4Z3xd3EPa+OANBflvfF58g363vi1sIfV+cgiCPPoz6Xwh71EcgyK0Xo76BsPfFBcbhrjzYF/9l/zTcxj4NWyBH7Mmo038zFvWCsCHt1HnxaCWZg8X8ifQwxjlcSvsJaHLpsGW5v2S8vo4qyymF7+5O3wOllFJKKaWUUkoppZRSSimllPKxPwIMAPj2YtijZbi5AAAAAElFTkSuQmCC",
"$Meta": {
"Type": "ActionTemplate"
}
}
Page updated on Thursday, June 1, 2017