Golang 환경변수 등록 소스

딱히 뭐 없고 이전에 만들었던 “Go 환경변수 등록해주는 프로그램” 이걸 golang으로 작업해봄.
주목적은 golang에서 registry 처리하는거 테스트 하다가 얼덜결에 만들어진 프로그램

package main

import (
	"fmt"
	"log"
	"os"

	"golang.org/x/sys/windows/registry"
)

func main() {

	//GOPATH 폴더 지정
	pathGOPATH := `C:\Projects\Go`

	//---------------------------------------------------------------------------------------------
	//레지스트리
	regKey, err := registry.OpenKey(registry.CURRENT_USER, "Environment", registry.ALL_ACCESS)
	if err != nil {
		fmt.Println("Regkey 오픈실패")
		log.Fatal(err)
	}
	defer regKey.Close()

	//---------------------------------------------------------------------------------------------
	//1. GOROOT를 추가한다.(sdk 루트폴더 C:\SDK\Go)
	//실행폴더를 GOROOT 폴더로 간주함.
	pathGOROOT, _ := os.Getwd()
	_ = pathGOROOT

	err = regKey.SetStringValue("GOROOT", pathGOROOT)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("GOROOT 추가 완료 : ", pathGOROOT)

	//---------------------------------------------------------------------------------------------
	//2. go/bin 폴더 경로를 Path에 추가한다. (C:\SDK\Go\bin)
	strPath, _, err := regKey.GetStringValue("path")
	if err != nil {
		log.Fatal(err)
	}
	strPath += pathGOROOT + `\bin;`

	err = regKey.SetStringValue("path", strPath)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("GoBin 추가 완료 : ", strPath)
	//---------------------------------------------------------------------------------------------
	//3. GOPATH를 추가한다.(작업디렉토리 나의경우 C:\Projects\Go )
	err = regKey.SetStringValue("GOPATH", pathGOPATH)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("GOPATH 추가 완료 : ", pathGOPATH)

	//---------------------------------------------------------------------------------------------
}

참고 사이트 : https://pkg.go.dev/golang.org/x/sys/windows/registry?tab=doc

GOPATH는 그냥 내 취향대로 고정.
다시 말하지만 위 환경변수값은 sdk를 설치파일로 설치하면 자동 등록되는것임.

크리에이티브 커먼즈 라이선스Linsoo의 저작물인 이 저작물은(는)크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

댓글 남기기

이메일은 공개되지 않습니다.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.