environment variable

수요일에 Alfred-toot이라는 스크립트를 올렸습니다. 알프레드를 통해서 마스토돈에 툿을 날릴 수 있는 워크플로우인데요. 과정 중에 인스턴스 서버와 통신해서 받아온 값을 환경 변수(Environmental Variable)에 저장하는 부분이 있어서 정리해둡니다.

우선 스크립트가 파이선이었기 때문에 파이선을 기준으로 작성합니다. 파이선 버전은 3.6.5였으며 이외 언어는 원문에 적혀있습니다.

환경 변수 읽어오기

환경 변수는 기본적으로 Workflow 폴더 내의 Info.plist 파일 안에 저장됩니다. 따라서 Info.plist 파일을 직접 읽으면 환경 변수를 가져올 수 있죠.

from plistlib import readPlist

info = readPlist('info.plist')
variable_name = info['variables']['variable_name_in_env_variable']

하지만 단순히 환경 변수를 읽는 것이만이라면 기본 라이브러리인 os를 쓸 수도 있습니다.

import os

variable_name = os.getenv('variable_name_in_env_variable')

환경 변수 쓰기

환경 변수를 쓰는 것은 환경 변수 읽기의 첫 번째 방법의 연장선상에 있습니다.

from plistlib import readPlist, writePlist

info = readPlist('info.plist')
info['variables']['variable_name_in_env_variable'] = 'variable_value'

writePlist(info, 'info.plist')

변수 삭제

from plistlib import readPlist, writePlist

info = readPlist('info.plist')
del info['variables']['variable_name_in_env_variable']

writePlist(info, 'info.plist')

유의사항

환경변수를 쓰는 경우 변경된 값은 다음 워크플로우 구동 시에 적용됩니다.


via