up
This commit is contained in:
@@ -15,6 +15,10 @@ WINE_CSP_INSTALLER_PATH="${WINE_CSP_INSTALLER_PATH:-/opt/cryptopro/csp-installer
|
||||
WINE_CSP_LOG_LEVEL="${WINE_CSP_LOG_LEVEL:-Information}"
|
||||
WINE_PREFIX="${WINEPREFIX:-$HOME/.wine}"
|
||||
DISPLAY="${DISPLAY:-:99}"
|
||||
CSP_DOWNLOAD_MARKER="${WINE_CSP_INSTALLER_PATH}.downloaded"
|
||||
CRYPTOPRO_DOWNLOAD_DIR="${CRYPTOPRO_DOWNLOAD_DIR:-/opt/cryptopro/downloads}"
|
||||
CRYPTOPRO_DOWNLOAD_MARKER="${CRYPTOPRO_DOWNLOAD_MARKER:-${CRYPTOPRO_DOWNLOAD_DIR}/.downloaded}"
|
||||
CRYPTOPRO_FETCH_ON_START="${CRYPTOPRO_FETCH_ON_START:-1}"
|
||||
|
||||
# Marker files
|
||||
CSP_INSTALLED_MARKER="${WINE_PREFIX}/.csp_installed"
|
||||
@@ -73,6 +77,37 @@ initialize_wine() {
|
||||
log "Wine prefix initialized successfully"
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# CryptoPro Linux Downloads (Playwright-driven)
|
||||
# ------------------------------------------------------------------------------
|
||||
download_linux_packages() {
|
||||
if [[ "${CRYPTOPRO_FETCH_ON_START}" == "0" ]]; then
|
||||
log "Skipping CryptoPro Linux fetch (CRYPTOPRO_FETCH_ON_START=0)"
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [[ -f "${CRYPTOPRO_DOWNLOAD_MARKER}" && "${CRYPTOPRO_FORCE_DOWNLOAD:-0}" != "1" ]]; then
|
||||
log "CryptoPro download marker present at ${CRYPTOPRO_DOWNLOAD_MARKER}; skipping fetch"
|
||||
return 0
|
||||
fi
|
||||
|
||||
log "Ensuring CryptoPro Linux packages via Playwright (dry-run unless CRYPTOPRO_DRY_RUN=0)"
|
||||
export CRYPTOPRO_DOWNLOAD_MARKER
|
||||
export CRYPTOPRO_OUTPUT_DIR="${CRYPTOPRO_DOWNLOAD_DIR}"
|
||||
export CRYPTOPRO_UNPACK="${CRYPTOPRO_UNPACK:-1}"
|
||||
|
||||
if /usr/local/bin/download-cryptopro.sh; then
|
||||
if [[ "${CRYPTOPRO_DRY_RUN:-1}" != "0" ]]; then
|
||||
log "CryptoPro downloader ran in dry-run mode; set CRYPTOPRO_DRY_RUN=0 to fetch binaries"
|
||||
else
|
||||
[[ -f "${CRYPTOPRO_DOWNLOAD_MARKER}" ]] || touch "${CRYPTOPRO_DOWNLOAD_MARKER}"
|
||||
log "CryptoPro Linux artifacts staged in ${CRYPTOPRO_DOWNLOAD_DIR}"
|
||||
fi
|
||||
else
|
||||
log_error "CryptoPro Playwright download failed"
|
||||
fi
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# CryptoPro CSP Installation
|
||||
# ------------------------------------------------------------------------------
|
||||
@@ -83,6 +118,15 @@ install_cryptopro() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Attempt to download installer if missing (dry-run by default)
|
||||
if [[ ! -f "${WINE_CSP_INSTALLER_PATH}" ]]; then
|
||||
log "CryptoPro CSP installer not found at ${WINE_CSP_INSTALLER_PATH}; attempting crawl/download (dry-run unless CRYPTOPRO_DRY_RUN=0)."
|
||||
if ! CRYPTOPRO_OUTPUT="${WINE_CSP_INSTALLER_PATH}" /usr/local/bin/fetch-cryptopro.py; then
|
||||
log_error "CryptoPro CSP download failed; continuing without CSP (limited mode)"
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check if installer is available
|
||||
if [[ ! -f "${WINE_CSP_INSTALLER_PATH}" ]]; then
|
||||
log "CryptoPro CSP installer not found at ${WINE_CSP_INSTALLER_PATH}"
|
||||
@@ -201,6 +245,7 @@ main() {
|
||||
log "=========================================="
|
||||
|
||||
validate_environment
|
||||
download_linux_packages
|
||||
initialize_wine
|
||||
|
||||
# Only attempt CSP installation in full mode
|
||||
|
||||
Reference in New Issue
Block a user