تزریق! نسخه به باینری وقت کامپایل #Golang
بدنیست همیشه یه اطلاعاتی از نسخه برنامه تو دل خودش باشه. مدتهاست که من از Make برای کامپایل برنامه استفاده میکنم، و قبلترها، قبل از اینکه کامپایل کنم برنامه رو، یک فایل میساختم (به صورت اتوماتیک) مثلا با این محتوا : package main // this file is autogenerated var ( // Commit hash hash = "a5df371b88bc3f875f49a3b7e19b55c88cd31487" short = "a5df371" // commit date date = "2016-04-30 11:21:46 +0430 +0430" // build date build = "2016-04-30 11:21:46 +0430 +0430" // commit count count = "42" ) بعد قبل هر کامپایل این فایل مجددا ساخته میشه و متغیرهاش آپدیت میشن. خوبه، ولی نه به اندازه کافی. این فایل باید ignore بشه تو ورژن کنترل، کسی از کامند مناسب استفاده نکنه ساخته نمیشه و الی آخر. این شد که افتادم دنبال راه حل بهتر. ...