Pet과 Gist를 이용한 Command snippet 동기화하기

Pet?

Go 기반의 command-line snippet mananger입니다. fzf와 유사한 인터페이스를 가지고 있고, 자주 사용하는 명령을 좀 더 쉽게 저장/관리하고 사용할 수 있습니다. 설치/사용법에 대한 내용은 제가 올 여름에 썼던 글을 참고해주세요!


Gist에서 pet-snippet.toml 생성하기

https://gist.github.com 에서 toml 파일을 하나 만들어줍니다. 이 파일은 pet에서 사용하는 toml 파일이 gist로 관리될 수 있도록 하기 위한 파일입니다.

Gist read/write를 위한 access_token 생성

pet에서 sync 명령을 통해 gist의 toml 파일과 동기화하기 위해선, gist에 대한 write/read 권한이 있는 토큰을 이용하여 업로드/다운로드 작업이 필요합니다. 용도에 맞게 하나 만들어주셔서 사용하시면 됩니다.

Settings > Developer settings > Personal access tokens

Pet의 config 설정하기

보통 기본적으로 ~/.config/pet/config.toml 경로에 파일이 있습니다. 직접 편집하셔도 되고, 아래 명령으로 열어서 편집하셔도 됩니다.

pet configure

Gist 관련 옵션 정보는 아래와 같습니다. file_name은 snippet 파일이 저장/관리될 파일명이며 위에서 pet-snippet.toml로 만들었으니 동일하게 이름을 적어줍니다. access_token은 아까 gist 권한을 준 토큰이며, gist_id는 gist에서 파일에 접근했을 때 나타나는 고유값입니다. 나머지 publicauto_sync는 말 그대로 해당 gist를 퍼블릭으로 사용할건지, 자동으로 동기화할껀지 명시합니다.

[Gist]
 file_name = "pet-snippet.toml"
 access_token = "****"
 gist_id = "****"
 public = false
 auto_sync = false

gist_id는 주소표시줄에서 볼 수 있어요 / 이미지에선 모자이크 부분

테스팅

설정은 다 되었으니 잘 동작하는지 테스트해봅시다.

[ 빈 파일로 동기화 ]

pet sync
Download success

[ 테스트를 위해 임의 명령어 추가 ]

pet new
Command> ls
Description> ls

[ 동기화 ]

pet sync
Upload success