From d80ea3a25f3e7f5bad53543c34374d2d960a9e27 Mon Sep 17 00:00:00 2001 From: aparnajyothi-y <147696841+aparnajyothi-y@users.noreply.github.com> Date: Mon, 24 Jun 2024 15:07:52 +0530 Subject: [PATCH] Delete builders/nix-python-builder.psm1 --- builders/nix-python-builder.psm1 | 170 ------------------------------- 1 file changed, 170 deletions(-) delete mode 100644 builders/nix-python-builder.psm1 diff --git a/builders/nix-python-builder.psm1 b/builders/nix-python-builder.psm1 deleted file mode 100644 index 001f01f..0000000 --- a/builders/nix-python-builder.psm1 +++ /dev/null @@ -1,170 +0,0 @@ - -using module "./python-builder.psm1" - -class NixPythonBuilder : PythonBuilder { - <# - .SYNOPSIS - Base Python builder class for *Nix systems. - - .DESCRIPTION - Contains methods that required to build Python artifact for *nix systems. Inherited from base PythonBuilder class. - - .PARAMETER version - The version of Python that should be built. - - .PARAMETER Platform - The type of platform for which Python should be built. - - .PARAMETER PlatformVersion - The version of platform for which Python should be built. - - .PARAMETER InstallationTemplateName - The name of template that will be used to create installation script for generated Python artifact. - - .PARAMETER InstallationScriptName - The name of installation script that will be generated for Python artifact. - - .PARAMETER OutputArtifactName - The name of archive with Python binaries that will be generated as part of Python artifact. - - #> - - [string] $InstallationTemplateName - [string] $InstallationScriptName - [string] $OutputArtifactName - - NixPythonBuilder( - [semver] $version, - [string] $architecture, - [string] $platform - ) : Base($version, $architecture, $platform) { - $this.InstallationTemplateName = "nix-setup-template.sh" - $this.InstallationScriptName = "setup.sh" - $this.OutputArtifactName = "python-$Version-$Platform-$Architecture.tar.gz" - } - - [uri] GetSourceUri() { - <# - .SYNOPSIS - Get base Python URI and return complete URI for Python sources. - #> - - $base = $this.GetBaseUri() - $versionName = $this.GetBaseVersion() - $nativeVersion = Convert-Version -version $this.Version - - return "${base}/${versionName}/Python-${nativeVersion}.tgz" - } - - [string] GetPythonBinary() { - <# - .SYNOPSIS - Return name of Python binary. - #> - - if ($this.Version.Major -eq 2) { $pythonBinary = "python" } else { $pythonBinary = "python3" } - return $pythonBinary - } - - [string] Download() { - <# - .SYNOPSIS - Download Python sources and extract them at temporary work folder. Returns expanded archive location path. - #> - - $sourceUri = $this.GetSourceUri() - Write-Host "Sources URI: $sourceUri" - - $archiveFilepath = Download-File -Uri $sourceUri -OutputFolder $this.WorkFolderLocation - $expandedSourceLocation = Join-Path -Path $this.TempFolderLocation -ChildPath "SourceCode" - New-Item -Path $expandedSourceLocation -ItemType Directory - - Extract-TarArchive -ArchivePath $archiveFilepath -OutputDirectory $expandedSourceLocation - Write-Debug "Done; Sources location: $expandedSourceLocation" - - return $expandedSourceLocation - } - - [void] CreateInstallationScript() { - <# - .SYNOPSIS - Create Python artifact installation script based on template specified in InstallationTemplateName property. - #> - - $installationScriptLocation = New-Item -Path $this.WorkFolderLocation -Name $this.InstallationScriptName -ItemType File - $installationTemplateLocation = Join-Path -Path $this.InstallationTemplatesLocation -ChildPath $this.InstallationTemplateName - - $installationTemplateContent = Get-Content -Path $installationTemplateLocation -Raw - - $variablesToReplace = @{ - "{{__VERSION_FULL__}}" = $this.Version; - "{{__ARCH__}}" = $this.Architecture; - } - $variablesToReplace.keys | ForEach-Object { $installationTemplateContent = $installationTemplateContent.Replace($_, $variablesToReplace[$_]) } - - $installationTemplateContent | Out-File -FilePath $installationScriptLocation - - Write-Debug "Done; Installation script location: $installationScriptLocation)" - } - - [void] Make() { - <# - .SYNOPSIS - Executes "make" and "make install" commands for configured build sources. Make output will be writen in build_output.txt located in artifact location folder. - #> - - Write-Debug "make Python $($this.Version)-$($this.Architecture) $($this.Platform)" - $buildOutputLocation = New-Item -Path $this.WorkFolderLocation -Name "build_output.txt" -ItemType File - - Execute-Command -Command "make 2>&1 | tee $buildOutputLocation" -ErrorAction Continue - Execute-Command -Command "make install" -ErrorAction Continue - - Write-Debug "Done; Make log location: $buildOutputLocation" - } - - [void] CopyBuildResults() { - $buildFolder = $this.GetFullPythonToolcacheLocation() - Move-Item -Path "$buildFolder/*" -Destination $this.WorkFolderLocation - } - - [void] ArchiveArtifact() { - $OutputPath = Join-Path $this.ArtifactFolderLocation $this.OutputArtifactName - Create-TarArchive -SourceFolder $this.WorkFolderLocation -ArchivePath $OutputPath - } - - [void] Build() { - <# - .SYNOPSIS - Build Python artifact from sources. - #> - - Write-Host "Prepare Python Hostedtoolcache location..." - $this.PreparePythonToolcacheLocation() - - Write-Host "Prepare system environment..." - $this.PrepareEnvironment() - - Write-Host "Download Python $($this.Version)[$($this.Architecture)] sources..." - $sourcesLocation = $this.Download() - - Push-Location -Path $sourcesLocation - Write-Host "Configure for $($this.Platform)..." - $this.Configure() - - Write-Host "Make for $($this.Platform)..." - $this.Make() - Pop-Location - - Write-Host "Generate structure dump" - New-ToolStructureDump -ToolPath $this.GetFullPythonToolcacheLocation() -OutputFolder $this.WorkFolderLocation - - Write-Host "Copying build results to destination location" - $this.CopyBuildResults() - - Write-Host "Create installation script..." - $this.CreateInstallationScript() - - Write-Host "Archive artifact..." - $this.ArchiveArtifact() - } -}