기본 변수 설정
set ENV_NAME=topik
FOR /F "delims=" %%i IN ('conda info --base') DO SET CONDA_BASE=%%i
set PYTHON_VERSION=3.12.7
CONDA_BASE는 명령어를 통한 conda의 경로를 저장하기위한 코드
conda 설치 여부 확인
sh -z 옵션은 뒤따르는 문자열이 비어있는지(length가 0인지) 확인한다.
if [ -z "$(command -v conda)" ];
bat - conda 버전 확인 명령어를 실행하여 에러코드를 반환 / 조건문으로 체킹 (이때 0이면 정상, 그 외 반환값은 에러임)
call conda --version >nul 2>&1
IF %errorlevel% NEQ 0 (
echo Conda is not available. Please ensure Conda is installed.
pause
)
확인 후 콘다환경실행
sh - sh파일을 통해 Conda 환경에서 명령어를 사용 가능하도록 초기화 스크립트이다
source $(conda info --base)/etc/profile.d/conda.sh
bat - 윈도우환경에서는 sh대신 bat파일에 activate를 통해 초기화 및 활성화 작업을 해준다
call %CONDA_BASE%\condabin\conda.bat activate
topik 가상환경이 존재하는지 확인
sh - 리눅스환경에서 grep 및 -q를 통해 ENV_NAME의 가상환경이 존재하는지 확인
if conda info --envs | grep -q "^$ENV_NAME";
bat - grep 대신 find로 대체하여 사용하여, 파일이 존재하지 않을때 error_level을 통해 구분하고자 하였음. 하지만 find는 찾지 못하더라도 에러가아닌 '없다'라는 값을 돌려주어 항상 error_level은 0으로 조건문으로 확인하지 못함.
=> 기존에 변수로 저장해두었던 CONDA_BASE를 활용해 직접 찾아들어가기로 결정
IF EXIST "%CONDA_BASE%\envs\%ENV_NAME%\" (
그외 조건문 전체는 코드를 보면 이해가능 ㅎ.ㅎ
conda 환경 생성
sh - 말그대로 conda 가상환경 topik 생성 과정
# Conda 환경 생성
echo "Creating Conda environment '$ENV_NAME' with Python $PYTHON_VERSION..."
conda create -n $ENV_NAME python=$PYTHON_VERSION -y
# Conda 환경 활성화
echo "Activating environment '$ENV_NAME'..."
conda activate $ENV_NAME
bat - echo 에 "" 없애고, 함수 call로 호출해주는걸로 수정
::가상환경 생성
echo Creating Conda environment %ENV_NAME% with Python %PYTHON_VERSION%...
call conda create -n %ENV_NAME% python=%PYTHON_VERSION% -y
::가상환경 시작
echo Activating environment %ENV_NAME%...
call conda activate %ENV_NAME%
requirements.txt 설치
sh - -f 를 통해 파일 존재여부 확인
if [ -f "requirements.txt" ];
bat - EXIST 를 통해 파일존재여부 확인
IF EXIST "requirements.txt" (