Delta team/fix comment ui #10
+49
-7
@@ -9,7 +9,8 @@ rem install.bat --force dung lai moi truong ao tu dau
|
||||
rem
|
||||
rem Cai gi va cai o dau:
|
||||
rem %LOCALAPPDATA%\CoworkLocal\venv moi truong ao
|
||||
rem %LOCALAPPDATA%\CoworkLocal\launcher lien ket de import duoc goi
|
||||
rem %LOCALAPPDATA%\CoworkLocal\launcher\<khoa> lien ket de import duoc goi
|
||||
rem (mot khoa cho moi thu muc ma nguon)
|
||||
rem
|
||||
rem Vi sao KHONG dat venv trong repo: cac cong chat luong
|
||||
rem (scripts/check_orphan_modules.py, check_imports.py) quet TOAN BO cay thu
|
||||
@@ -88,10 +89,24 @@ if "%FORCE%"=="1" if exist "%VENV%" (
|
||||
rmdir /s /q "%VENV%" 2>nul
|
||||
)
|
||||
|
||||
rem Chi kiem file python.exe co ton tai la khong du: mot venv dung lai tu ban
|
||||
rem Python da bi nang cap hoac xoa van con nguyen file do, nhung chay vao la loi
|
||||
rem ngay. Goi thu mot lenh that de biet no con song.
|
||||
set "VENV_OK=0"
|
||||
if exist "%VENV%\Scripts\python.exe" (
|
||||
"%VENV%\Scripts\python.exe" -c "import sys" >nul 2>&1
|
||||
if not errorlevel 1 set "VENV_OK=1"
|
||||
)
|
||||
|
||||
if "!VENV_OK!"=="1" (
|
||||
echo [2/5] Môi trường ảo đã có — dùng lại
|
||||
) else (
|
||||
echo [2/5] Tạo môi trường ảo...
|
||||
if exist "%VENV%" (
|
||||
echo [2/5] Môi trường ảo cũ không chạy được — dựng lại từ đầu...
|
||||
rmdir /s /q "%VENV%" 2>nul
|
||||
) else (
|
||||
echo [2/5] Tạo môi trường ảo...
|
||||
)
|
||||
%PY% -m venv "%VENV%"
|
||||
if errorlevel 1 (
|
||||
echo [LỖI] Không tạo được môi trường ảo.
|
||||
@@ -135,9 +150,23 @@ if /I "%REPO_NAME%"=="cowork_local" (
|
||||
goto smoke
|
||||
)
|
||||
|
||||
if not exist "%LAUNCHER%" mkdir "%LAUNCHER%" >nul 2>&1
|
||||
rem Junction rieng cho TUNG thu muc ma nguon. Ban truoc dung dung mot duong
|
||||
rem dan cho ca may, nen hai ban checkout tranh nhau: cai chay sau tro junction
|
||||
rem ve minh, va tien trinh con cua cai chay truoc (may chu MCP MS365) se import
|
||||
rem ma nguon cua cai kia.
|
||||
set "REPO_KEY="
|
||||
for /f "delims=" %%K in ('%PY% -c "import hashlib,os,sys;print(hashlib.sha1(os.path.normcase(os.path.abspath(sys.argv[1])).encode()).hexdigest()[:10])" "%REPO%" 2^>nul') do set "REPO_KEY=%%K"
|
||||
if not defined REPO_KEY set "REPO_KEY=default"
|
||||
set "PKGROOT=%LAUNCHER%\!REPO_KEY!"
|
||||
|
||||
rem Don junction dung chung cua ban cu: de lai la mot cai bay — mot run.bat cu
|
||||
rem o thu muc khac se dung lai no va chay nham ma nguon. rmdir KHONG co /s: voi
|
||||
rem junction thi no xoa lien ket, khong xoa noi dung dich.
|
||||
if exist "%LAUNCHER%\cowork_local" rmdir "%LAUNCHER%\cowork_local" >nul 2>&1
|
||||
mklink /J "%LAUNCHER%\cowork_local" "%REPO%" >nul
|
||||
|
||||
if not exist "!PKGROOT!" mkdir "!PKGROOT!" >nul 2>&1
|
||||
if exist "!PKGROOT!\cowork_local" rmdir "!PKGROOT!\cowork_local" >nul 2>&1
|
||||
mklink /J "!PKGROOT!\cowork_local" "%REPO%" >nul
|
||||
if errorlevel 1 (
|
||||
echo [LỖI] Không tạo được liên kết thư mục.
|
||||
echo Thư mục "%REPO_NAME%" không phải tên gói Python hợp lệ nên
|
||||
@@ -145,7 +174,7 @@ if errorlevel 1 (
|
||||
echo mã nguồn thành "cowork_local".
|
||||
goto fail
|
||||
)
|
||||
echo [4/5] Đã tạo liên kết: %LAUNCHER%\cowork_local
|
||||
echo [4/5] Đã tạo liên kết: !PKGROOT!\cowork_local
|
||||
|
||||
rem --------------------------------------------------------------------------
|
||||
rem 5. Chay thu mot lan
|
||||
@@ -155,12 +184,25 @@ if "%USE_SYSTEM%"=="1" (set "RUNPY=%PY%") else (set "RUNPY="%VENV%\Scripts\pytho
|
||||
if /I "%REPO_NAME%"=="cowork_local" (
|
||||
for %%I in ("%REPO%\..") do set "PKGPATH=%%~fI"
|
||||
) else (
|
||||
set "PKGPATH=%LAUNCHER%"
|
||||
set "PKGPATH=!PKGROOT!"
|
||||
)
|
||||
|
||||
echo [5/5] Kiểm tra lại...
|
||||
set "PYTHONPATH=!PKGPATH!"
|
||||
%RUNPY% -c "import cowork_local, PySide6; print(' cowork_local + PySide6 nạp được')"
|
||||
rem Kiem ca DANH TINH, khong chi kiem import duoc: neu tren sys.path con mot thu
|
||||
rem muc khac cung ten "cowork_local" (mot ban checkout cu chang han) thi lenh
|
||||
rem import van chay tot, va ca buoc kiem tra nay se xanh trong khi ung dung
|
||||
rem dang chay tu ma nguon KHAC. Duong dan truyen qua bien moi truong de khoi
|
||||
rem phai boc dau nhay long nhau trong chuoi -c.
|
||||
set "EXPECT_REPO=%REPO%"
|
||||
%RUNPY% -c "import os,sys,cowork_local,PySide6; p=os.path.realpath(os.path.dirname(cowork_local.__file__)); e=os.path.realpath(os.environ['EXPECT_REPO']); print(' cowork_local + PySide6 nap duoc'); print(' goi doc tu: '+p); sys.exit(0 if p==e else 3)"
|
||||
if errorlevel 3 (
|
||||
echo [LỖI] Gói import được, nhưng KHÔNG phải từ thư mục mã nguồn này:
|
||||
echo mong đợi: %REPO%
|
||||
echo Trên PYTHONPATH hoặc site-packages đang có một "cowork_local" khác
|
||||
echo chen lên trước. Gỡ nó đi rồi chạy lại install.bat.
|
||||
goto fail
|
||||
)
|
||||
if errorlevel 1 (
|
||||
echo [LỖI] Cài xong nhưng vẫn chưa import được gói.
|
||||
goto fail
|
||||
|
||||
@@ -63,26 +63,64 @@ rem --------------------------------------------------------------------------
|
||||
rem 2. Duong dan de import duoc goi "cowork_local"
|
||||
rem
|
||||
rem Thu muc ma nguon phai mang dung ten "cowork_local" thi Python moi import
|
||||
rem duoc no. Neu khong, install.bat da tao mot junction; o day chi kiem tra va
|
||||
rem tu dung lai neu no bi xoa — de nguoi dung khong phai chay lai install.bat
|
||||
rem chi vi mot thu muc tam bi don.
|
||||
rem duoc no. Neu khong, ta tro mot junction toi no.
|
||||
rem
|
||||
rem Junction duoc TAO LAI moi lan chay, khong phai chi khi thieu. Ban truoc chi
|
||||
rem hoi "co ton tai khong", nen mot junction con lai tu checkout KHAC van duoc
|
||||
rem dung lai im lang: run.bat nam trong thu muc nay nhung ung dung chay tu thu
|
||||
rem muc kia. Trieu chung la "sua code xong chay van y nguyen" — mat rat lau moi
|
||||
rem nghi ra, vi khong co gi bao loi ca. Tao lai ton vai mili giay va bo han ca
|
||||
rem lop loi do. install.bat cung lam dung nhu vay.
|
||||
rem --------------------------------------------------------------------------
|
||||
rem Junction rieng cho TUNG thu muc ma nguon, khong dung chung mot cai.
|
||||
rem
|
||||
rem Ban truoc dung dung mot duong dan %LAUNCHER%\cowork_local cho ca may. Hai
|
||||
rem ban checkout thi tranh nhau no: cai chay sau tro junction ve minh, va tien
|
||||
rem trinh con cua cai chay truoc (may chu MCP MS365, sinh ra sau khi app da mo)
|
||||
rem se import ma nguon cua cai kia. Rat kho lan ra, vi khong co gi bao loi.
|
||||
rem
|
||||
rem Khoa lay tu bam SHA1 cua duong dan tuyet doi (normcase, nen khong phan biet
|
||||
rem hoa thuong nhu Windows). Moi thu muc ma nguon co mot khoa on dinh, khong
|
||||
rem bao gio dung chung.
|
||||
for %%I in ("%REPO%") do set "REPO_NAME=%%~nxI"
|
||||
if /I "%REPO_NAME%"=="cowork_local" (
|
||||
for %%I in ("%REPO%\..") do set "PKGPATH=%%~fI"
|
||||
) else (
|
||||
if not exist "%LAUNCHER%\cowork_local" (
|
||||
if not exist "%LAUNCHER%" mkdir "%LAUNCHER%" >nul 2>&1
|
||||
mklink /J "%LAUNCHER%\cowork_local" "%REPO%" >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo.
|
||||
echo [LỖI] Không tạo được liên kết thư mục. Chạy install.bat lại.
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
set "REPO_KEY="
|
||||
for /f "delims=" %%K in ('!RUNPY! -c "import hashlib,os,sys;print(hashlib.sha1(os.path.normcase(os.path.abspath(sys.argv[1])).encode()).hexdigest()[:10])" "%REPO%" 2^>nul') do set "REPO_KEY=%%K"
|
||||
if not defined REPO_KEY set "REPO_KEY=default"
|
||||
set "PKGPATH=%LAUNCHER%\!REPO_KEY!"
|
||||
if not exist "!PKGPATH!" mkdir "!PKGPATH!" >nul 2>&1
|
||||
if exist "!PKGPATH!\cowork_local" rmdir "!PKGPATH!\cowork_local" >nul 2>&1
|
||||
mklink /J "!PKGPATH!\cowork_local" "%REPO%" >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo.
|
||||
echo [LOI] Khong tao duoc lien ket thu muc:
|
||||
echo "!PKGPATH!\cowork_local" -> "%REPO%"
|
||||
echo.
|
||||
echo Thuong gap khi ma nguon nam tren o mang, hoac tren o dia dinh
|
||||
echo dang khong phai NTFS - junction khong tro sang duoc.
|
||||
echo Cach khac: chep ma nguon ve o dia trong may, hoac doi ten thu
|
||||
echo muc ma nguon thanh cowork_local la khong can junction nua.
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
set "PKGPATH=%LAUNCHER%"
|
||||
)
|
||||
|
||||
rem Chot lai: goi phai THAT SU nhin thay duoc qua duong dan vua dung. Khong co
|
||||
rem buoc nay thi mot junction hong chi hien ra duoi dang loi Python kho hieu
|
||||
rem ("'cowork_local' is a package and cannot be directly executed").
|
||||
if not exist "!PKGPATH!\cowork_local\__main__.py" (
|
||||
echo.
|
||||
echo [LOI] Khong tim thay cowork_local\__main__.py qua duong dan:
|
||||
echo "!PKGPATH!"
|
||||
echo.
|
||||
echo Ma nguon o "%REPO%" bi thieu file, hoac lien ket dang tro nham cho.
|
||||
echo Chay install.bat de dung lai tu dau.
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
rem --------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user