File tree Expand file tree Collapse file tree 1 file changed +18
-12
lines changed
Expand file tree Collapse file tree 1 file changed +18
-12
lines changed Original file line number Diff line number Diff line change @@ -102,22 +102,28 @@ func (m *ModList) Save() error {
102102 log .WithField ("file" , "ModList.txt" ).Debugf ("saving ModList.txt" )
103103
104104 tmpFilePath := filepath .Join (m .dir , "ModList.txt.new" )
105- file , err := os .Create (tmpFilePath )
106- if err != nil {
107- return err
108- }
109- defer file .Close ()
110105
111- writer := bufio .NewWriter (file )
106+ // anonymous func to make sure file is always closed no matter what before we rename it
107+ err := func () error {
108+ file , err := os .Create (tmpFilePath )
109+ if err != nil {
110+ return err
111+ }
112+ defer file .Close ()
113+
114+ writer := bufio .NewWriter (file )
112115
113- for _ , line := range m .lines {
114- if _ , err = writer .WriteString (fmt .Sprintf ("%s\n " , line )); err != nil {
116+ for _ , line := range m .lines {
117+ if _ , err = writer .WriteString (fmt .Sprintf ("%s\n " , line )); err != nil {
118+ return err
119+ }
120+ }
121+ if err = writer .Flush (); err != nil {
115122 return err
116123 }
117- }
118- if err = writer .Flush (); err != nil {
119- return err
120- }
124+
125+ return nil
126+ }()
121127
122128 if err = os .Rename (tmpFilePath , filepath .Join (m .dir , "ModList.txt" )); err != nil {
123129 return err
You can’t perform that action at this time.
0 commit comments