명령 생활을 구성

9776 단어
자주 사용하는 명령을 정리하여 CLI 생산성을 높일 수 있도록 Kut을 만들었습니다. 나는 최근에 많은 작업을 했고 테스터/기고자/비평가를 찾고 있습니다!

Github: https://github.com/bettercallshao/kut

Kut은 템플릿 명령의 YAML 리포지토리에서 읽고 사용자가 런타임에 제공된 인수를 사용하여 명령을 렌더링하고 실행할 수 있도록 합니다. 그것은에 도움이 될 수 있습니다
  • 일상적인 작업을 위해 긴 명령을 반복해서 다시 입력하지 마십시오.
  • 버전 제어 및 공유 명령.

  • 설치



    Linux 및 Mac ~ Homebrew .

    brew install bettercallshao/tap/kut
    


    Scoop을 통한 Windows .

    scoop bucket add bettercallshao https://github.com/bettercallshao/scoop-bucket
    scoop install bettercallshao/kut
    


    또는 releases에서 최신 zip을 다운로드하고 압축을 푼 다음 시스템 경로에 바이너리 파일을 저장합니다.

    빠른 시작



    데모 메뉴를 수집하여 시작하십시오.

    kut i -s https://raw.githubusercontent.com/bettercallshao/kut-menus/master/python-demo.yaml
    kut i -s https://raw.githubusercontent.com/bettercallshao/kut-menus/master/developer-demo.yaml
    

    kut h 를 실행하여 명령 목록을 확인하십시오.

    NAME:
       kut - Run commands easily.
    
    USAGE:
       kut [global options] command [command options] [arguments...]
    
    VERSION:
       v0.5.2-20201123005537
    
    COMMANDS:
       start, s           Starts executor for a menu
       ingest, i          Ingests menu locally from a source
       developer-demo, d  Developer commands for demo
       python-demo, p     Python commands for demo
       help, h            Shows a list of commands or help for one command
    
    GLOBAL OPTIONS:
       --help, -h     show help (default: false)
       --version, -v  print the version (default: false)
    


  • start , ingest , help , --help , --version 는 전역 인수입니다.
  • python-demodeveloper-demo는 명령 정의입니다.
  • python-demo에 의해 kut p -h에 무엇이 있는지 확인하십시오.

    NAME:
       kut python-demo - Python commands for demo
    
    USAGE:
       kut python-demo command [command options] [arguments...]
    
    COMMANDS:
       uuid, u                 Generate a UUID
       forex-rate, f           Print forex rates
       mortgage-calculator, m  Calculate mortgage payment
       bit-expander, b         Convert between decimal, hex, and bit representations
       csv-to-markdown, c      Convert a CSV to markdown table
       help, h                 Shows a list of commands or help for one command
    
    OPTIONS:
       --help, -h     show help (default: false)
       --version, -v  print the version (default: false)
    

    forex-ratekut p f -h와 무엇을 하는지 확인하십시오.

    NAME:
       kut python-demo forex-rate - Print forex rates
    
    USAGE:
       kut python-demo forex-rate [command options] [arguments...]
    
    OPTIONS:
       --base value, -b value     Base currency (default: "USD")
       --symbols value, -s value  Comma separated currency symbol list (default: "CAD,GBP")
       --dry, -d                  render command but don't run (default: false)
       --help, -h                 show help (default: false)
    


  • --dry , --helpkut 에 의해 정의된 플래그입니다.
  • --base , --symbols 는 기본값이 있는 입력 인수입니다.

  • EUR에서 JPY 및 AUD로 시도해 보겠습니다.

    $ kut p f -b EUR -s JPY,AUD
    On 2020-11-13
    1 EUR can buy 123.88 JPY
    1 EUR can buy 1.63 AUD
    

    --dry 플래그를 사용하여 실제로 실행된 항목을 확인합니다.

    $ kut p f -b EUR -s AUD -d
    template: python3 -u -c "
    import urllib.request
    import urllib.parse
    import json
    
    url = 'https://api.exchangeratesapi.io/latest?base={{.base}}&symbols={{.symbols}}'
    r = json.load(urllib.request.urlopen(url))
    
    date = r['date']
    rates = r['rates']
    
    print(f'On {date}')
    print('\n'.join(
      f'1 {{.base}} can buy {rates[symbol]:.2f} {symbol}'
      for symbol in rates
    ))
    "
    
    rendered: python3 -u -c "
    import urllib.request
    import urllib.parse
    import json
    
    url = 'https://api.exchangeratesapi.io/latest?base=EUR&symbols=AUD'
    r = json.load(urllib.request.urlopen(url))
    
    date = r['date']
    rates = r['rates']
    
    print(f'On {date}')
    print('\n'.join(
      f'1 EUR can buy {rates[symbol]:.2f} {symbol}'
      for symbol in rates
    ))
    "
    


    먼저 명령 템플릿이 인쇄된 다음 입력 인수로 렌더링된 명령이 인쇄되었습니다. 명령은 $HOME/.kut/menus/python-demo.yaml에 정의되어 있습니다.

    name: python-demo
    version: v0.1.0
    help: Python commands for demo
    actions:
    - name: forex-rate
      help: Print forex rates
      template: |
        python3 -u -c "
        import urllib.request
        import urllib.parse
        import json
    
        url = 'https://api.exchangeratesapi.io/latest?base={{.base}}&symbols={{.symbols}}'
        r = json.load(urllib.request.urlopen(url))
    
        date = r['date']
        rates = r['rates']
    
        print(f'On {date}')
        print('\n'.join(
          f'1 {{.base}} can buy {rates[symbol]:.2f} {symbol}'
          for symbol in rates
        ))
        "
      params:
      - name: base
        help: Base currency
        value: USD
      - name: symbols
        help: Comma separated currency symbol list
        value: CAD,GBP
    


    이 파일에 추가하거나 $HOME/.kut/menus/에서 더 많은 YAML을 생성하여 더 많은 명령을 추가하십시오.

    웹 인터페이스



    Kut은 메뉴에 웹 기반 사용자 인터페이스를 제공하기 위해 kutd와 함께 실행할 수도 있습니다. Kutd는 kut 패키지의 일부로 설치되며 인수 없이 실행됩니다.

    [kutd] 2020/11/24 01:42:01 version: v0.5.2-20201123005537
    [kutd] 2020/11/24 01:42:01 starting kutd ...
    [kutd] 2020/11/24 01:42:01 listening on http://127.0.0.1:7171
    


    공식 도우미 메뉴를 사용하여 편의를 위해 kutd를 시작 서비스로 설치하는 것이 좋습니다.

    Windows의 경우(자세한 명령은 도움말 참조).

    kut i -s https://raw.githubusercontent.com/bettercallshao/kut-menus/master/windows-kutd.yaml
    kut windows-kutd startup-add
    


    Mac의 경우(자세한 명령은 도움말 참조).

    kut i -s https://raw.githubusercontent.com/bettercallshao/kut-menus/master/mac-kutd.yaml
    kut mac-kutd startup-add
    


    kutd가 실행되면 브라우저에서 http://127.0.0.1:7171을 방문하여 세 개의 섹션을 찾습니다.
  • 채널 - 각 채널은 연결할 kut ​​실행기의 자리 표시자입니다. 활성 연결 없이 방문하면 빈 메시지가 표시됩니다.
  • 메뉴 - 사용 가능한 각 메뉴를 JSON으로 볼 수 있습니다.
  • 수집 - kut와 동일한 수집 메뉴입니다.

  • 예를 들어 웹 인터페이스에서 csv-to-markdown 명령을 실행합니다. 먼저 터미널(python3 사용 가능)을 열고 kut 실행기를 kutd(기본적으로 채널 0)에 연결하여 python-demo 메뉴를 선언합니다.

    kut s -m python-demo
    


    로그가 인쇄되고 명령이 터미널을 차단하고 점유해야 합니다. 이제 페이지의 채널 0을 방문하여 csv-to-markdown 를 클릭하고 다음을 data 매개변수에 복사하고 실행을 누른 다음 마크다운을 토글하여 렌더링합니다.

    Name,Icon,Website
    Facebook,[![Website shields.io](https://img.shields.io/website-up-down-green-red/http/shields.io.svg)](),https://facebook.com/
    Twitter,[![Website shields.io](https://img.shields.io/website-up-down-green-red/http/shields.io.svg)](),https://twitter.com/home
    




    개발하다



    빌드하려면 golang을 설치하고 make를 실행합니다. CI는 GoReleaser 및 CircleCI로 구동됩니다.

    추가 정보



    kuthttps://bettercallshao.com/tags/kut/에 블로그 시리즈를 썼습니다.

    https://bettercallshao.com/author/로 연락주세요.

    좋은 웹페이지 즐겨찾기