안녕하세요.
이번에는 shell command로 swift 파일의 특정 변수(상수)값을 바꿔보는 시간을 가져볼게요.
# 이게 왜 필요해...?
swift 파일의 값을 바꾸고 싶으면 직접 바꾸면 되지 왜 shell command까지 쓰면서 바꿔야 해...?
이런 의문이 들 수 있는데요.
맞는 말씀입니다.
근데 만약 전체 로직하고는 크게 연관 없지만 빌드(또는 배포)할 때 값이 바뀌어야 하는 경우라면 shell command로 자동화시키는 게 편할 수 있습니다.
예를 들어, 어떤 framework가 있고 framework 안에는 framework의 버전값을 출력해 주는 API가 있다고 해볼게요.
개발자가 직접 버전값을 수정하면 머지할 때 협업하는 사람하고 충돌이 발생할 가능성이 높으며, 버전값을 까먹고 수정 안 하는 경우도 생기겠죠?
뭐... 이런 상황을 고려했을 때, 스크립트로 자동화시키면 좋을 것이라 생각했고 간단한 shell command로 해결할 수 있어서 소개해보려고 합니다.
# sed command로 해결!
sed 명령어를 입력하면 변수값을 원하는 값으로 변경할 수 있습니다.
sed -i '' 's/{바꾸려고 하는 변수명} = .*/{바꾸려고 하는 변수명} = {원하는 값}/' {파일이름}
또는 이렇게 그룹을 사용해도 괜찮아요.
sed -i '' 's/\({바꾸려고 하는 변수명}\) = .*/\1 = {원하는 값}/' {파일이름}
## 예시
PublicClass.swift 파일의 VERSION 값을 "1.0.0" -> "2.0.0"으로 바꿔볼게요.
터미널에 아래 명령어를 실행시키면 변수값이 자동으로 바뀌게 됩니다. ^^
sed -i '' 's/\(public let VERSION: String\) =.*/\1 = "2.0.0"/' PublicClass.swift
(뭐... 당연히 PublicClass.swift 파일에 VERSION이란 변수가 하나 또 존재한다면 문제가 되겠지만... 그런 코드라면 고치는 게 좋겠죠..?)
# 참고
- https://www.ibm.com/docs/en/aix/7.2?topic=s-sed-command
이번 글은 여기서 마무리.
'기타' 카테고리의 다른 글
Python 크롤링으로 CGV 가장 마지막 예매 가능한 날짜 가져오기 (2) | 2023.03.11 |
---|---|
jenkins branch 설정방법 (0) | 2023.02.07 |
내 터미널 설정 (0) | 2022.11.23 |
Public Apple Framework들의 최소지원 버전을 볼 수 있는 사이트 (0) | 2022.06.18 |
Github PR 템플릿 생성 방법 (0) | 2022.05.22 |