@@ -14,13 +14,20 @@ import (
1414)
1515
1616var (
17- trackerUrl = "https://cdn.jsdelivr.net/gh/ngosang/trackerslist/trackers_best_ip.txt"
17+ tracker_url string
18+ default_tracker_url = "https://cdn.jsdelivr.net/gh/ngosang/trackerslist/trackers_best_ip.txt"
19+ conf_path string
1820 //trackerUrl = "https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt" //need http proxy
1921)
2022
23+ func init () {
24+ flag .StringVar (& tracker_url , "tracker-url" , default_tracker_url , "tracker url" )
25+ flag .StringVar (& conf_path , "conf-path" , "" , "aria2 conf path" )
26+ }
27+
2128func getTrackers () ([]string , error ) {
2229 client := & http.Client {}
23- request , err := http .NewRequest ("GET" , trackerUrl , nil )
30+ request , err := http .NewRequest ("GET" , tracker_url , nil )
2431 if err != nil {
2532 return nil , err
2633 }
@@ -46,18 +53,18 @@ func getTrackers() ([]string, error) {
4653 return trackers , nil
4754}
4855
49- func getConfFilePath () (string , error ) {
56+ func getDefaultConfPath () (string , error ) {
5057 var (
51- home string
52- confPath string
53- err error
58+ home string
59+ path string
60+ err error
5461 )
5562 home , err = os .UserHomeDir ()
5663 if err != nil {
5764 return "" , err
5865 }
59- confPath = filepath .Join (home , "aria2 " , "aria2.conf" )
60- return confPath , nil
66+ path = filepath .Join (home , ".aria2c " , "aria2.conf" )
67+ return path , nil
6168}
6269
6370func readConfLines (confPath string ) ([]string , error ) {
@@ -117,8 +124,14 @@ func updateConfFile(confPath string, lines []string, trackers []string) error {
117124 bufw .WriteString (line )
118125 if "windows" == runtime .GOOS {
119126 bufw .WriteString ("\r \n " )
127+ if ! strings .HasPrefix (line , "#" ) {
128+ bufw .WriteString ("\r \n " )
129+ }
120130 } else {
121131 bufw .WriteString ("\n " )
132+ if ! strings .HasPrefix (line , "#" ) {
133+ bufw .WriteString ("\n " )
134+ }
122135 }
123136 }
124137 _ , err = file .WriteString (bufw .String ())
@@ -131,28 +144,26 @@ func updateConfFile(confPath string, lines []string, trackers []string) error {
131144
132145func main () {
133146 flag .Parse ()
134- if len (flag .Arg (0 )) > 0 {
135- trackerUrl = flag .Arg (0 )
136- }
137147 var (
138148 trackers []string
139149 confLines []string
140150 err error
141- confPath string
142151 )
143- trackers , err = getTrackers ()
144- if err != nil {
145- panic (err .Error ())
152+ if len (conf_path ) == 0 {
153+ conf_path , err = getDefaultConfPath ()
154+ if err != nil {
155+ panic (err .Error ())
156+ }
146157 }
147- confPath , err = getConfFilePath ()
158+ trackers , err = getTrackers ()
148159 if err != nil {
149160 panic (err .Error ())
150161 }
151- confLines , err = readConfLines (confPath )
162+ confLines , err = readConfLines (conf_path )
152163 if err != nil {
153164 panic (err .Error ())
154165 }
155- err = updateConfFile (confPath , confLines , trackers )
166+ err = updateConfFile (conf_path , confLines , trackers )
156167 if err != nil {
157168 panic (err .Error ())
158169 }
0 commit comments