How To Get The List Of All Environment Variables Key Used In A Golang Module/Project.
These are real world problems and doing these all things manually can be pain in ass, So for avoiding these kind of problems we're going to implement a program/Tool, Which is going to extract all the environment variables(env) key used in a golang module.
How We're going to achieve that, for that we needed a flow to understand.
In Golang we uses os.Getenv("key") to get the environment variable value so we've got the pattern to achieve that.
1. Pattern
we have to check each file inside a module/project for os.Getenv("key") if we found any pattern while checking the golang file we're going to extract that element from that file or from line with the help of regular expression.
2. Regular Expression(regexp)
we're about to use regular expression to check the pattern in each file's each line to get our results. The function from regexp package we're going to use to extract information is FindlString.
3. FindString function Defination
FindString returns a string holding the text of the leftmost match in s of the regular expression. If there is no match, the return value is an empty string, but it will also be empty if the regular expression successfully matches an empty string. Use FindStringIndex or FindStringSubmatch if it is necessary to distinguish these cases.
So now we've know everything we needed to know before writing program let's start writing code
4. Directory Path Command
5. Walking On Directory/Module Recursivly to Get All Golang Files.
we're going to use walk function of filepath package to get all the files which have .go extension
Walk is less efficient than WalkDir, introduced in Go 1.16,which avoids calling os.Lstat on every visited file or directory.
So wer're checking for each in this block to get the all .go extension files one by one.
6. Iterating Over All Files One By One
This portion of the code is the most important part and in this we're reading each file and after reading doing parsing see the code below.
Full Code
Labels: File handling, Golang, Tool
0 Comments:
Post a Comment
If have any queries lemme know
Subscribe to Post Comments [Atom]
<< Home