본문 바로가기
공부/Go

[Go/Homebrew] Go로 간단한 Homebrew 패키지 만들기

by haejang 2024. 4. 10.
728x90
728x90

 

 

# 목표

1. Go 써보기

2. Homebrew 패키지 만들어보기

 

-> 매우 간단한 커맨드라인 툴 만들어서 homebrew에 올려보기

 

# 결과물

brew tap suminhong/tap
brew install gohonglab

gohonglab

 

 

그냥 내 블로그 주소들 보여주는 커맨드라인 툴이다.

 

# 순서

1. go project 만들기

2. build파일 release에 올리기

3. Homebrew Fomula 작성

4. 테스트

 

# 해보자! 🚀

1. go project 만들기

참고 - https://github.com/suminhong/gohonglab

적절한 레포지토리를 만들고, 해당 폴더에 진입 후 아래 명령어로 go project 초기화를 시켜준다. (본인이 원하는 이름으로 초기화하면 됨)

go mod init suminhong/gohonglab

 

-> go.mod 파일이 생성됨

이후 main.go 파일을 만들어서, 아래와 같이 내 블로그 주소를 반환하는 메인 함수를 작성한다.

package main

import "fmt"

func main() {
	fmt.Println("gohonglab 명령줄 도구에 오신 것을 환영합니다!")
	fmt.Println("이메일: honglab97@example.com")
	fmt.Println("개인 블로그: https://honglab.tistory.com")
	fmt.Println("팀 블로그: https://err-bzz.oopy.io/")
}

 

 

(따라할거면 본인의 주소로 바꿔 쓰자)

기본 패키지 (fmt) 만 쓰기 때문에 의존성 작업을 더 할 필요는 없다.

 

이제 끝났으니 빌드해보자.

go build

 

(본인 컴퓨터 OS 에 맞게 빌드된다. - 다른 OS버전으로도 만들고 싶다면 Go Cross Complie 검색)

이렇게 빌드된 파일은 굳이 git에 올릴 필요는 없다. 대신 hombrew에서 읽을 수 있어야 하기 때문에 release에 올려주도록 하겠다.

 

2. build파일 release에 올리기

참고 - https://github.com/suminhong/gohonglab/releases/tag/v1.0.0

 

release를 새로 만들자. 태그도 새로 만들고..

 

Attach binaries by dropping... 부분에 아까 빌드된 파일을 올려주자.

 

 

release를 만들면 Assets에 빌드파일이 올라가 있다. 마우스 우클릭으로 링크 주소를 복사해두자.

 

3. Homebrew Fomula 작성

참고 - https://github.com/suminhong/homebrew-tap

먼저 Homebrew Tap용 Git repository를 따로 만들어야 한다.

레포지토리 이름은 homebrew-{원하는 이름} 이면 된다.

서비스별로 tap을 만들어줄수도 있고, (ex, homebrew-gohonglab -> brew tap suminhong/gohonglab)

그냥 내 깃헙계정에서 통합으로 사용할 목적으로 만들수도 있다. (ex, homebrew-tap -> brew tap suminhong/tap)

난 후자 방식으로 진행한다.

 

Fomula 파일은 루비로 작성한다.

class Gohonglab < Formula
    desc "honglab 간단한 명령줄"
    homepage "https://github.com/suminhong/gohonglab"
    url "https://github.com/suminhong/gohonglab/releases/download/v1.0.0/gohonglab"
    sha256 "77cf0d454c7267cb9b929e17a33a5b13bedde026ed25c83d132a74f40d7b6e52"
  
    def install
      bin.install "gohonglab"
    end
  end

 

  • desc : 설명
  • homepage : 얘도 사실상 설명
  • url : release에 올린 빌드파일 링크 주소
  • sha256 : Checksum

이 때, sha256은 아래 명령을 통해 알아낼 수 있다.

shasum -a 256 {빌드파일}
shasum -a 256 gohonglab

이걸 그대로 깃에 올려주면 된다.

 

 

4. 테스트

brew tap suminhong/tap
brew install gohonglab

gohonglab

 

 

끝~

 

 

 

 

728x90
728x90

댓글