---
# [샘플] 셸 실행 + 프로세스 제어

property:
  workspace: /path/to/project
  serverPort: 8080

pipeline:
  id: main
  workflow:
  - exe: check-port       # 포트 사용 중인지 확인
  - if:
      condition-string: <!property.portPid> != null
      on-true:
      - exe: kill-process  # 기존 프로세스 종료
  - exe: run-server       # 서버 프로세스 실행
  - exe: shell-cmd        # 셸 명령 실행
  - exe: shell-script     # 셸 스크립트 파일 실행

commands:
# 포트 사용 여부 확인
- command: ProcessPortUse
  id: check-port
  param:
    port: <!property.serverPort>
    setPid: <@property.portPid>

# 특정 포트 프로세스 종료
- command: ProcessKill
  id: kill-process
  param:
    pid: <!property.portPid>

# 프로세스 백그라운드 실행
- command: ProcessRun
  id: run-server
  param:
    executable: ./server
    param: "--port <!property.serverPort>"

# 인라인 셸 명령 (여러 줄)
- command: Shell
  id: shell-cmd
  param:
    commands:
    - cd <!property.workspace>
    - echo "현재 디렉토리: $(pwd)"
    - ls -la
    setMessage: <@property.shellOutput>

# 외부 셸 스크립트 파일 실행
- command: ShellFile
  id: shell-script
  param:
    path: <!property.workspace>/scripts/deploy.sh
