├── .gitignore
├── .prettierrc.js
├── .ruff.toml
├── LICENSE.md
├── README.md
├── biome.jsonc
├── compare
├── .gitignore
├── index.html
├── main.js
├── map.js
├── package.json
├── pnpm-lock.yaml
├── reset.css
├── sprites
├── style.css
├── style.js
├── styles
└── vite.config.js
├── config
└── rclone.conf.sample
├── docs
└── quick notes
│ ├── font-list.txt
│ └── text-fields_collected.txt
├── fonts
├── .gitignore
├── README.md
├── collect.sh
├── collect_not_used.sh
└── upload.sh
├── lint.sh
├── logo.jpg
├── natural_earth
├── .gitignore
├── collect.sh
└── upload.sh
├── package.json
├── pnpm-lock.yaml
├── scripts
├── collect_text_fields.py
├── copy_text_fields.py
├── copy_text_fields.sh
├── download_liberty.sh
├── fix_styles.py
├── fix_styles.sh
└── lint_styles.py
├── sprites
├── README.md
├── create_sprites.sh
├── liberty_script
│ ├── iconset.json
│ └── sources_list.py
├── sprites
│ ├── .gitignore
│ └── ofm_f384
│ │ ├── ofm.json
│ │ ├── ofm.png
│ │ ├── ofm@2x.json
│ │ └── ofm@2x.png
├── spritezero
│ ├── .envrc
│ ├── .gitignore
│ ├── .nvmrc
│ ├── LICENSE.md
│ ├── README.md
│ ├── package.json
│ └── spritezero-cli.js
└── upload.sh
└── styles
├── .gitignore
├── bright
├── LICENSE.md
├── README.md
├── icons_not_used
│ ├── airfield_11.svg
│ ├── alcohol_shop_11.svg
│ ├── amusement_park_11.svg
│ ├── aquarium_11.svg
│ ├── art_gallery_11.svg
│ ├── attraction_11.svg
│ ├── bakery_11.svg
│ ├── bank_11.svg
│ ├── bar_11.svg
│ ├── beer_11.svg
│ ├── bicycle_11.svg
│ ├── bicycle_rental_11.svg
│ ├── bus_11.svg
│ ├── cafe_11.svg
│ ├── campsite_11.svg
│ ├── car_11.svg
│ ├── castle_11.svg
│ ├── cemetery_11.svg
│ ├── cinema_11.svg
│ ├── circle_stroked_11.svg
│ ├── clothing_store_11.svg
│ ├── college_11.svg
│ ├── dentist_11.svg
│ ├── doctor_11.svg
│ ├── dog_park_11.svg
│ ├── drinking_water_11.svg
│ ├── embassy_11.svg
│ ├── entrance_11.svg
│ ├── fast_food_11.svg
│ ├── ferry_terminal_11.svg
│ ├── fire_station_11.svg
│ ├── fuel_11.svg
│ ├── garden_11.svg
│ ├── golf_11.svg
│ ├── grocery_11.svg
│ ├── harbor_11.svg
│ ├── heliport_11.svg
│ ├── hospital_11.svg
│ ├── ice_cream_11.svg
│ ├── information_11.svg
│ ├── laundry_11.svg
│ ├── library_11.svg
│ ├── lodging_11.svg
│ ├── marker_11.svg
│ ├── monument_11.svg
│ ├── mountain_11.svg
│ ├── museum_11.svg
│ ├── music_11.svg
│ ├── park_11.svg
│ ├── pharmacy_11.svg
│ ├── picnic_site_11.svg
│ ├── pitch_11.svg
│ ├── place_of_worship_11.svg
│ ├── playground_11.svg
│ ├── police_11.svg
│ ├── post_11.svg
│ ├── prison_11.svg
│ ├── rail_light_11.svg
│ ├── rail_metro_11.svg
│ ├── railway_11.svg
│ ├── religious_christian_11.svg
│ ├── religious_jewish_11.svg
│ ├── religious_muslim_11.svg
│ ├── restaurant_11.svg
│ ├── rocket_11.svg
│ ├── school_11.svg
│ ├── shop_11.svg
│ ├── stadium_11.svg
│ ├── star_11.svg
│ ├── suitcase_11.svg
│ ├── swimming_11.svg
│ ├── theatre_11.svg
│ ├── toilet_11.svg
│ ├── town_hall_11.svg
│ ├── triangle_11.svg
│ ├── triangle_stroked_11.svg
│ ├── veterinary_11.svg
│ ├── volcano_11.svg
│ ├── wave.svg
│ └── zoo_11.svg
├── icons_unique
│ ├── airport_11.svg
│ ├── circle_11_black.svg
│ ├── oneway.svg
│ ├── road_1.svg
│ ├── road_2.svg
│ ├── road_3.svg
│ ├── road_4.svg
│ ├── road_5.svg
│ ├── road_6.svg
│ ├── us-highway_1.svg
│ ├── us-highway_2.svg
│ ├── us-highway_3.svg
│ ├── us-interstate_1.svg
│ ├── us-interstate_2.svg
│ ├── us-interstate_3.svg
│ ├── us-state_1.svg
│ ├── us-state_2.svg
│ ├── us-state_3.svg
│ ├── us-state_4.svg
│ ├── us-state_5.svg
│ └── us-state_6.svg
├── maplibre.json
├── maplibre_orig_linted.json
├── omt_orig_linted.json
└── style.json
├── dark
├── LICENSE.md
├── icons
│ ├── circle-11.svg
│ ├── oneway.svg
│ ├── star-11.svg
│ └── wood-pattern.svg
└── style.json
├── fiord
├── LICENSE.md
├── icons
│ ├── circle-11.svg
│ └── star-11.svg
└── style.json
├── liberty
├── LICENSE.md
├── README.md
├── maputnik_orig_linted.json
├── style.json
└── svgs
│ ├── svgs_iconset
│ ├── aerialway.svg
│ ├── aerialway_11.svg
│ ├── airfield.svg
│ ├── airfield_11.svg
│ ├── airport.svg
│ ├── airport_11.svg
│ ├── alcohol_shop.svg
│ ├── alcohol_shop_11.svg
│ ├── american_football.svg
│ ├── american_football_11.svg
│ ├── amusement_park.svg
│ ├── amusement_park_11.svg
│ ├── aquarium.svg
│ ├── aquarium_11.svg
│ ├── art_gallery.svg
│ ├── art_gallery_11.svg
│ ├── attraction.svg
│ ├── attraction_11.svg
│ ├── bakery.svg
│ ├── bakery_11.svg
│ ├── bank.svg
│ ├── bank_11.svg
│ ├── bar.svg
│ ├── bar_11.svg
│ ├── baseball.svg
│ ├── baseball_11.svg
│ ├── basketball.svg
│ ├── basketball_11.svg
│ ├── beer.svg
│ ├── beer_11.svg
│ ├── bicycle.svg
│ ├── bicycle_11.svg
│ ├── bicycle_rental.svg
│ ├── bicycle_rental_11.svg
│ ├── building.svg
│ ├── building_11.svg
│ ├── bus.svg
│ ├── bus_11.svg
│ ├── butcher.svg
│ ├── butcher_11.svg
│ ├── cafe.svg
│ ├── cafe_11.svg
│ ├── campsite.svg
│ ├── campsite_11.svg
│ ├── car.svg
│ ├── car_11.svg
│ ├── castle.svg
│ ├── castle_11.svg
│ ├── cemetery.svg
│ ├── cemetery_11.svg
│ ├── cinema.svg
│ ├── cinema_11.svg
│ ├── circle.svg
│ ├── circle_11.svg
│ ├── circle_stroked.svg
│ ├── circle_stroked_11.svg
│ ├── clothing_store.svg
│ ├── clothing_store_11.svg
│ ├── college.svg
│ ├── college_11.svg
│ ├── commercial.svg
│ ├── commercial_11.svg
│ ├── cricket.svg
│ ├── cricket_11.svg
│ ├── cross.svg
│ ├── cross_11.svg
│ ├── dam.svg
│ ├── dam_11.svg
│ ├── danger.svg
│ ├── danger_11.svg
│ ├── dentist.svg
│ ├── dentist_11.svg
│ ├── doctors.svg
│ ├── doctors_11.svg
│ ├── dog_park.svg
│ ├── dog_park_11.svg
│ ├── drinking_water.svg
│ ├── drinking_water_11.svg
│ ├── embassy.svg
│ ├── embassy_11.svg
│ ├── entrance.svg
│ ├── entrance_11.svg
│ ├── fast_food.svg
│ ├── fast_food_11.svg
│ ├── ferry.svg
│ ├── ferry_11.svg
│ ├── fire_station.svg
│ ├── fire_station_11.svg
│ ├── florist.svg
│ ├── fuel.svg
│ ├── fuel_11.svg
│ ├── furniture.svg
│ ├── garden.svg
│ ├── garden_11.svg
│ ├── gift.svg
│ ├── gift_11.svg
│ ├── golf.svg
│ ├── golf_11.svg
│ ├── grocery.svg
│ ├── grocery_11.svg
│ ├── hairdresser.svg
│ ├── hairdresser_11.svg
│ ├── harbor.svg
│ ├── harbor_11.svg
│ ├── heart.svg
│ ├── heart_11.svg
│ ├── heliport.svg
│ ├── heliport_11.svg
│ ├── hospital.svg
│ ├── hospital_11.svg
│ ├── ice_cream.svg
│ ├── ice_cream_11.svg
│ ├── industry.svg
│ ├── industry_11.svg
│ ├── information.svg
│ ├── information_11.svg
│ ├── laundry.svg
│ ├── laundry_11.svg
│ ├── library.svg
│ ├── library_11.svg
│ ├── lighthouse.svg
│ ├── lighthouse_11.svg
│ ├── lodging.svg
│ ├── lodging_11.svg
│ ├── marker.svg
│ ├── marker_11.svg
│ ├── monument.svg
│ ├── monument_11.svg
│ ├── mountain.svg
│ ├── mountain_11.svg
│ ├── museum.svg
│ ├── museum_11.svg
│ ├── music.svg
│ ├── music_11.svg
│ ├── park.svg
│ ├── park_11.svg
│ ├── parking.svg
│ ├── parking_11.svg
│ ├── parking_garage.svg
│ ├── parking_garage_11.svg
│ ├── pharmacy.svg
│ ├── pharmacy_11.svg
│ ├── picnic_site.svg
│ ├── picnic_site_11.svg
│ ├── pitch.svg
│ ├── pitch_11.svg
│ ├── place_of_worship.svg
│ ├── place_of_worship_11.svg
│ ├── playground.svg
│ ├── playground_11.svg
│ ├── police.svg
│ ├── police_11.svg
│ ├── post.svg
│ ├── post_11.svg
│ ├── prison.svg
│ ├── prison_11.svg
│ ├── railway.svg
│ ├── railway_11.svg
│ ├── railway_light.svg
│ ├── railway_light_11.svg
│ ├── railway_metro.svg
│ ├── railway_metro_11.svg
│ ├── ranger_station.svg
│ ├── ranger_station_11.svg
│ ├── religious_christian.svg
│ ├── religious_christian_11.svg
│ ├── religious_jewish.svg
│ ├── religious_jewish_11.svg
│ ├── religious_muslim.svg
│ ├── religious_muslim_11.svg
│ ├── restaurant.svg
│ ├── restaurant_11.svg
│ ├── roadblock.svg
│ ├── roadblock_11.svg
│ ├── rocket.svg
│ ├── rocket_11.svg
│ ├── school.svg
│ ├── school_11.svg
│ ├── shelter.svg
│ ├── shelter_11.svg
│ ├── shop.svg
│ ├── shop_11.svg
│ ├── skiing.svg
│ ├── skiing_11.svg
│ ├── soccer.svg
│ ├── soccer_11.svg
│ ├── square.svg
│ ├── square_11.svg
│ ├── square_stroked.svg
│ ├── square_stroked_11.svg
│ ├── stadium.svg
│ ├── stadium_11.svg
│ ├── star.svg
│ ├── star_11.svg
│ ├── star_stroked.svg
│ ├── star_stroked_11.svg
│ ├── suitcase.svg
│ ├── suitcase_11.svg
│ ├── sushi.svg
│ ├── sushi_11.svg
│ ├── swimming.svg
│ ├── swimming_11.svg
│ ├── telephone.svg
│ ├── telephone_11.svg
│ ├── tennis.svg
│ ├── tennis_11.svg
│ ├── theatre.svg
│ ├── theatre_11.svg
│ ├── toilets.svg
│ ├── toilets_11.svg
│ ├── town_hall.svg
│ ├── town_hall_11.svg
│ ├── triangle.svg
│ ├── triangle_11.svg
│ ├── triangle_stroked.svg
│ ├── triangle_stroked_11.svg
│ ├── veterinary.svg
│ ├── veterinary_11.svg
│ ├── volcano.svg
│ ├── volcano_11.svg
│ ├── warehouse.svg
│ ├── warehouse_11.svg
│ ├── waste_basket.svg
│ ├── waste_basket_11.svg
│ ├── water.svg
│ ├── water_11.svg
│ ├── wetland.svg
│ ├── wetland_11.svg
│ ├── wetland_bg_11.svg
│ ├── wheelchair.svg
│ ├── wheelchair_11.svg
│ ├── zoo.svg
│ └── zoo_11.svg
│ └── svgs_not_in_iconset
│ ├── arrow.svg
│ ├── default_1.svg
│ ├── default_2.svg
│ ├── default_3.svg
│ ├── default_4.svg
│ ├── default_5.svg
│ ├── default_6.svg
│ ├── dot_10.svg
│ ├── dot_11.svg
│ ├── dot_9.svg
│ └── pedestrian_polygon.svg
├── positron
├── LICENSE.md
├── README.md
├── omt_orig_linted.json
└── style.json
└── upload.sh
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | /.idea
3 |
4 | /temp
5 |
6 | _collected
7 |
--------------------------------------------------------------------------------
/.prettierrc.js:
--------------------------------------------------------------------------------
1 | const config = {
2 | printWidth: 100,
3 | semi: false,
4 | singleQuote: true,
5 | arrowParens: 'avoid',
6 | plugins: ['prettier-plugin-sort-json'],
7 | jsonRecursiveSort: true,
8 | }
9 |
10 | module.exports = config
11 |
--------------------------------------------------------------------------------
/compare/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/compare/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | OpenFreeMap Compare
7 |
8 |
9 |
10 |
11 |
17 |
18 |
19 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/compare/main.js:
--------------------------------------------------------------------------------
1 | import './reset.css'
2 | import './style.css'
3 |
4 | import { setupMap } from './map.js'
5 | import { loadStyle } from './style.js'
6 |
7 | let left
8 | let right
9 |
10 | left = await loadStyle('/styles/fiord/style.json')
11 |
12 | // right = await loadStyle('/styles/positron/style.json')
13 | right = await loadStyle('/styles/dark/style.json')
14 |
15 | // right = await loadStyle('/styles/positron/style.json')
16 | // right = await loadStyle('/styles/positron/omt_orig_linted.json')
17 |
18 | // right = await loadStyle('/styles/dark/style.json')
19 | // right = await loadStyle('/dark/omt_orig_linted.json')
20 |
21 | setupMap(left, right)
22 |
--------------------------------------------------------------------------------
/compare/map.js:
--------------------------------------------------------------------------------
1 | export function setupMap(leftStyle, rightStyle) {
2 | const leftMap = new maplibregl.Map({
3 | container: 'left',
4 | style: leftStyle,
5 | center: [9, 48],
6 | zoom: 3,
7 | hash: true,
8 | })
9 |
10 | const rightMap = new maplibregl.Map({
11 | container: 'right',
12 | style: rightStyle,
13 | center: [9, 48],
14 | zoom: 3,
15 | })
16 |
17 | window.leftMap = leftMap
18 | window.rightMap = rightMap
19 |
20 | window.compare = new maplibregl.Compare(leftMap, rightMap, '#compare', {
21 | // mousemove: true,
22 | })
23 |
24 | // rightMap.setZoom(leftMap.getZoom())
25 | }
26 |
--------------------------------------------------------------------------------
/compare/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "compare",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "vite build",
9 | "preview": "vite preview"
10 | },
11 | "devDependencies": {
12 | "stylefmt": "^6.0.3",
13 | "vite": "^6.0.7"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/compare/reset.css:
--------------------------------------------------------------------------------
1 | /* https://www.joshwcomeau.com/css/custom-css-reset/ */
2 |
3 | /*
4 | 1. Use a more-intuitive box-sizing model.
5 | */
6 | *,
7 | *::before,
8 | *::after {
9 | box-sizing: border-box;
10 | }
11 | /*
12 | 2. Remove default margin
13 | */
14 | * {
15 | margin: 0;
16 | }
17 | /*
18 | Typographic tweaks!
19 | 3. Add accessible line-height
20 | 4. Improve text rendering
21 | */
22 | body {
23 | line-height: 1.5;
24 | -webkit-font-smoothing: antialiased;
25 | }
26 | /*
27 | 5. Improve media defaults
28 | */
29 | img,
30 | picture,
31 | video,
32 | canvas,
33 | svg {
34 | display: block;
35 | max-width: 100%;
36 | }
37 | /*
38 | 6. Remove built-in form typography styles
39 | */
40 | input,
41 | button,
42 | textarea,
43 | select {
44 | font: inherit;
45 | }
46 | /*
47 | 7. Avoid text overflows
48 | */
49 | p,
50 | h1,
51 | h2,
52 | h3,
53 | h4,
54 | h5,
55 | h6 {
56 | overflow-wrap: break-word;
57 | }
58 | /*
59 | 8. Create a root stacking context
60 | */
61 | #root,
62 | #__next {
63 | isolation: isolate;
64 | }
65 |
--------------------------------------------------------------------------------
/compare/sprites:
--------------------------------------------------------------------------------
1 | ../sprites/sprites/
--------------------------------------------------------------------------------
/compare/style.css:
--------------------------------------------------------------------------------
1 | :root {
2 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
3 | font-weight: 400;
4 | }
5 |
6 | body {
7 | overflow: hidden;
8 | }
9 |
10 | .map {
11 | position: absolute;
12 | top: 40px;
13 | bottom: 0;
14 | width: 100%;
15 | }
16 |
--------------------------------------------------------------------------------
/compare/style.js:
--------------------------------------------------------------------------------
1 | const OFM_DOMAIN = 'tiles.openfreemap.org'
2 |
3 | export async function loadStyle(url) {
4 | const res = await fetch(url)
5 | const text = await res.text()
6 | const modifiedText = text.replace(/__TILEJSON_DOMAIN__/g, OFM_DOMAIN)
7 | const data = JSON.parse(modifiedText)
8 |
9 | delete data.bearing
10 | delete data.center
11 | delete data.zoom
12 | delete data.pitch
13 | delete data.metadata
14 | delete data.name
15 | delete data.id
16 |
17 | if (url.startsWith('/')) {
18 | for (const layer of data.layers) {
19 | // delete layer.metadata
20 | // const layout = layer.layout
21 | // if (layout?.['text-font']) {
22 | // layout['text-font'] = 'Noto Sans Regular
23 | // }
24 | // if (layout?.visibility === 'visible') {
25 | // delete layout.visibility
26 | // }
27 | // if (layer.layout)) {
28 | // delete layer.layout
29 | // }
30 | }
31 | }
32 |
33 | return data
34 | }
35 |
--------------------------------------------------------------------------------
/compare/styles:
--------------------------------------------------------------------------------
1 | ../styles
--------------------------------------------------------------------------------
/compare/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 |
3 | export default defineConfig({
4 | server: {
5 | watch: {
6 | ignored: ['**/*.json'],
7 | },
8 | },
9 | })
10 |
--------------------------------------------------------------------------------
/config/rclone.conf.sample:
--------------------------------------------------------------------------------
1 | [cf]
2 | type = s3
3 | provider = Cloudflare
4 | access_key_id = xxx
5 | secret_access_key = xxx
6 | endpoint = https://xxx.r2.cloudflarestorage.com
7 | no_check_bucket = true
8 |
--------------------------------------------------------------------------------
/docs/quick notes/font-list.txt:
--------------------------------------------------------------------------------
1 | # get from styles command:
2 | # shopt -s globstar; jq -c '.. | objects | ."text-font"? | select(.)' **/*.json | sort | uniq
3 | # + hand processing
4 |
5 | Open Sans Bold
6 | Open Sans Bold Italic
7 | Open Sans Extra Bold
8 | Open Sans Extra Bold Italic
9 | Open Sans Italic
10 | Open Sans Light
11 | Open Sans Light Italic
12 | Open Sans Regular
13 | Open Sans Semibold
14 | Open Sans Semibold Italic
15 |
16 | Noto Sans Bold
17 | Noto Sans Italic
18 | Noto Sans Regular
19 |
20 | PT Sans Bold
21 | PT Sans Italic
22 | PT Sans Narrow Regular
23 |
24 | Roboto Bold
25 | Roboto Condensed Bold
26 | Roboto Condensed Italic
27 | Roboto Condensed Regular
28 | Roboto Italic
29 | Roboto Medium
30 | Roboto Medium Italic
31 | Roboto Regular
32 |
33 | # not in font stack
34 | Inter Bold
35 | Inter Italic
36 | Inter Regular
37 |
38 | # not covering unicode
39 | Metropolis Light
40 | Metropolis Light Italic
41 | Metropolis Medium Italic
42 | Metropolis Regular
43 | Metropolis Semi Bold
44 | Metropolis Semi Bold Italic
--------------------------------------------------------------------------------
/fonts/.gitignore:
--------------------------------------------------------------------------------
1 | */
2 |
--------------------------------------------------------------------------------
/fonts/README.md:
--------------------------------------------------------------------------------
1 | This scripts takes the processed Noto Sans font from the [maplibre/demotiles](https://github.com/maplibre/demotiles) repo.
2 |
3 | It's uploaded as a tar.gz file into the public assets.openfreemap.com bucket.
4 |
5 | ---
6 |
7 | In the collect_not_used script there is also code to clone and process fonts from the following two repos, but are not used.
8 |
9 | https://github.com/protomaps/basemaps-assets
10 | https://github.com/openmaptiles/fonts
11 |
--------------------------------------------------------------------------------
/fonts/collect.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 |
5 |
6 | git_clone_or_update() {
7 | if [ ! -d "$2" ]; then
8 | git clone --depth=1 "$1" "$2"
9 | else
10 | git -C "$2" fetch
11 | git -C "$2" reset --hard @{u}
12 | git -C "$2" clean -xdf
13 | fi
14 | }
15 |
16 |
17 | git_clone_or_update https://github.com/maplibre/demotiles.git maplibre
18 |
19 | rm -rf _collected
20 | mkdir -p _collected/ofm
21 | cp -r maplibre/font/Noto* _collected/ofm
22 |
23 |
--------------------------------------------------------------------------------
/fonts/upload.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 | export RCLONE_CONFIG=../config/rclone.conf
5 |
6 | if [ ! -f $RCLONE_CONFIG ]; then
7 | echo "rclone.conf does not exist. Terminating."
8 | exit 1
9 | fi
10 |
11 |
12 | # creating archive which should be replicatable across runs
13 | # needs GNU tar for --mtime (brew install gnu-tar)
14 | GZIP=-n gtar --sort=name --mtime='2000-01-01' --owner=0 --group=0 \
15 | -C _collected \
16 | -czf ofm.tar.gz ofm
17 | md5 ofm.tar.gz
18 |
19 |
20 | rclone copy \
21 | --checksum \
22 | --multi-thread-streams=8 \
23 | -vP \
24 | ofm.tar.gz cf:ofm-assets/fonts
25 |
26 | rm ofm.tar.gz
27 |
--------------------------------------------------------------------------------
/lint.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | ruff check --fix .
4 | ruff format .
5 |
6 | scripts/lint_styles.py styles
7 |
8 | pnpm biome check --write --unsafe scripts
9 | pnpm biome check --unsafe compare
10 |
--------------------------------------------------------------------------------
/logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hyperknot/openfreemap-styles/a384916948c6e4fa84372a47fd9db75d1eb433d9/logo.jpg
--------------------------------------------------------------------------------
/natural_earth/.gitignore:
--------------------------------------------------------------------------------
1 | ne
2 |
--------------------------------------------------------------------------------
/natural_earth/collect.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 |
5 |
6 | if [ ! -d ne ]; then
7 | git clone --depth=1 -b gh-pages https://github.com/lukasmartinelli/naturalearthtiles.git ne
8 | rm -rf ne/.git
9 | fi
10 |
11 | rm -rf _collected
12 | mkdir -p _collected/ofm
13 |
14 | cp -r ne/tiles/natural_earth_2_shaded_relief.raster _collected/ofm/ne2sr
15 |
--------------------------------------------------------------------------------
/natural_earth/upload.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 | export RCLONE_CONFIG=../config/rclone.conf
5 |
6 | if [ ! -f $RCLONE_CONFIG ]; then
7 | echo "rclone.conf does not exist. Terminating."
8 | exit 1
9 | fi
10 |
11 |
12 | # creating archive which should be replicatable across runs
13 | # needs GNU tar for --mtime (brew install gnu-tar)
14 | GZIP=-n gtar --sort=name --mtime='2000-01-01' --owner=0 --group=0 \
15 | -C _collected \
16 | -czf ofm.tar.gz ofm
17 | md5 ofm.tar.gz
18 |
19 |
20 | rclone copy \
21 | --checksum \
22 | --multi-thread-streams=8 \
23 | -vP \
24 | ofm.tar.gz cf:ofm-assets/natural_earth
25 |
26 | rm ofm.tar.gz
27 |
28 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "packageManager": "pnpm@9.11.0+sha512.0a203ffaed5a3f63242cd064c8fb5892366c103e328079318f78062f24ea8c9d50bc6a47aa3567cabefd824d170e78fa2745ed1f16b132e16436146b7688f19b",
3 | "devDependencies": {
4 | "@biomejs/biome": "^1.9.4",
5 | "@maplibre/maplibre-gl-style-spec": "22.x",
6 | "fast-deep-equal": "^3.1.3",
7 | "prettier": "^3.4.2",
8 | "prettier-plugin-sort-json": "^4.0.0"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/scripts/collect_text_fields.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | import json
3 | import subprocess
4 | from pathlib import Path
5 |
6 | import click
7 |
8 |
9 | @click.command()
10 | @click.argument(
11 | 'styles_folder',
12 | type=click.Path(exists=True, file_okay=False, resolve_path=True, path_type=Path),
13 | )
14 | def cli(styles_folder):
15 | for style_file in styles_folder.rglob('*.json'):
16 | with open(style_file) as fp:
17 | style = json.load(fp)
18 | if 'sources' not in style:
19 | continue
20 |
21 | for layer in style['layers']:
22 | if 'layout' not in layer:
23 | continue
24 |
25 | if 'text-field' in layer['layout']:
26 | print(layer['layout']['text-field'])
27 |
28 |
29 | if __name__ == '__main__':
30 | cli()
31 |
--------------------------------------------------------------------------------
/scripts/copy_text_fields.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 | SOURCE=../styles/bright/style.json
5 |
6 | ./copy_text_fields.py $SOURCE ../styles/bright/style.json
7 | ./copy_text_fields.py $SOURCE ../styles/bright/maplibre.json
8 | ./copy_text_fields.py $SOURCE ../styles/liberty/style.json
9 | ./copy_text_fields.py $SOURCE ../styles/positron/style.json
10 | ./copy_text_fields.py $SOURCE ../styles/dark/style.json
11 |
12 | cd ..
13 | ./lint.sh
14 |
--------------------------------------------------------------------------------
/scripts/download_liberty.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 | rm -rf ../styles/liberty
5 | git clone https://github.com/maputnik/osm-liberty.git ../styles/liberty --depth=1
6 |
7 | cd ../styles/liberty
8 |
9 | rm -rf \
10 | .git \
11 | .github \
12 | demo \
13 | thumbnail.png \
14 | package*.json \
15 | logo.png \
16 | .gitignore \
17 | _config.yml \
18 | sprites \
19 | build_sprites.sh \
20 | sources_list.py \
21 | iconset.json
22 |
23 | cp style.json maputnik_orig_linted.json
24 |
--------------------------------------------------------------------------------
/scripts/fix_styles.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 | ./fix_styles.py ../styles/bright/style.json
5 | ./fix_styles.py ../styles/bright/maplibre.json
6 | ./fix_styles.py ../styles/liberty/style.json
7 | ./fix_styles.py ../styles/positron/style.json
8 |
9 | ./fix_styles.py ../styles/dark/style.json
10 | ./fix_styles.py ../styles/fiord/style.json
11 |
12 |
13 | #./fix_text_fields.py ../styles/bright/maphub.json > maphub
14 | #./fix_text_fields.py ../styles/bright/maplibre_orig_linted.json
15 | #./fix_text_fields.py ../styles/bright/omt_orig_linted.json
16 |
17 | #./fix_text_fields.py ../styles/liberty/style.json
18 | #./fix_text_fields.py ../styles/liberty/maputnik_orig_linted.json
19 | #./fix_text_fields.py ../styles/positron/style.json
20 | #./fix_text_fields.py ../styles/dark/style.json
21 |
22 |
23 | cd ..
24 | ./lint.sh
25 |
--------------------------------------------------------------------------------
/sprites/README.md:
--------------------------------------------------------------------------------
1 | ### Sprites
2 |
3 | Creating a single sprite for all the styles, since they are sharing most of their icons.
4 |
5 | **create_sprites.sh** creates a sprite dir and hashes it based on the file's contents. This is needed because - unlike fonts - if a sprite changes over time, the cached versions can look really bad in the map.
6 |
7 | It also means that every version ever published has to be kept forever, as custom styles can use any old version.
8 |
9 |
10 |
11 | ---
12 |
13 | One liner command to detect all the "icon-image" fields in a style.json:
14 |
15 | ```
16 | jq -c '.. | objects | .["icon-image"]? | select(.)' style.json
17 | ```
18 |
19 |
--------------------------------------------------------------------------------
/sprites/create_sprites.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 | rm -rf _tmp_src _tmp_dst
5 | mkdir -p _tmp_src _tmp_dst sprites
6 |
7 | cp -r ../styles/liberty/svgs/svgs_iconset/. _tmp_src/
8 | cp -r ../styles/liberty/svgs/svgs_not_in_iconset/ _tmp_src/
9 | cp -r ../styles/bright/icons_unique/ _tmp_src/
10 |
11 | (cd spritezero
12 | source "$NVM_DIR/nvm.sh"
13 | nvm use 12
14 | if [ ! -d node_modules ]; then
15 | npm i
16 | fi
17 | node spritezero-cli.js ../_tmp_dst/ofm ../_tmp_src/
18 | node spritezero-cli.js --retina ../_tmp_dst/ofm@2x ../_tmp_src/
19 | )
20 |
21 | rm -rf _tmp_src
22 |
23 | # calculate dir hash
24 | DIR_HASH=$(find _tmp_dst -type f -exec md5sum {} + | sort -k 2 | cut -d " " -f 1 | md5sum |cut -d " " -f 1)
25 | DIR_HASH_CUT=${DIR_HASH:0:4}
26 | echo "$DIR_HASH_CUT"
27 |
28 | HASHED_DIR="sprites/ofm_$DIR_HASH_CUT/"
29 | rm -rf "$HASHED_DIR"
30 | mv _tmp_dst "$HASHED_DIR"
31 |
32 |
--------------------------------------------------------------------------------
/sprites/sprites/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hyperknot/openfreemap-styles/a384916948c6e4fa84372a47fd9db75d1eb433d9/sprites/sprites/.gitignore
--------------------------------------------------------------------------------
/sprites/sprites/ofm_f384/ofm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hyperknot/openfreemap-styles/a384916948c6e4fa84372a47fd9db75d1eb433d9/sprites/sprites/ofm_f384/ofm.png
--------------------------------------------------------------------------------
/sprites/sprites/ofm_f384/ofm@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hyperknot/openfreemap-styles/a384916948c6e4fa84372a47fd9db75d1eb433d9/sprites/sprites/ofm_f384/ofm@2x.png
--------------------------------------------------------------------------------
/sprites/spritezero/.envrc:
--------------------------------------------------------------------------------
1 | # used by direnv
2 |
3 | [ -n "$NVM_DIR" ] && use nvm
4 |
--------------------------------------------------------------------------------
/sprites/spritezero/.gitignore:
--------------------------------------------------------------------------------
1 | package-lock.json
2 |
--------------------------------------------------------------------------------
/sprites/spritezero/.nvmrc:
--------------------------------------------------------------------------------
1 | 12
2 |
--------------------------------------------------------------------------------
/sprites/spritezero/LICENSE.md:
--------------------------------------------------------------------------------
1 | # Internet Systems Consortium license
2 |
3 | Copyright (c) 2016, Mapbox
4 |
5 | Permission to use, copy, modify, and/or distribute this software for any purpose
6 | with or without fee is hereby granted, provided that the above copyright notice
7 | and this permission notice appear in all copies.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
11 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
13 | OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
14 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
15 | THIS SOFTWARE.
16 |
--------------------------------------------------------------------------------
/sprites/spritezero/README.md:
--------------------------------------------------------------------------------
1 | Fork of spritezero-cli from https://github.com/mapbox/spritezero-cli
2 |
3 | Needs node 12.
4 |
5 | With nvm, install it with:
6 |
7 | ```
8 | nvm use 12
9 | npm i
10 | ```
11 |
--------------------------------------------------------------------------------
/sprites/spritezero/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "@mapbox/spritezero": "^8.0.3",
4 | "minimist": "^1.2.8",
5 | "multiline": "^2.0.0"
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/sprites/upload.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 | export RCLONE_CONFIG=../config/rclone.conf
5 |
6 | if [ ! -f $RCLONE_CONFIG ]; then
7 | echo "rclone.conf does not exist. Terminating."
8 | exit 1
9 | fi
10 |
11 |
12 | # creating archive which should be replicatable across runs
13 | # needs GNU tar for --mtime (brew install gnu-tar)
14 |
15 |
16 | (cd sprites
17 | # loop through each subfolder and compress it into a tar file
18 | for folder in */; do
19 | base=$(basename "$folder")
20 | echo $base
21 | GZIP=-n gtar --sort=name --mtime='2000-01-01' --owner=0 --group=0 -czf "${base}.tar.gz" "${base}"
22 | done
23 | md5 *.tar.gz
24 | )
25 |
26 | rclone copy \
27 | --checksum \
28 | --multi-thread-streams=8 \
29 | -vP \
30 | --include "*.tar.gz" \
31 | sprites cf:ofm-assets/sprites
32 |
33 | rm sprites/*.tar.gz
34 |
35 |
--------------------------------------------------------------------------------
/styles/.gitignore:
--------------------------------------------------------------------------------
1 | _*
2 | *.tar.gz
3 |
--------------------------------------------------------------------------------
/styles/bright/README.md:
--------------------------------------------------------------------------------
1 | # OpenFreeMap Bright
2 |
3 | This is a fork of OSM Bright style from OpenMapTiles.
4 |
5 | The original project has been stalled for 2 years; MapTiler is now using a closed-source style.
6 |
7 | If you feel like maintaining this style, please reach out!
8 |
9 | ---
10 |
11 | maplibre.json is an updated version from https://github.com/maplibre/demotiles
12 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/airfield_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/attraction_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/bakery_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/bar_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/cafe_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/circle_stroked_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/clothing_store_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/dentist_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/drinking_water_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/fire_station_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/hospital_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/information_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/laundry_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/lodging_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/marker_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/monument_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/mountain_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/pharmacy_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/picnic_site_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/place_of_worship_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/police_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/prison_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/rail_light_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/religious_christian_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/religious_jewish_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/religious_muslim_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/restaurant_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/rocket_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/school_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/star_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/suitcase_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/town_hall_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/triangle_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/triangle_stroked_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/volcano_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_not_used/wave.svg:
--------------------------------------------------------------------------------
1 |
2 |
10 |
--------------------------------------------------------------------------------
/styles/bright/icons_unique/airport_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_unique/circle_11_black.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/bright/icons_unique/oneway.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
--------------------------------------------------------------------------------
/styles/dark/icons/circle-11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/dark/icons/oneway.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/dark/icons/star-11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/fiord/icons/circle-11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/fiord/icons/star-11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/aerialway.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/aerialway_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/airfield.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/airfield_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/airport.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/airport_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/alcohol_shop.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/american_football.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/american_football_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/aquarium.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/aquarium_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/art_gallery.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/art_gallery_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/attraction.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/attraction_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/bakery.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/bakery_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/bar.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/bar_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/baseball_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/beer.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/beer_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/building.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/building_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/bus.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/bus_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/cafe.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/cafe_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/campsite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/campsite_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/car.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/car_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/castle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/cemetery.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/cemetery_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/cinema.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/cinema_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/circle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/circle_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/circle_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/circle_stroked_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/clothing_store.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/clothing_store_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/college.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/college_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/commercial.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/commercial_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/cross.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/cross_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/danger_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/dentist.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/dentist_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/dog_park_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/drinking_water.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/drinking_water_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/embassy.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/embassy_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/entrance.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/entrance_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/fast_food.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/fast_food_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/fire_station.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/fire_station_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/fuel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/fuel_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/garden.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/garden_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/golf.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/golf_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/grocery_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/hairdresser.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/hairdresser_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/harbor.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/harbor_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/heart.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/heart_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/heliport.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/heliport_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/hospital.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/hospital_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/ice_cream.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/ice_cream_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/industry.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/industry_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/information.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/information_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/laundry.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/laundry_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/lighthouse.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/lighthouse_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/lodging.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/lodging_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/marker.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/marker_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/monument.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/monument_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/mountain.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/mountain_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/museum.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/museum_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/music.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/music_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/parking.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/parking_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/parking_garage.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/parking_garage_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/pharmacy.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/pharmacy_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/picnic_site.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/picnic_site_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/pitch.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/pitch_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/place_of_worship.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/place_of_worship_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/police.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/police_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/post.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/post_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/prison.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/prison_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/railway_light.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/railway_light_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/railway_metro.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/railway_metro_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/ranger_station.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/ranger_station_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/religious_christian.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/religious_christian_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/religious_jewish.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/religious_jewish_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/religious_muslim.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/religious_muslim_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/restaurant.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/restaurant_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/roadblock.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/roadblock_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/rocket.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/rocket_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/school.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/school_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/shelter.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/shelter_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/shop.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/shop_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/skiing.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/skiing_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/soccer.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/square.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/square_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/square_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/square_stroked_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/stadium.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/stadium_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/star.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/star_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/star_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/star_stroked_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/suitcase.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/suitcase_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/swimming.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/swimming_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/telephone_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/theatre.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/town_hall.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/town_hall_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/triangle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/triangle_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/triangle_stroked.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/triangle_stroked_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/volcano_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/warehouse.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/warehouse_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/waste_basket.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/waste_basket_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/water.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/water_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_iconset/zoo_11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_not_in_iconset/arrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_not_in_iconset/dot_10.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_not_in_iconset/dot_11.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
--------------------------------------------------------------------------------
/styles/liberty/svgs/svgs_not_in_iconset/dot_9.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
--------------------------------------------------------------------------------
/styles/positron/README.md:
--------------------------------------------------------------------------------
1 | # OpenFreeMap Positron
2 |
3 | This is a fork of Positron style from OpenMapTiles.
4 |
5 | The original project has been stalled for 4 years; MapTiler is now using a closed-source style.
6 |
7 | If you feel like maintaining this style, please reach out!
8 |
--------------------------------------------------------------------------------
/styles/upload.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 | export RCLONE_CONFIG=../config/rclone.conf
5 |
6 | if [ ! -f $RCLONE_CONFIG ]; then
7 | echo "rclone.conf does not exist. Terminating."
8 | exit 1
9 | fi
10 |
11 |
12 | rm -rf _collected
13 | mkdir -p _collected/ofm
14 |
15 | jq -c . bright/style.json > _collected/ofm/bright.json
16 | jq -c . liberty/style.json > _collected/ofm/liberty.json
17 | jq -c . positron/style.json > _collected/ofm/positron.json
18 | jq -c . dark/style.json > _collected/ofm/dark.json
19 | jq -c . fiord/style.json > _collected/ofm/fiord.json
20 |
21 | echo "Collected styles:"
22 | echo
23 | ls -1 _collected/ofm
24 | echo
25 |
26 | # creating archive which should be replicatable across runs
27 | # needs GNU tar for --mtime (brew install gnu-tar)
28 | GZIP=-n gtar --sort=name --mtime='2000-01-01' --owner=0 --group=0 \
29 | -C _collected \
30 | -czf ofm.tar.gz ofm
31 | md5 ofm.tar.gz
32 |
33 |
34 | rclone copy \
35 | --checksum \
36 | --multi-thread-streams=8 \
37 | -vP \
38 | ofm.tar.gz cf:ofm-assets/styles
39 |
40 | rm -rf _collected ofm.tar.gz
41 |
42 |
--------------------------------------------------------------------------------