Skip to content

Commit 80e298b

Browse files
authored
Add --quiet flag [#117] (#261)
* also use logger everywhere instead of fmt.Printf, with the exception of commands like show which print to stdout.
1 parent 28087fe commit 80e298b

7 files changed

Lines changed: 23 additions & 17 deletions

File tree

main.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package main
33
import (
44
"context"
55
"fmt"
6+
"io"
67
"log"
78
"net/http"
89
"net/url"
@@ -28,6 +29,8 @@ var (
2829
)
2930

3031
var cli struct {
32+
Quiet bool `help:"Silence logging and progress output" short:"q"`
33+
3134
Show struct {
3235
Path string `arg:""`
3336
Bucket string `help:"Remote bucket"`
@@ -126,6 +129,9 @@ func main() {
126129

127130
logger := log.New(os.Stdout, "", log.Ldate|log.Ltime|log.Lshortfile)
128131
ctx := kong.Parse(&cli)
132+
if cli.Quiet {
133+
logger.SetOutput(io.Discard)
134+
}
129135

130136
switch ctx.Command() {
131137
case "show <path>":

pmtiles/cluster.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,6 @@ func Cluster(logger *log.Logger, InputPMTiles string, deduplicate bool) error {
6565
if err != nil {
6666
return err
6767
}
68-
fmt.Printf("total directory size %d (%f%% of original)\n", newHeader.RootLength+newHeader.LeafDirectoryLength, float64(newHeader.RootLength+newHeader.LeafDirectoryLength)/float64(header.RootLength+header.LeafDirectoryLength)*100)
68+
logger.Printf("total directory size %d (%f%% of original)\n", newHeader.RootLength+newHeader.LeafDirectoryLength, float64(newHeader.RootLength+newHeader.LeafDirectoryLength)/float64(header.RootLength+header.LeafDirectoryLength)*100)
6969
return nil
7070
}

pmtiles/extract.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ func Extract(ctx context.Context, logger *log.Logger, bucketURL string, key stri
370370

371371
overfetchLeaves, _ := MergeRanges(leafRanges, overfetch)
372372
numOverfetchLeaves := overfetchLeaves.Len()
373-
fmt.Printf("fetching %d dirs, %d chunks, %d requests\n", len(leaves), len(leafRanges), overfetchLeaves.Len())
373+
logger.Printf("fetching %d dirs, %d chunks, %d requests\n", len(leaves), len(leafRanges), overfetchLeaves.Len())
374374

375375
for {
376376
if overfetchLeaves.Len() == 0 {
@@ -410,7 +410,7 @@ func Extract(ctx context.Context, logger *log.Logger, bucketURL string, key stri
410410
return tileEntries[i].TileID < tileEntries[j].TileID
411411
})
412412

413-
fmt.Printf("Region tiles %d, result tile entries %d\n", relevantSet.GetCardinality(), len(tileEntries))
413+
logger.Printf("Region tiles %d, result tile entries %d\n", relevantSet.GetCardinality(), len(tileEntries))
414414

415415
// 6. create the new header and chunk list
416416
// we now need to re-encode this entry list using cumulative offsets
@@ -419,7 +419,7 @@ func Extract(ctx context.Context, logger *log.Logger, bucketURL string, key stri
419419
overfetchRanges, totalBytes := MergeRanges(tileParts, overfetch)
420420

421421
numOverfetchRanges := overfetchRanges.Len()
422-
fmt.Printf("fetching %d tiles, %d chunks, %d requests\n", len(reencoded), len(tileParts), overfetchRanges.Len())
422+
logger.Printf("fetching %d tiles, %d chunks, %d requests\n", len(reencoded), len(tileParts), overfetchRanges.Len())
423423

424424
// TODO: takes up too much RAM
425425
// construct the directories
@@ -561,13 +561,13 @@ func Extract(ctx context.Context, logger *log.Logger, bucketURL string, key stri
561561
}
562562
}
563563

564-
fmt.Printf("Completed in %v with %v download threads (%v tiles/s).\n", time.Since(start), downloadThreads, float64(len(reencoded))/float64(time.Since(start).Seconds()))
564+
logger.Printf("Completed in %v with %v download threads (%v tiles/s).\n", time.Since(start), downloadThreads, float64(len(reencoded))/float64(time.Since(start).Seconds()))
565565
totalRequests := 2 // header + root
566566
totalRequests += numOverfetchLeaves // leaves
567567
totalRequests++ // metadata
568568
totalRequests += numOverfetchRanges
569-
fmt.Printf("Extract required %d total requests.\n", totalRequests)
570-
fmt.Printf("Extract transferred %s (overfetch %v) for an archive size of %s\n", humanize.Bytes(totalBytes), overfetch, humanize.Bytes(totalActualBytes))
569+
logger.Printf("Extract required %d total requests.\n", totalRequests)
570+
logger.Printf("Extract transferred %s (overfetch %v) for an archive size of %s\n", humanize.Bytes(totalBytes), overfetch, humanize.Bytes(totalActualBytes))
571571

572572
return nil
573573
}

pmtiles/makesync.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,6 @@ func Makesync(logger *log.Logger, cliVersion string, fileName string, blockSizeK
197197

198198
serializeSyncBlocks(output, blocks)
199199

200-
fmt.Printf("Created syncfile with %d blocks.\n", len(blocks))
200+
logger.Printf("Created syncfile with %d blocks.\n", len(blocks))
201201
return nil
202202
}

pmtiles/merge.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package pmtiles
33
import (
44
"fmt"
55
"github.com/RoaringBitmap/roaring/roaring64"
6-
"github.com/schollz/progressbar/v3"
76
"io"
87
"log"
98
"math"
@@ -290,7 +289,8 @@ func Merge(logger *log.Logger, inputs []string) error {
290289
handle.Seek(int64(headers[idx].TileDataOffset), io.SeekStart)
291290
}
292291

293-
bar := progressbar.DefaultBytes(
292+
bar := defaultBytesProgressbar(
293+
logger,
294294
int64(tileDataLength),
295295
"merging tile data",
296296
)

pmtiles/sync.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ func Sync(logger *log.Logger, oldVersion string, newVersion string, dryRun bool)
218218
blocksMatched := float64(len(have)) / float64(len(blocks)) * 100
219219
pct := float64(toTransfer) / float64(totalRemoteBytes) * 100
220220

221-
fmt.Printf("%d/%d blocks matched (%.1f%%), need to transfer %s/%s (%.1f%%).\n", len(have), len(blocks), blocksMatched, humanize.Bytes(toTransfer), humanize.Bytes(totalRemoteBytes), pct)
221+
logger.Printf("%d/%d blocks matched (%.1f%%), need to transfer %s/%s (%.1f%%).\n", len(have), len(blocks), blocksMatched, humanize.Bytes(toTransfer), humanize.Bytes(totalRemoteBytes), pct)
222222

223223
ranges := make([]srcDstRange, 0)
224224
for _, v := range wanted {
@@ -242,7 +242,7 @@ func Sync(logger *log.Logger, oldVersion string, newVersion string, dryRun bool)
242242
}
243243
}
244244

245-
fmt.Printf("need %d chunks\n", len(ranges))
245+
logger.Printf("need %d chunks\n", len(ranges))
246246

247247
if !dryRun {
248248
req, err := http.NewRequest("HEAD", newVersion, nil)
@@ -382,6 +382,6 @@ func Sync(logger *log.Logger, oldVersion string, newVersion string, dryRun bool)
382382
}
383383
}
384384

385-
fmt.Printf("Completed sync in %v.\n", time.Since(start))
385+
logger.Printf("Completed sync in %v.\n", time.Since(start))
386386
return nil
387387
}

pmtiles/verify.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313

1414
// Verify that an archive's header statistics are correct,
1515
// and that tiles are propertly ordered if clustered=true.
16-
func Verify(_ *log.Logger, file string) error {
16+
func Verify(logger *log.Logger, file string) error {
1717
start := time.Now()
1818
ctx := context.Background()
1919

@@ -120,13 +120,13 @@ func Verify(_ *log.Logger, file string) error {
120120
}
121121

122122
if e.Offset+uint64(e.Length) > header.TileDataLength {
123-
fmt.Printf("Invalid: %v outside of tile data section", e)
123+
logger.Printf("Invalid: %v outside of tile data section", e)
124124
}
125125

126126
if header.Clustered {
127127
if !offsets.Contains(e.Offset) {
128128
if e.Offset != currentOffset {
129-
fmt.Printf("Invalid: out-of-order entry %v in clustered archive", e)
129+
logger.Printf("Invalid: out-of-order entry %v in clustered archive", e)
130130
}
131131
currentOffset += uint64(e.Length)
132132
}
@@ -166,6 +166,6 @@ func Verify(_ *log.Logger, file string) error {
166166
return fmt.Errorf("Invalid: bounds has area <= 0: clients may not display tiles correctly")
167167
}
168168

169-
fmt.Printf("Completed verify in %v.\n", time.Since(start))
169+
logger.Printf("Completed verify in %v.\n", time.Since(start))
170170
return nil
171171
}

0 commit comments

Comments
 (0)