func (f FileLoggingCmdRunner) getTruncatedOutput(file boshsys.File, truncateLength int64) ([]byte, bool, error) { isTruncated := false stat, err := file.Stat() if err != nil { return nil, false, err } resultSize := truncateLength offset := stat.Size() - truncateLength if offset < 0 { resultSize = stat.Size() offset = 0 } else { isTruncated = true } data := make([]byte, resultSize) _, err = file.ReadAt(data, offset) if err != nil { return nil, false, err } // Do not truncate more than 25% of the data data = f.truncateUntilToken(data, truncateLength/int64(4)) return data, isTruncated, nil }