Oh my Tomtit - Raku에서 작성된 oh my zsh의 대안

5253 단어 shelltoolsrakulinux
Oh My Zsh은 사람들이 유용한 시나리오를 실행하여 터미널을 사용자 정의하고 일반적인 작업을 처리할 수 있도록 하는 상당히 인기 있는 생태계입니다.

몇 년 전에 나는 Tomtit을 만들었고 그 이후로 이것이 나를 괴롭히고 있습니다. ohmyzsh가 하는 것과 얼마나 유사한지 ...

글쎄요, 정확히는 아니지만 Raku에 쓰여져 있습니다.

ohmyzsh와의 간략한 비교


  • Tomit은 이식 가능한 스크립트를 작성하고 사용자의 요구를 충족시키기 위해 실행할 수 있습니다. ohmyzsh 플러그인과 동일한 기능
  • Zshell에 작성된 ohmyzsh 플러그인과 달리 Tomtit 플러그인은 유사한 Bash 또는 Sparrow(Tomtit이 빌드된 기반)에서 지원하는 많은other languages에서 작성할 수 있습니다
  • .
  • ohmyzsh 시나리오와 달리 Tomtit 시나리오는 Raku 스크립트로 실행되므로 고도로 사용자 정의할 수 있습니다. ohmyzsh에는 셸 별칭 또는 함수만 있습니다
  • .
  • Ohmyzh에는 275개 이상의 플러그인이 있는데 Sparrow가 - 216 플러그인을 가지고 있는 것보다 조금 더 많습니다. 그러나 Sparrow 유지 관리자가 저뿐이라는 점을 고려하면 그 차이는 그리 크지 않습니다 :-).

  • 간단한 예


    git로 작업할 때마다 작업을 쉽게 해주는 이 도우미가 필요합니다. Tomtit을 사용하면 다음과 같이 할 수 있습니다.

    tom --profile git
    


    산출:

    install git@commit ...
    install git@git-branch-delete ...
    install git@git-publish ...
    install git@git-summary ...
    install git@pull ...
    install git@push ...
    install git@set-git ...
    install git@status ...
    install git@update-branch-list ...
    


    그런 다음 이 프로젝트에 대한 내 git 구성을 설정합니다.

    tom --edit set-git
    



    #!raku
    
    task-run "set git", "git-base", %(
      email => '[email protected]',
      name  => 'Alexey Melezhik',
      config_scope => 'local',
      set_credential_cache => 'on'
    );
    


    그리고 그것을 적용하십시오:

    tom set-git
    


    산출:

    [repository] :: index updated from file:///root/repo/api/v1/index
    [set git] :: git credential.helper cache --timeout=3000000
    [set git] :: git user.email [email protected]
    [set git] :: git user.name Alexey Melezhik
    [task check] stdout match <git user.email [email protected]> True
    [task check] stdout match <git user.name Alexey Melezhik> True
    


    그게 다야!

    이제 내 구성을 git에 커밋하기만 하면 됩니다.

    echo ".cache" >> .gitignore
    git add .tom
    git commit -a -m "my tomtit helpers for git"
    git push
    


    Tomtit 프로필



    Tomtit 프로필은 범주별로 그룹화된 미리 정의된 사용자 스크립트입니다.

    tom --profile
    


    산출:

    ado
    azure
    git
    gitlab
    hello
    perl
    raku
    ruby
    yaml
    


    프로파일을 설치할 때 모든 스크립트를 .tom 디렉토리에 설치합니다. 예를 들어, git에 대해 했던 것처럼:

    tom --profile --list git
    


    산출:

    [profile scenarios]
    git@commit      installed: True
    git@git-branch-delete   installed: True
    git@git-publish installed: True
    git@git-summary installed: True
    git@pull        installed: True
    git@push        installed: True
    git@set-git     installed: True
    git@status      installed: True
    git@update-branch-list  installed: True
    

    git-* 디렉토리에 여러 .tom 스크립트가 있습니다.

    프로필 스크립트는 하나 이상의 Sparrow 플러그인을 호출하는 Raku 스크립트입니다. 그게 다야 Tomtit은 .tom/ Raku 스크립트에 대해 합리적인 스텁을 생성하지만 항상 자유롭게 편집할 수 있습니다.

    예를 들어 set-git에 대해 했던 것처럼:

    tom --edit set-git
    


    일부 상용구 코드를 생성할 수 있지만 필요에 따라 수정할 수 있습니다.

    결론



    Tomtit과 Sparrow는 위에서 언급한 장점이 있는 ohmyzsh의 합리적인 대안이 될 수 있습니다. 물론 쉘 별칭 내보내기와 같은 일부 기능은 Tomtit에서 작동하지 않지만(해결 방법이 있습니다) Tomtit을 통해 다른 명령줄 작업을 매우 효율적인 방식으로 실행할 수 있습니다.


    나는 프로젝트에 대한 새로운 (Raku?) 기여자를 찾고 있습니다.

    읽어주셔서 감사합니다.

    알렉세이.

    좋은 웹페이지 즐겨찾기