좋은 gitignore 편집기를 만들 수 없을 것 같아서 MVP 같은 걸 만들어 봤어요.
9738 단어 gitignore.ioPythongitignore
시작하다gitignore의 약간의 고민
일의 발단
프로젝트Initial commit
를 마치고 천천히 하는 작업으로 "gitignore.io부터 만들어서 괜찮아 보이는.gitignore
"이런 일이 있었죠?1 2
있죠?
시간의 추이에 따라.gitignore가 변하고 있어...가끔
처음처럼 활용하면 괜찮을 것 같아요.
이런 일도 생길 거야.
가끔 나와요.
(1)의 경우 gitignore를 다시 한 번 반복합니다.반드시 IO로 재생성해야 합니다.
(2)의 경우 템플릿
.gitignore
이 생성된 곳에 기술해야 한다.이렇게 되면 매번 처리할 때마다 약간의 번거로움을 느낄 수 있다.대개
승:깨진 생각과 MVP 느낌.
심혈을 기울이다
그래서 ".gitignore
편집할 때'언어명'과'언어의 ignore'가 잘 느껴지도록 간단하고 간단한 편집을 할 수 있을까 고민했다.lazygit 같은 UI 멋있잖아요.
저장할 때 API로 마음대로 전화하세요.io+모드로 구축가능하면 파생된 아이노어 타입 등을 함께 넣으면 편하겠죠.
그럼에도 불구하고 아직 이런 식으로 편집기를 만들 능력은 없다.
시간이 걸리지 않고 그런 느낌이 든다(=MVP §63;)해 보다
초지저분하게 MVP의 초간단 설치를 시도했다.
이쪽=>vigi = vi gitignore
vigi
명령을 실행할 때
# ~~~~~~
vim
로 이런 느낌의 파일을 엽니다..idea
# ~~~~~~
python
virtualenv
이렇게 편집vim
이 끝나면.idea
# ~~~~~~
# https://www.gitignore.io/api/python,virtualenv の中身
이런 상태.gitignore
.그나저나 이 상태에서 명령을 실행하면gitignore.io 부분은 언어의 정보만 될 뿐입니다.편집하기 쉬울 것 같아서요.
이런 느낌 vigi
라는 이름으로 임시 파일을 제작하고 편집하여 저장한 후 .gi
스타일로 변환import subprocess
from pathlib import Path
from subprocess import CalledProcessError, PIPE
def main():
gi_path = Path.cwd() / '.gi'
gitignore_path = Path.cwd() / '.gitignore'
try:
# Convert from ``.gitignore`` to ``.gi``
if gitignore_path.exists():
encode_gitignore(gitignore_path, gi_path)
else:
with gi_path.open('w') as fp:
fp.write(dedent(gi_template).strip())
# Spawn vim
vim_args = ['/usr/bin/vim', str(gi_path)]
vim_proc = subprocess.run(vim_args, check=True)
# Convert from ``.gi`` to ``.gitignore``
decode_gitignore(gi_path, gitignore_path)
except CalledProcessError:
pass
finally:
# Remove ``.gi``
gi_path.unlink()
부르다
.gitignore
에서 호출subprocess.run
,vim
예외 없이 OK의 대략적인 스타일.가볍고 좋아요.
Called Process Error를 남기지 않음
.gi
~try
를 사용하여 최종적으로finally
파일을 버린다.오류라면 편집하지 않기 때문.gi
이므로 환경을 고려합니다.
재료를 기초로 하다.gitignore 만들기
.gitignore
파일은 이때 파일 시스템에서 흔히 볼 수 있기 때문에 보통 파일로 열리는 것 같다.
그리고 언어에 대한 정보를gitignore에 집합합니다.IO에 전하다.
HTTP 상태가 404인 경우에만 일반과 동일한 응답 저장
주인은 존재하지 않는다는 메시지가 담긴 경우가 모두 404가 됐기 때문이다.
유일하다고 할 수 있으니 조금만 신경 써.def decode_gitignore(src, dest):
custom = []
online = []
with src.open() as fp:
# .giファイルを開いて、デリミタの前後を分けるなど
if online:
url = f'https://www.gitignore.io/api/{",".join(online)}'
req = Request(url, None, headers={'User-Agent': 'vigi'})
try:
resp = urlopen(req)
custom.append(resp.read().decode())
except HTTPError as err:
if err.code == 404:
custom.append(resp.read().decode())
raise err
with dest.open('w') as fp:
fp.write('\n'.join(custom))
결:사용감 따위
우선.gi
프로젝트 내vigi
는 이 명령을 바탕으로 제작되었다.
편집할 때 표시되는 줄 수를 대폭 줄이는 것이 장점이다.
그런 의미에서 MVP 작업은 이미 끝났다.
그러나 언어 모판에 어떤 패턴이 포함되어 있는지 끝내지 않으면.gitignore
의 전환은 모른다
더 개발하고 싶다면 패턴 후보에서 언어 마스터를 잘 끌어내야 한다
정말 좋은 물건인지 아닌지 모르겠다.어쩌면 어떤 언어의 훈련에 적합할까요?
프로젝트 템플릿을 만드신 분은 잠시 잊으세요↩
.gitignore
관리도 가능하지만 이것도 잠시 잊으세요↩
Reference
이 문제에 관하여(좋은 gitignore 편집기를 만들 수 없을 것 같아서 MVP 같은 걸 만들어 봤어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/attakei/items/ab18ff5b421151e8c152
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import subprocess
from pathlib import Path
from subprocess import CalledProcessError, PIPE
def main():
gi_path = Path.cwd() / '.gi'
gitignore_path = Path.cwd() / '.gitignore'
try:
# Convert from ``.gitignore`` to ``.gi``
if gitignore_path.exists():
encode_gitignore(gitignore_path, gi_path)
else:
with gi_path.open('w') as fp:
fp.write(dedent(gi_template).strip())
# Spawn vim
vim_args = ['/usr/bin/vim', str(gi_path)]
vim_proc = subprocess.run(vim_args, check=True)
# Convert from ``.gi`` to ``.gitignore``
decode_gitignore(gi_path, gitignore_path)
except CalledProcessError:
pass
finally:
# Remove ``.gi``
gi_path.unlink()
def decode_gitignore(src, dest):
custom = []
online = []
with src.open() as fp:
# .giファイルを開いて、デリミタの前後を分けるなど
if online:
url = f'https://www.gitignore.io/api/{",".join(online)}'
req = Request(url, None, headers={'User-Agent': 'vigi'})
try:
resp = urlopen(req)
custom.append(resp.read().decode())
except HTTPError as err:
if err.code == 404:
custom.append(resp.read().decode())
raise err
with dest.open('w') as fp:
fp.write('\n'.join(custom))
우선
.gi
프로젝트 내vigi
는 이 명령을 바탕으로 제작되었다.편집할 때 표시되는 줄 수를 대폭 줄이는 것이 장점이다.
그런 의미에서 MVP 작업은 이미 끝났다.
그러나 언어 모판에 어떤 패턴이 포함되어 있는지 끝내지 않으면
.gitignore
의 전환은 모른다더 개발하고 싶다면 패턴 후보에서 언어 마스터를 잘 끌어내야 한다
정말 좋은 물건인지 아닌지 모르겠다.어쩌면 어떤 언어의 훈련에 적합할까요?
프로젝트 템플릿을 만드신 분은 잠시 잊으세요↩
.gitignore
관리도 가능하지만 이것도 잠시 잊으세요↩Reference
이 문제에 관하여(좋은 gitignore 편집기를 만들 수 없을 것 같아서 MVP 같은 걸 만들어 봤어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/attakei/items/ab18ff5b421151e8c152텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)