SharePoint 2010 Powershell Script to Deploy Solution

SharePoint 2010 Powershell script to deploy solution, 
  1. $LogTime = Get-Date -Format yyyy-MM-dd_hh-mm  
  2. $LogFile = ".\DeploySolutionPatch-$LogTime.rtf"  
  3.  
  4. # Add SharePoint PowerShell Snapin  
  5.   
  6.   
  7. if ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) {  
  8.     Add-PSSnapin Microsoft.SharePoint.Powershell  
  9. }  
  10.   
  11. $scriptBase = split-path $SCRIPT:MyInvocation.MyCommand.Path -parent  
  12. Set-Location $scriptBase  
  13.  
  14.  
  15. #Deleting any .rtf files in the scriptbase location  
  16. $FindRTFFile = Get-ChildItem $scriptBase\*.* -include *.rtf  
  17. if($FindRTFFile)  
  18. {  
  19.  foreach($file in $FindRTFFile)  
  20.   {  
  21.    remove-item $file  
  22.   }  
  23. }  
  24.   
  25.   
  26. start-transcript $logfile  
  27.   
  28. $url = ""  
  29. $solutionFile = ""  
  30.     
  31. $url = Read-Host "Enter the Web Application Url [e.g. http://server_name]"   
  32. $solutionFile = Read-Host "Enter the Solution path [e.g. C:\SharePointProject.wsp]"  
  33.   
  34. Write-host "Add/install Solution to Web Application..."  
  35. $file = Get-ChildItem $solutionFile  
  36. Add-SPSolution -literalpath $solutionFile  
  37. $Solution = Get-SPSolution | ? {($_.Name -eq $file.name) -and ($_.Deployed -eq $false) }     
  38. if(($Solution -ne $null) -and ($Solution.ContainsWebApplicationResource) )     
  39.     {     
  40.         Install-SPSolution -identity $file.name -WebApplication $url -GACDeployment -Confirm:$false     
  41.     }     
  42.     else     
  43.     {     
  44.         Install-SPSolution -identity $file.Name -GACDeployment -Confirm:$false     
  45.     }     
  46.     while ($Solution.Deployed -eq $false)     
  47.     {     
  48.         Start-Sleep 2     
  49.     }     
  50. Write-Host "Deployment completed" -fore yellow