77 lines
2.1 KiB
Python
77 lines
2.1 KiB
Python
# -*- coding: utf-8 -*- #
|
|
# Copyright 2021 Google LLC. All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
"""Library of methods for manipulating virtualenv setup."""
|
|
|
|
from __future__ import absolute_import
|
|
from __future__ import division
|
|
from __future__ import print_function
|
|
from __future__ import unicode_literals
|
|
|
|
import os
|
|
import platform
|
|
|
|
from googlecloudsdk.core.util import files
|
|
from googlecloudsdk.core.util import platforms
|
|
import six
|
|
|
|
# Python modules to install into virtual env environment
|
|
MODULES = [
|
|
'crcmod',
|
|
'grpcio',
|
|
'pyopenssl==24.2.1',
|
|
'google_crc32c',
|
|
'certifi',
|
|
'https://github.com/googleapis/enterprise-certificate-proxy/releases/download/v0.3.6/cryptography-42.0.7-{}.whl'
|
|
.format(
|
|
'cp39-abi3-macosx_10_12_universal2'
|
|
if platform.processor() == 'arm'
|
|
else 'cp37-abi3-macosx_10_12_x86_64'
|
|
),
|
|
'setuptools',
|
|
]
|
|
|
|
# Enable file name.
|
|
ENABLE_FILE = 'enabled'
|
|
|
|
|
|
def IsPy2():
|
|
"""Wrap six.PY2, needed because mocking six.PY2 breaks test lib things."""
|
|
return six.PY2
|
|
|
|
|
|
def IsWindows():
|
|
"""Wrapped because mocking directly can break test lib things."""
|
|
return platforms.OperatingSystem.IsWindows()
|
|
|
|
|
|
def VirtualEnvExists(ve_dir):
|
|
"""Returns True if Virtual Env already exists."""
|
|
return os.path.isdir(ve_dir)
|
|
|
|
|
|
def EnableFileExists(ve_dir):
|
|
"""Returns True if enable file exists."""
|
|
return os.path.exists('{}/{}'.format(ve_dir, ENABLE_FILE))
|
|
|
|
|
|
def CreateEnableFile(ve_dir):
|
|
"""Create enable file."""
|
|
files.WriteFileContents('{}/{}'.format(ve_dir, ENABLE_FILE), 'enabled')
|
|
|
|
|
|
def RmEnableFile(ve_dir):
|
|
"""Remove enable file."""
|
|
os.unlink('{}/{}'.format(ve_dir, ENABLE_FILE))
|