Skip to content

Commit 9d46f62

Browse files
authored
Add --help/-h CLI flag to display usage (#534)
* Added --help/-h CLI flag to display usage Based help instructions on existing comments, run with: java -jar target/protomaps-basemap-HEAD-with-deps.jar -h * Differentiated Planetiler options
1 parent ffa179e commit 9d46f62

File tree

1 file changed

+46
-1
lines changed

1 file changed

+46
-1
lines changed

tiles/src/main/java/com/protomaps/basemap/Basemap.java

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,54 @@ public Map<String, String> extraArchiveMetadata() {
150150
}
151151

152152
public static void main(String[] args) throws IOException {
153+
// Check for help flag
154+
for (String arg : args) {
155+
if ("--help".equals(arg) || "-h".equals(arg)) {
156+
printHelp();
157+
System.exit(0);
158+
}
159+
}
153160
run(Arguments.fromArgsOrConfigFile(args));
154161
}
155162

163+
private static void printHelp() {
164+
Basemap basemap = new Basemap(null, null, null, "");
165+
System.out.println(String.format("""
166+
%s v%s
167+
%s
168+
169+
Usage:
170+
java -jar protomaps-basemap-HEAD-with-deps.jar [options]
171+
172+
Protomaps Basemap Options:
173+
--help, -h Show this help message and exit
174+
--area=<name> Geofabrik area name to download, or filename in data/sources/
175+
(default: monaco, e.g., us/california, washington)
176+
--maxzoom=<n> Maximum zoom level (default: 15)
177+
--layer=<name> Process only a single layer (optional)
178+
Valid values: boundaries, buildings, landuse, landcover,
179+
places, pois, roads, transit, water, earth
180+
--clip=<path> GeoJSON file path to clip tileset (optional)
181+
182+
Common Planetiler Options:
183+
--output=<path> Output file path and format (e.g., output.pmtiles)
184+
--force Overwrite existing output file
185+
--download Automatically download input sources
186+
--only-download Exit after downloading sources
187+
--osm-path=<path> Path to existing OSM extract file
188+
189+
Examples:
190+
java -jar protomaps-basemap-HEAD-with-deps.jar --area=monaco
191+
java -jar protomaps-basemap-HEAD-with-deps.jar --area=boston --maxzoom=14 --force
192+
java -jar protomaps-basemap-HEAD-with-deps.jar --layer=roads --area=seattle
193+
194+
For a complete list of Planetiler options, see:
195+
https://github.com/onthegomap/planetiler#usage
196+
197+
For more information: https://github.com/protomaps/basemaps
198+
""", basemap.name(), basemap.version(), basemap.description()));
199+
}
200+
156201
static void run(Arguments args) throws IOException {
157202
args = args.orElse(Arguments.of("maxzoom", 15));
158203

@@ -164,7 +209,7 @@ static void run(Arguments args) throws IOException {
164209

165210
var countryCoder = CountryCoder.fromJarResource();
166211

167-
String area = args.getString("area", "geofabrik area to download", "monaco");
212+
String area = args.getString("area", "Geofabrik area name to download, or filename in data/sources/", "monaco");
168213

169214
var planetiler = Planetiler.create(args)
170215
.addNaturalEarthSource("ne", nePath, neUrl)

0 commit comments

Comments
 (0)