go를 잘못해서 og를 입력했을 때, 거꾸로 Gopher군이 지나가는 명령

10769 단어 5gopher명령

개요



go ... 라고 치고 싶어서 og ... 그렇지?
그런 때에 좋은 느낌에 typo를 주의해 주는 og 커맨드를 만들었습니다! !

👇👇👇
기주 b. 코 m / 라멘 주니치 / 오 g
👆👆👆

sl 명령 같은 사람입니다 웃음

거동(2019/11/16에 gif 수정)




무려! 거꾸로 Gopher 군이 지나갑니다! 그냥 지나갈 거야!

og run main.go 같은 경우에도 용서없이 Gopher군은 지나갑니다!

Gopher 너 귀여운!

설치 (2019/11/15에 추가)



Go 환경이 있으면 go get에서 설치할 수 있습니다.
실행하려면 $GOPATH/bin 에 PATH가 다녔어야 합니다. (2019/11/16에 추가)
go get github.com/ramenjuniti/og

만드는 방법



이미지 준비





원래 이미지는 여기에서 받았습니다 htps : /// g g. 오 rg/도 c/고 p에 r/f 롱 t 빵. pg

AA 변환(아스키 아트 생성)으로 AA 생성


   D;;:;;:;;:;;:;:;:;;:;:;:;:;;:;;:;;:;;:;z
   $;:;:;::;::;:;;:;;:;;:;;:;;::;;::;;:;;;I
  .I;;:;;:;;:;;::;;:;:;:;;:;:;;:;:;:;::;;:I
  ,<;;::;:;;::;;:;;;;;;;;:;::;;:;;:;;;:;;;I
  ,(;;;:;::;:;;::;;j=1J71<;;;:;:;;::;:;:;:I
  J;;:;;;:;;::;;;;:r  ] .>;;;:;:;:;;:;:;;;r
  z;;::;:;;:;;:;;j=<?75?7~?I;;:;;:;;;:;:;<]
  (<;;;;;;:;;;;;;?+~(J-J-_(3;;;;;;::;;:;;+\
  ,(;:;:;j/7!''??1+?MMMMM1+?7771+<;;;:;;:j
  .P;;;;J!..       4;<<iJ        .4<;;:;;2 
.3;J<;;j\(M#Q       D;<2.MM5.      1:;;;j73,
$;jMN<;?|,WH3       $;:t.MM#       ,(;;jP;;?|
4<;T9TJ;?.        .J;;;?&         .t;;jM@:;+%
 (1++++Y+;?C+...J7<;;;:;;?i..  ..J>;jv<;;;j=
         .71+<;;;;;;;:;;;;;;;;;;<+J=  ?77!
             '_?771+++++++++?77!

코드 작성



물론 Go에서!

main.go
package main

import (
    "fmt"
    "os"
    "strings"
    "syscall"
    "time"

    "github.com/gosuri/uilive"

    "golang.org/x/crypto/ssh/terminal"
)

func main() {
    og := []string{
        "   D;;:;;:;;:;;:;:;:;;:;:;:;:;;:;;:;;:;;:;z  ",
        "   $;:;:;::;::;:;;:;;:;;:;;:;;::;;::;;:;;;I  ",
        "  .I;;:;;:;;:;;::;;:;:;:;;:;:;;:;:;:;::;;:I  ",
        "  ,<;;::;:;;::;;:;;;;;;;;:;::;;:;;:;;;:;;;I  ",
        "  ,(;;;:;::;:;;::;;j=1J71<;;;:;:;;::;:;:;:I  ",
        "  J;;:;;;:;;::;;;;:r  ] .>;;;:;:;:;;:;:;;;r  ",
        "  z;;::;:;;:;;:;;j=<?75?7~?I;;:;;:;;;:;:;<]  ",
        "  (<;;;;;;:;;;;;;?+~(J-J-_(3;;;;;;::;;:;;+|  ",
        "  ,(;:;:;j/7!''??1+?MMMMM1+?7771+<;;;:;;:j   ",
        "  .P;;;;J!..       4;<<iJ        .4<;;:;;2   ",
        ".3;J<;;j|(M#Q       D;<2.MM5.      1:;;;j73, ",
        "$;jMN<;?|,WH3       $;:t.MM#       ,(;;jP;;?|",
        "4<;T9TJ;?.        .J;;;?&         .t;;jM@:;+%",
        " (1++++Y+;?C+...J7<;;;:;;?i..  ..J>;jv<;;;j= ",
        "         .71+<;;;;;;;:;;;;;;;;;;<+J=  ?77!   ",
        "             '_?771+++++++++?77!             ",
    }
    ogw := len(og[0])

    tw, _, err := terminal.GetSize(syscall.Stdin)
    if err != nil {
        fmt.Fprintln(os.Stderr, err)
        os.Exit(1)
    }

    for i := range og {
        og[i] = strings.Repeat(" ", tw) + og[i]
    }

    writer := uilive.New()

    writer.Start()
    for i := 0; i <= tw+ogw; i++ {
        var out string
        for _, v := range og {
            if i < ogw {
                out += v[i:tw+i] + "\n"
            } else if i < len(v) {
                out += v[i:] + "\n"
            } else {
                out += "\n"
            }
        }
        fmt.Fprint(writer, out)
        time.Sleep(10 * time.Millisecond)
    }
    writer.Stop()
}

코드는 이것뿐! 간단!

terminal의 크기를 얻기 위해 미안해. rg / x / cryp 및 / sh / 테르 모두 l
terminal 출력을 실시간으로 업데이트하기 위해 기주 b. 코 m / 잔물결 / 우이 ゔ ぇ

요약



연구실에있을 때 문득 생각하고 심야 텐션으로 만들었습니다 만, 귀엽게 할 수 있었으므로 만족합니다 웃음

앞으로 시간이 있으면 움직임을 추가하고 싶습니다.

참고


  • ls를 실수로 dl을 입력했을 때 D 언어 군이 지나가는 명령
  • 진짜 golang을... 진짜 Gopher를 보여드리겠습니다.
  • Go 언어를 Web상에서 즐길 수 있는 Go Playground에서 SL 움직여 보았다.
  • 좋은 웹페이지 즐겨찾기