92 lines
2.6 KiB
Batchfile
92 lines
2.6 KiB
Batchfile
@echo off
|
|
chcp 65001 >nul
|
|
|
|
echo ========================================
|
|
echo Semgrep Skill Offline Installer
|
|
echo ========================================
|
|
echo.
|
|
|
|
set SCRIPT_DIR=%~dp0
|
|
set SOURCE_DIR=%SCRIPT_DIR%installations
|
|
set USER_HOME=%USERPROFILE%
|
|
set SKILL_DIR=%USER_HOME%\.agents\skills\semgrep
|
|
|
|
echo [1/5] Creating skill directory...
|
|
if not exist "%SKILL_DIR%" mkdir "%SKILL_DIR%"
|
|
echo Created: %SKILL_DIR%
|
|
|
|
echo.
|
|
echo [2/5] Copying SKILL files...
|
|
set SEMGREP_SKILL_SOURCE=%SOURCE_DIR%\semgrep_skill
|
|
copy /Y "%SEMGREP_SKILL_SOURCE%\SKILL.md" "%SKILL_DIR%\SKILL.md"
|
|
|
|
if not exist "%SKILL_DIR%\references" mkdir "%SKILL_DIR%\references"
|
|
if exist "%SEMGREP_SKILL_SOURCE%\references" copy /Y "%SEMGREP_SKILL_SOURCE%\references\*.*" "%SKILL_DIR%\references\"
|
|
|
|
if not exist "%SKILL_DIR%\workflows" mkdir "%SKILL_DIR%\workflows"
|
|
if exist "%SEMGREP_SKILL_SOURCE%\workflows" copy /Y "%SEMGREP_SKILL_SOURCE%\workflows\*.*" "%SKILL_DIR%\workflows\"
|
|
|
|
if not exist "%SKILL_DIR%\scripts" mkdir "%SKILL_DIR%\scripts"
|
|
if exist "%SEMGREP_SKILL_SOURCE%\scripts" copy /Y "%SEMGREP_SKILL_SOURCE%\scripts\*.*" "%SKILL_DIR%\scripts\"
|
|
|
|
echo Copied all skill files
|
|
|
|
echo.
|
|
echo [3/5] Copying offline rules...
|
|
set SEMGREP_RULES_SOURCE=%SOURCE_DIR%\semgrep-offline-rules
|
|
if exist "%SEMGREP_RULES_SOURCE%" (
|
|
if not exist "%SKILL_DIR%\semgrep-offline-rules" (
|
|
xcopy /E /I /Y "%SEMGREP_RULES_SOURCE%" "%SKILL_DIR%\semgrep-offline-rules"
|
|
)
|
|
echo Rules copied to: %SKILL_DIR%\semgrep-offline-rules
|
|
) else (
|
|
echo WARNING: semgrep-offline-rules not found
|
|
)
|
|
|
|
echo.
|
|
echo [4/5] Setting environment variables...
|
|
echo.
|
|
|
|
set "SEMGREP_OFFLINE_RULES_PATH=%SKILL_DIR%\semgrep-offline-rules\third-party"
|
|
set "SEMGREP_OFFLINE=true"
|
|
|
|
setx SEMGREP_OFFLINE_RULES_PATH "%SKILL_DIR%\semgrep-offline-rules\third-party"
|
|
setx SEMGREP_OFFLINE "true"
|
|
|
|
echo SEMGREP_OFFLINE_RULES_PATH=%SEMGREP_OFFLINE_RULES_PATH%
|
|
echo SEMGREP_OFFLINE=%SEMGREP_OFFLINE%
|
|
echo (Environment variables set for current user via setx)
|
|
|
|
echo.
|
|
echo [5/5] Verification...
|
|
echo.
|
|
if exist "%SKILL_DIR%\SKILL.md" (
|
|
echo [OK] SKILL.md
|
|
) else (
|
|
echo [FAIL] SKILL.md
|
|
)
|
|
|
|
if exist "%SKILL_DIR%\references\rulesets.md" (
|
|
echo [OK] references
|
|
) else (
|
|
echo [FAIL] references
|
|
)
|
|
|
|
if exist "%SKILL_DIR%\workflows\scan-workflow.md" (
|
|
echo [OK] workflows
|
|
) else (
|
|
echo [FAIL] workflows
|
|
)
|
|
|
|
echo.
|
|
echo ========================================
|
|
echo Installation Complete!
|
|
echo ========================================
|
|
echo.
|
|
echo Skill location: %SKILL_DIR%
|
|
echo.
|
|
echo Environment variables have been set for your user account.
|
|
echo Please restart your terminal or VSCode to apply them.
|
|
echo.
|
|
pause
|