aboutsummaryrefslogtreecommitdiff
path: root/buildtools/packman5
diff options
context:
space:
mode:
authorBryan Galdrikian <[email protected]>2024-12-20 16:15:12 -0800
committerBryan Galdrikian <[email protected]>2024-12-20 16:15:12 -0800
commitb16fdc73d55b467b15595e32c70418ea55c1fe2b (patch)
tree4213c6fe17aafd8bdf23e66d376ca03ccb33ae86 /buildtools/packman5
parentRemoving reference to deprecated documentation server (diff)
downloadblast-b16fdc73d55b467b15595e32c70418ea55c1fe2b.tar.xz
blast-b16fdc73d55b467b15595e32c70418ea55c1fe2b.zip
Updating packman
Diffstat (limited to 'buildtools/packman5')
-rwxr-xr-xbuildtools/packman5/config.packman.xml3
-rwxr-xr-xbuildtools/packman5/packman114
-rwxr-xr-xbuildtools/packman5/packman.cmd40
-rwxr-xr-xbuildtools/packman5/win-bootstrap/configure.bat146
-rwxr-xr-xbuildtools/packman5/win-bootstrap/fetch_file_from_s3.cmd22
-rwxr-xr-xbuildtools/packman5/win-bootstrap/fetch_file_from_s3.ps160
-rwxr-xr-xbuildtools/packman5/win-bootstrap/fetch_file_from_url.ps137
-rwxr-xr-xbuildtools/packman5/win-bootstrap/generate_temp_file_name.ps12
-rw-r--r--buildtools/packman5/win-bootstrap/generate_temp_folder.ps17
-rwxr-xr-xbuildtools/packman5/win-bootstrap/install_package.py39
10 files changed, 0 insertions, 470 deletions
diff --git a/buildtools/packman5/config.packman.xml b/buildtools/packman5/config.packman.xml
deleted file mode 100755
index a3b89aa..0000000
--- a/buildtools/packman5/config.packman.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<config remotes="cloudfront">
- <remote name="cloudfront" packageLocation="d4i3qtqj3r0z5.cloudfront.net/${name}@${version}" type="https" />
-</config> \ No newline at end of file
diff --git a/buildtools/packman5/packman b/buildtools/packman5/packman
deleted file mode 100755
index a2fb94f..0000000
--- a/buildtools/packman5/packman
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/bin/bash
-
-PM_PACKMAN_VERSION=5.7.2
-
-# Specify where packman command exists
-export PM_INSTALL_PATH=$(dirname ${BASH_SOURCE})
-
-add_packages_root_to_file()
-{
- FILE_PATH=$1
- if [ -f "$FILE_PATH" ]; then
- if ! grep -Fq "PM_PACKAGES_ROOT" $FILE_PATH ; then
- echo "Adjusting $FILE_PATH"
- echo -e "export PM_PACKAGES_ROOT=\$HOME/packman-repo\n" >> $FILE_PATH
- fi
- fi
-}
-
-# The packages root may already be configured by the user
-if [ -z "$PM_PACKAGES_ROOT" ]; then
- # Set variable permanently using .profile for this user (if exists)
- add_packages_root_to_file ~/.profile
- add_packages_root_to_file ~/.bashrc
- # Set variable temporarily in this process so that the following execution will work
- export PM_PACKAGES_ROOT="${HOME}/packman-repo"
-fi
-
-# Ensure the packages root path exists:
-if [ ! -d "$PM_PACKAGES_ROOT" ]; then
- echo "Creating packman packages repository at $PM_PACKAGES_ROOT"
- mkdir -p "$PM_PACKAGES_ROOT"
-fi
-
-# The packman module may be externally configured
-if [ -z "$PM_MODULE_DIR_EXT" ]; then
- PM_MODULE_DIR="$PM_PACKAGES_ROOT/packman-common/$PM_PACKMAN_VERSION"
-else
- PM_MODULE_DIR="$PM_MODULE_DIR_EXT"
-fi
-export PM_MODULE="$PM_MODULE_DIR/packman.py"
-
-fetch_file_from_s3()
-{
- SOURCE=$1
- SOURCE_URL=http://packman-bootstrap.s3.amazonaws.com/$SOURCE
- TARGET=$2
- echo "Fetching $SOURCE from S3 ..."
- if command -v wget >/dev/null 2>&1; then
- wget --quiet -O$TARGET $SOURCE_URL
- else
- curl -o $TARGET $SOURCE_URL -s -S
- fi
-}
-
-# Ensure the packman package exists:
-if [ ! -f "$PM_MODULE" ]; then
- PM_MODULE_PACKAGE="packman-common@$PM_PACKMAN_VERSION.zip"
- TARGET="/tmp/$PM_MODULE_PACKAGE"
- # We always fetch packman from S3:
- fetch_file_from_s3 $PM_MODULE_PACKAGE $TARGET
- if [ "$?" -eq "0" ]; then
- echo "Unpacking ..."
- mkdir -p "$PM_MODULE_DIR"
- unzip -q $TARGET -d "$PM_MODULE_DIR"
- rm $TARGET
- else
- echo "Failure while fetching packman module from S3!"
- exit 1
- fi
-fi
-
-# For now assume python is installed on the box and we just need to find it
-if command -v python2.7 >/dev/null 2>&1; then
- export PM_PYTHON=python2.7
-elif command -v python2 >/dev/null 2>&1; then
- export PM_PYTHON=python2
-else
- export PM_PYTHON=python
-fi
-
-# Ensure 7za package exists:
-PM_7za_VERSION=16.02.4
-export PM_7za_PATH="$PM_PACKAGES_ROOT/7za/$PM_7za_VERSION"
-if [ ! -d "$PM_7za_PATH" ]; then
- export PM_7za_PATH="$PM_PACKAGES_ROOT/chk/7za/$PM_7za_VERSION"
- if [ ! -d "$PM_7za_PATH" ]; then
- $PM_PYTHON -s -u -E "$PM_MODULE" pull "$PM_MODULE_DIR/deps.packman.xml"
- if [ "$?" -ne 0 ]; then
- echo "Failure while installing required 7za package"
- exit 1
- fi
- fi
-fi
-
-# Generate temporary file name for environment variables:
-PM_VAR_PATH=`mktemp -u -t tmp.$$.pmvars.XXXXXX`
-
-$PM_PYTHON -s -u -E "$PM_MODULE" "$@" --var-path="$PM_VAR_PATH"
-exit_code=$?
-# Export the variables if the file was used and remove the file:
-if [ -f "$PM_VAR_PATH" ]; then
- while read -r line
- do
- if [ ${#line} -gt 0 ]; then
- export "$line"
- fi
- done < "$PM_VAR_PATH"
- rm -f "$PM_VAR_PATH"
-fi
-
-# Return the exit code from python
-if [ "$exit_code" != 0 ]; then
- exit "$exit_code"
-fi
diff --git a/buildtools/packman5/packman.cmd b/buildtools/packman5/packman.cmd
deleted file mode 100755
index b06f6dc..0000000
--- a/buildtools/packman5/packman.cmd
+++ /dev/null
@@ -1,40 +0,0 @@
-:: Reset errorlevel status so we are not inheriting this state from the calling process:
-@call :RESET_ERROR
-:: You can remove the call below if you do your own manual configuration of the dev machines
-@call "%~dp0\win-bootstrap\configure.bat"
-@if errorlevel 1 exit /b 1
-:: Everything below is mandatory
-@if not defined PM_PYTHON goto :PYTHON_ENV_ERROR
-@if not defined PM_MODULE goto :MODULE_ENV_ERROR
-
-:: Generate temporary path for variable file
-@for /f "delims=" %%a in ('powershell -ExecutionPolicy ByPass -NoLogo -NoProfile ^
--File "%~dp0win-bootstrap\generate_temp_file_name.ps1"') do @set PM_VAR_PATH=%%a
-
-@"%PM_PYTHON%" -s -u -E "%PM_MODULE%" %* --var-path="%PM_VAR_PATH%"
-@if errorlevel 1 goto :eof
-
-:: Marshall environment variables into the current environment if they have been generated and remove temporary file
-@if exist "%PM_VAR_PATH%" (
- @for /F "usebackq tokens=*" %%A in ("%PM_VAR_PATH%") do @set "%%A"
- @if errorlevel 1 goto :VAR_ERROR
- @del /F "%PM_VAR_PATH%"
-)
-@set PM_VAR_PATH=
-@goto :eof
-
-:: Subroutines below
-:PYTHON_ENV_ERROR
-@echo User environment variable PM_PYTHON is not set! Please configure machine for packman or call configure.bat.
-@exit /b 1
-
-:MODULE_ENV_ERROR
-@echo User environment variable PM_MODULE is not set! Please configure machine for packman or call configure.bat.
-@exit /b 1
-
-:VAR_ERROR
-@echo Error while processing and setting environment variables!
-@exit /b 1
-
-:RESET_ERROR
-@exit /b 0 \ No newline at end of file
diff --git a/buildtools/packman5/win-bootstrap/configure.bat b/buildtools/packman5/win-bootstrap/configure.bat
deleted file mode 100755
index 223a839..0000000
--- a/buildtools/packman5/win-bootstrap/configure.bat
+++ /dev/null
@@ -1,146 +0,0 @@
-@set PM_PACKMAN_VERSION=5.7.2
-
-:: Specify where packman command is rooted
-@set PM_INSTALL_PATH=%~dp0..
-
-:: The external root may already be configured and we should do minimal work in that case
-@if defined PM_PACKAGES_ROOT goto ENSURE_DIR
-
-:: If the folder isn't set we assume that the best place for it is on the drive that we are currently
-:: running from
-@set PM_DRIVE=%CD:~0,2%
-
-@set PM_PACKAGES_ROOT=%PM_DRIVE%\packman-repo
-
-:: We use *setx* here so that the variable is persisted in the user environment
-@echo Setting user environment variable PM_PACKAGES_ROOT to %PM_PACKAGES_ROOT%
-@setx PM_PACKAGES_ROOT %PM_PACKAGES_ROOT%
-@if errorlevel 1 goto ERROR
-
-:: The above doesn't work properly from a build step in VisualStudio because a separate process is
-:: spawned for it so it will be lost for subsequent compilation steps - VisualStudio must
-:: be launched from a new process. We catch this odd-ball case here:
-@if defined PM_DISABLE_VS_WARNING goto ENSURE_DIR
-@if not defined VSLANG goto ENSURE_DIR
-@echo The above is a once-per-computer operation. Unfortunately VisualStudio cannot pick up environment change
-@echo unless *VisualStudio is RELAUNCHED*.
-@echo If you are launching VisualStudio from command line or command line utility make sure
-@echo you have a fresh launch environment (relaunch the command line or utility).
-@echo If you are using 'linkPath' and referring to packages via local folder links you can safely ignore this warning.
-@echo You can disable this warning by setting the environment variable PM_DISABLE_VS_WARNING.
-@echo.
-
-:: Check for the directory that we need. Note that mkdir will create any directories
-:: that may be needed in the path
-:ENSURE_DIR
-@if not exist "%PM_PACKAGES_ROOT%" (
- @echo Creating directory %PM_PACKAGES_ROOT%
- @mkdir "%PM_PACKAGES_ROOT%"
- @if errorlevel 1 goto ERROR_MKDIR_PACKAGES_ROOT
-)
-
-:: The Python interpreter may already be externally configured
-@if defined PM_PYTHON_EXT (
- @set PM_PYTHON=%PM_PYTHON_EXT%
- @goto PACKMAN
-)
-
-@set PM_PYTHON_VERSION=2.7.14-windows-x86_32
-@set PM_PYTHON_BASE_DIR=%PM_PACKAGES_ROOT%\python
-@set PM_PYTHON_DIR=%PM_PYTHON_BASE_DIR%\%PM_PYTHON_VERSION%
-@set PM_PYTHON=%PM_PYTHON_DIR%\python.exe
-
-@if exist "%PM_PYTHON%" goto PACKMAN
-@if not exist "%PM_PYTHON_BASE_DIR%" call :CREATE_PYTHON_BASE_DIR
-
-@set PM_PYTHON_PACKAGE=python@%PM_PYTHON_VERSION%.cab
-@for /f "delims=" %%a in ('powershell -ExecutionPolicy ByPass -NoLogo -NoProfile -File "%~dp0\generate_temp_file_name.ps1"') do @set TEMP_FILE_NAME=%%a
-@set TARGET=%TEMP_FILE_NAME%.zip
-@call "%~dp0fetch_file_from_s3.cmd" %PM_PYTHON_PACKAGE% "%TARGET%"
-@if errorlevel 1 goto ERROR
-
-@for /f "delims=" %%a in ('powershell -ExecutionPolicy ByPass -NoLogo -NoProfile -File "%~dp0\generate_temp_folder.ps1" -parentPath "%PM_PYTHON_BASE_DIR%"') do @set TEMP_FOLDER_NAME=%%a
-@echo Unpacking Python interpreter ...
-@expand -F:* "%TARGET%" "%TEMP_FOLDER_NAME%" 1> nul
-@del "%TARGET%"
-:: Failure during extraction to temp folder name, need to clean up and abort
-@if errorlevel 1 (
- @call :CLEAN_UP_TEMP_FOLDER
- @goto ERROR
-)
-
-:: If python has now been installed by a concurrent process we need to clean up and then continue
-@if exist "%PM_PYTHON%" (
- @call :CLEAN_UP_TEMP_FOLDER
- @goto PACKMAN
-) else (
- @if exist "%PM_PYTHON_DIR%" ( @rd /s /q "%PM_PYTHON_DIR%" > nul )
-)
-
-:: Perform atomic rename
-@rename "%TEMP_FOLDER_NAME%" "%PM_PYTHON_VERSION%" 1> nul
-:: Failure during move, need to clean up and abort
-@if errorlevel 1 (
- @call :CLEAN_UP_TEMP_FOLDER
- @goto ERROR
-)
-
-:PACKMAN
-:: The packman module may already be externally configured
-@if defined PM_MODULE_DIR_EXT (
- @set PM_MODULE_DIR=%PM_MODULE_DIR_EXT%
-) else (
- @set PM_MODULE_DIR=%PM_PACKAGES_ROOT%\packman-common\%PM_PACKMAN_VERSION%
-)
-
-@set PM_MODULE=%PM_MODULE_DIR%\packman.py
-
-@if exist "%PM_MODULE%" goto ENSURE_7ZA
-
-@set PM_MODULE_PACKAGE=packman-common@%PM_PACKMAN_VERSION%.zip
-@for /f "delims=" %%a in ('powershell -ExecutionPolicy ByPass -NoLogo -NoProfile -File "%~dp0\generate_temp_file_name.ps1"') do @set TEMP_FILE_NAME=%%a
-@set TARGET=%TEMP_FILE_NAME%
-@call "%~dp0fetch_file_from_s3.cmd" %PM_MODULE_PACKAGE% "%TARGET%"
-@if errorlevel 1 goto ERROR
-
-@echo Unpacking ...
-@"%PM_PYTHON%" -s -u -E "%~dp0\install_package.py" "%TARGET%" "%PM_MODULE_DIR%"
-@if errorlevel 1 goto ERROR
-
-@del "%TARGET%"
-
-:ENSURE_7ZA
-@set PM_7Za_VERSION=16.02.4
-@set PM_7Za_PATH=%PM_PACKAGES_ROOT%\7za\%PM_7ZA_VERSION%
-@if exist "%PM_7Za_PATH%" goto END
-@set PM_7Za_PATH=%PM_PACKAGES_ROOT%\chk\7za\%PM_7ZA_VERSION%
-@if exist "%PM_7Za_PATH%" goto END
-
-@"%PM_PYTHON%" -s -u -E "%PM_MODULE%" pull "%PM_MODULE_DIR%\deps.packman.xml"
-@if errorlevel 1 goto ERROR
-
-@goto END
-
-:ERROR_MKDIR_PACKAGES_ROOT
-@echo Failed to automatically create packman packages repo at %PM_PACKAGES_ROOT%.
-@echo Please set a location explicitly that packman has permission to write to, by issuing:
-@echo.
-@echo setx PM_PACKAGES_ROOT {path-you-choose-for-storing-packman-packages-locally}
-@echo.
-@echo Then launch a new command console for the changes to take effect and run packman command again.
-@exit /B 1
-
-:ERROR
-@echo !!! Failure while configuring local machine :( !!!
-@exit /B 1
-
-:CLEAN_UP_TEMP_FOLDER
-@rd /S /Q "%TEMP_FOLDER_NAME%"
-@exit /B
-
-:CREATE_PYTHON_BASE_DIR
-:: We ignore errors and clean error state - if two processes create the directory one will fail which is fine
-@md "%PM_PYTHON_BASE_DIR%" > nul 2>&1
-@exit /B 0
-
-:END
diff --git a/buildtools/packman5/win-bootstrap/fetch_file_from_s3.cmd b/buildtools/packman5/win-bootstrap/fetch_file_from_s3.cmd
deleted file mode 100755
index 4e31293..0000000
--- a/buildtools/packman5/win-bootstrap/fetch_file_from_s3.cmd
+++ /dev/null
@@ -1,22 +0,0 @@
-:: You need to specify <package-name> <target-path> as input to this command
-@setlocal
-@set PACKAGE_NAME=%1
-@set TARGET_PATH=%2
-
-@echo Fetching %PACKAGE_NAME% from packman-bootstrap over HTTP ...
-
-@powershell -ExecutionPolicy ByPass -NoLogo -NoProfile -File "%~dp0fetch_file_from_s3.ps1" -sourceName %PACKAGE_NAME% ^
- -output %TARGET_PATH%
-:: A bug in powershell prevents the errorlevel code from being set when using the -File execution option
-:: We must therefore do our own failure analysis, basically make sure the file exists and is larger than 0 bytes:
-@if not exist %TARGET_PATH% goto ERROR_DOWNLOAD_FAILED
-@if %~z2==0 goto ERROR_DOWNLOAD_FAILED
-
-@endlocal
-@exit /b 0
-
-:ERROR_DOWNLOAD_FAILED
-@echo Failed to download file from S3
-@echo Most likely because endpoint cannot be reached or file %PACKAGE_NAME% doesn't exist
-@endlocal
-@exit /b 1 \ No newline at end of file
diff --git a/buildtools/packman5/win-bootstrap/fetch_file_from_s3.ps1 b/buildtools/packman5/win-bootstrap/fetch_file_from_s3.ps1
deleted file mode 100755
index 96db7f2..0000000
--- a/buildtools/packman5/win-bootstrap/fetch_file_from_s3.ps1
+++ /dev/null
@@ -1,60 +0,0 @@
-param(
-[Parameter(Mandatory=$true)][string]$sourceName=$null,
-[string]$output="out.exe"
-)
-$source = "http://packman-bootstrap.s3.amazonaws.com/" + $sourceName
-$filename = $output
-
-$triesLeft = 3
-
-do
-{
- $triesLeft -= 1
- $req = [System.Net.httpwebrequest]::Create($source)
- $req.cookiecontainer = New-Object System.net.CookieContainer
-
- try
- {
- Write-Host "Connecting to S3 ..."
- $res = $req.GetResponse()
- if($res.StatusCode -eq "OK") {
- Write-Host "Downloading ..."
- [int]$goal = $res.ContentLength
- $reader = $res.GetResponseStream()
- $writer = new-object System.IO.FileStream $fileName, "Create"
- [byte[]]$buffer = new-object byte[] 4096
- [int]$total = [int]$count = 0
- do
- {
- $count = $reader.Read($buffer, 0, $buffer.Length);
- $writer.Write($buffer, 0, $count);
- $total += $count
- if($goal -gt 0) {
- Write-Progress "Downloading $url" "Saving $total of $goal" -id 0 -percentComplete (($total/$goal)*100)
- } else {
- Write-Progress "Downloading $url" "Saving $total bytes..." -id 0
- }
- } while ($count -gt 0)
-
- $triesLeft = 0
- }
- }
- catch
- {
- Write-Host "Error connecting to S3!"
- Write-Host $_.Exception|format-list -force
- }
- finally
- {
- if ($reader)
- {
- $reader.Close()
- }
- if ($writer)
- {
- $writer.Flush()
- $writer.Close()
- }
- }
-} while ($triesLeft -gt 0)
-
diff --git a/buildtools/packman5/win-bootstrap/fetch_file_from_url.ps1 b/buildtools/packman5/win-bootstrap/fetch_file_from_url.ps1
deleted file mode 100755
index b9cb23c..0000000
--- a/buildtools/packman5/win-bootstrap/fetch_file_from_url.ps1
+++ /dev/null
@@ -1,37 +0,0 @@
-param(
-[Parameter(Mandatory=$true)][string]$sourceUrl=$null,
-[Parameter(Mandatory=$true)][string]$output=$null
-)
-$source = $sourceUrl
-$filename = $output
-
-$req = [System.Net.httpwebrequest]::Create($source)
-$req.cookiecontainer = New-Object System.net.CookieContainer
-
-Write-Host "Connecting to $source ..."
-$res = $req.GetResponse()
-
-if($res.StatusCode -eq "OK") {
- Write-Host "Downloading ..."
- [int]$goal = $res.ContentLength
- $reader = $res.GetResponseStream()
- $writer = new-object System.IO.FileStream $fileName, "Create"
- [byte[]]$buffer = new-object byte[] 4096
- [int]$total = [int]$count = 0
- do
- {
- $count = $reader.Read($buffer, 0, $buffer.Length);
- $writer.Write($buffer, 0, $count);
- $total += $count
- if($goal -gt 0) {
- Write-Progress "Downloading $url" "Saving $total of $goal" -id 0 -percentComplete (($total/$goal)*100)
- } else {
- Write-Progress "Downloading $url" "Saving $total bytes..." -id 0
- }
- } while ($count -gt 0)
-
- $reader.Close()
- $writer.Flush()
- $writer.Close()
-}
-
diff --git a/buildtools/packman5/win-bootstrap/generate_temp_file_name.ps1 b/buildtools/packman5/win-bootstrap/generate_temp_file_name.ps1
deleted file mode 100755
index a8c9c1b..0000000
--- a/buildtools/packman5/win-bootstrap/generate_temp_file_name.ps1
+++ /dev/null
@@ -1,2 +0,0 @@
-$out = [System.IO.Path]::GetTempFileName()
-Write-Host $out \ No newline at end of file
diff --git a/buildtools/packman5/win-bootstrap/generate_temp_folder.ps1 b/buildtools/packman5/win-bootstrap/generate_temp_folder.ps1
deleted file mode 100644
index b24a654..0000000
--- a/buildtools/packman5/win-bootstrap/generate_temp_folder.ps1
+++ /dev/null
@@ -1,7 +0,0 @@
-param(
-[Parameter(Mandatory=$true)][string]$parentPath=$null
-)
-[string] $name = [System.Guid]::NewGuid()
-$out = Join-Path $parentPath $name
-New-Item -ItemType Directory -Path ($out) | Out-Null
-Write-Host $out
diff --git a/buildtools/packman5/win-bootstrap/install_package.py b/buildtools/packman5/win-bootstrap/install_package.py
deleted file mode 100755
index 3aa294e..0000000
--- a/buildtools/packman5/win-bootstrap/install_package.py
+++ /dev/null
@@ -1,39 +0,0 @@
-import logging
-import zipfile
-import tempfile
-import sys
-import shutil
-
-__author__ = 'hfannar'
-logging.basicConfig(level=logging.WARNING, format="%(message)s")
-logger = logging.getLogger('install_package')
-
-
-class TemporaryDirectory:
- def __init__(self):
- self.path = None
-
- def __enter__(self):
- self.path = tempfile.mkdtemp()
- return self.path
-
- def __exit__(self, type, value, traceback ):
- # Remove temporary data created
- shutil.rmtree(self.path)
-
-
-def install_package(package_src_path, package_dst_path):
- with zipfile.ZipFile(package_src_path, allowZip64=True) as zip_file, TemporaryDirectory() as temp_dir:
- zip_file.extractall(temp_dir)
- # Recursively copy (temp_dir will be automatically cleaned up on exit)
- try:
- # Recursive copy is needed because both package name and version folder could be missing in
- # target directory:
- shutil.copytree(temp_dir, package_dst_path)
- except OSError, exc:
- logger.warning("Directory %s already present, packaged installation aborted" % package_dst_path)
- else:
- logger.info("Package successfully installed to %s" % package_dst_path)
-
-
-install_package(sys.argv[1], sys.argv[2]) \ No newline at end of file