« Back to Index

Go: remove line from file

View original Gist on GitHub

Tags: #go

1. README.md

We had a bug where a line [manifest_version] was being added by accident.

fastly.toml

authors = ["integralist@fastly.com"]
description = "testing"
language = "rust"
[manifest_version]
name = "testing"
service_id = "123"

main.go

package main

import (
	"bufio"
	"bytes"
	"log"
	"os"
)

func main() {
	fpath := "fastly.toml"

	f, err := os.Open(fpath)
	if err != nil {
		log.Fatal(err)
	}
	defer f.Close()

	var bs []byte
	buf := bytes.NewBuffer(bs)

	scanner := bufio.NewScanner(f)
	for scanner.Scan() {
		if scanner.Text() != "[manifest_version]" {
			_, err := buf.Write(scanner.Bytes())
			if err != nil {
				log.Fatal(err)
			}
			_, err = buf.WriteString("\n")
			if err != nil {
				log.Fatal(err)
			}
		}
	}
	if err := scanner.Err(); err != nil {
		log.Fatal(err)
	}

	err = os.WriteFile(fpath, buf.Bytes(), 0666)
	if err != nil {
		log.Fatal(err)
	}
}