68 lines
1.0 KiB
Go
68 lines
1.0 KiB
Go
package misc
|
|
|
|
import (
|
|
"bufio"
|
|
"io"
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/anotherhadi/eleakxir/leak-utils/settings"
|
|
)
|
|
|
|
func RemoveUrlSchemeFromUlp(lu settings.LeakUtils, inputFile string) error {
|
|
file, err := os.Open(inputFile)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer file.Close()
|
|
|
|
outputFile := inputFile + ".clean"
|
|
out, err := os.Create(outputFile)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer out.Close()
|
|
|
|
reader := bufio.NewReader(file)
|
|
writer := bufio.NewWriter(out)
|
|
|
|
for {
|
|
line, err := reader.ReadString('\n')
|
|
if err != nil && err != io.EOF {
|
|
return err
|
|
}
|
|
|
|
firstColumn := strings.Index(line, ":")
|
|
firstScheme := strings.Index(line, "://")
|
|
if firstScheme != -1 && firstColumn == firstScheme {
|
|
line = line[firstScheme+3:]
|
|
}
|
|
|
|
_, werr := writer.WriteString(line)
|
|
if werr != nil {
|
|
return err
|
|
}
|
|
|
|
if err == io.EOF {
|
|
break
|
|
}
|
|
}
|
|
|
|
err = writer.Flush()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = os.Remove(inputFile)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = os.Rename(outputFile, inputFile)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|