BerandaComputers and TechnologySaya menulis perpustakaan Go minimalis untuk membaca dan menulis file .env

Saya menulis perpustakaan Go minimalis untuk membaca dan menulis file .env

Dotenv adalah Perpustakaan Go minimal untuk membaca dan menulis file konfigurasi .env. Ia menggunakan renameio untuk melakukan operasi tulis atom untuk memastikan aplikasi tidak pernah melihat konten file yang tidak diharapkan (file setengah tertulis, atau file 0-byte) .

Dotenv membaca config dalam urutan berikut. Setiap item didahulukan dari item di bawahnya:

  • env
  • cache / penyimpanan konfigurasi nilai kunci
  • konfigurasi

Penyimpanan cache konfigurasi diatur pada operasi baca pertama.

Instalasi

 pergi get -u github.com/joho/godotenv

Pemakaian

Dengan asumsi Anda memiliki file .env di direktori saat ini dengan nilai berikut

 S3_BUCKET=milikmu3bucket SECRET_KEY=yourecretKey PRIORITY_LEVEL=2 

Membaca file .env

  paket  utama  impor (     "catatan"           "github.com/profclems/go-dotenv" )   func   utama  () {    // .env - Ini akan mencari file .env di direktori saat ini dan muat itu.     // Anda dapat secara eksplisit mengatur file konfigurasi dengan dotenv.SetConfigFile ("path / to / file.env ")    berbuat salah :=  dotenv .  LoadConfig  ()   jika  err  != nol {     catatan.  Fatalf  ( "Kesalahan saat memuat file .env:% v" ,  err )   }     s3Bucket  :=  dotenv .  GetString  ( " S3_BUCKET ")   kunci rahasia :=  dotenv .  GetString  ( " KUNCI RAHASIA")    tingkat prioritas  :=  dotenv .  GetInt  ( " PRIORITY_LEVEL ")     // sekarang lakukan sesuatu dengan s3 atau apapun  } 

Menulis file .env

  impor  (  "fmt"   "github.com/profclems/go-dotenv" "catatan" )   func   utama  () {  // SetConfigFile secara eksplisit mendefinisikan jalur, nama, dan ekstensi file konfigurasi.   dotenv .  SetConfigFile  ( "config / .env" )      dotenv .  LoadConfig  ()   dotenv .Set  ( "STRONGEST_AVENGER" ,  "Hulk" )  dotenv .Set  ("NAMA PEMAIN",  "Anon" )  berbuat salah :=  dotenv . Menyimpan () jika  err  != nol { catatan.Fatal  (berbuat salah ) }  nilai :=  dotenv .  GetString  ( " STRONGEST_AVENGER ")  fmt .  Printf  ( "% s=% s   n  ",  "STRONGEST_AVENGER" , nilai)  nilai =  dotenv .  GetString ("NAMA PEMAIN ")  fmt .  Printf  ( "% s=% s   n  ", "NAMA PEMAIN", nilai) } 

Semua contoh di atas menggunakan instance DotEnv global. Anda dapat membuat instance Dotenv baru:

  cfg  :=  dotenv .  Init  ()  // Ini akan membuat instance Dotenv menggunakan .env dari direktori saat ini   atau   cfg  :=  dotenv .  Init  ( " jalur / ke / .env ")  cfg .  LoadConfig  ()   val  :=  cfg .  GetString  ( " SOME_ENV ") 

Mendapatkan Nilai Dari DotEnv

Fungsi dan metode berikut ada untuk mendapatkan nilai tergantung Jenisnya:

  • Dapatkan (string kunci): antarmuka {}
  • GetBool (string kunci): bool
  • GetFloat64 (string kunci): float64
  • GetInt (string kunci): int
  • GetIntSlice (string kunci): [] int
  • GetString (string kunci): string
  • GetStringMap (string kunci): peta [string] antarmuka {}
  • GetStringMapString (string kunci): string peta [string]
  • GetStringSlice (string kunci): [] string
  • GetTime (string kunci): time.Time
  • GetDuration (string kunci): time.Duration
  • isSet (string kunci): bool
  • LookUp (string kunci): (antarmuka, bool)

Berkontribusi

Kontribusi dipersilahkan! Ini bisa berupa fitur baru, perbaikan bug, pemfaktoran ulang, atau bahkan melaporkan masalah.

  • Garpu
  • Buat cabang fitur Anda (git checkout -b my-new-feature)
  • Lakukan perubahan Anda (git commit -am ‘Menambahkan beberapa fitur’)
  • Dorong ke cabang (git push origin my-new-feature)
  • Buat Permintaan Tarik baru

Lisensi

Hak Cipta © Clement Sam

glab adalah perangkat lunak bersumber terbuka yang dilisensikan di bawah Lisensi MIT .

Read More

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments