Skip to content

Files

Latest commit

3e835fd · Mar 3, 2022

History

History
This branch is 12169 commits behind mullvad/mullvadvpn-app:main.

scripts

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Mar 22, 2021
May 10, 2021
Oct 12, 2021
Mar 3, 2022
Apr 9, 2019
Nov 3, 2021
Apr 25, 2019
Jul 7, 2021
Oct 20, 2021
Apr 9, 2019
Feb 15, 2022
Oct 25, 2021

This is a folder with the supporting scripts written in Python 3, node, bash.

Dependency installation notes

  1. Install GDAL/OGR dependencies, which are required by Fiona python package.

    You can install GDAL via Homebrew on macOS: brew install gdal

    For other platforms, please follow the guide on https://gdal.org/download.html#binaries

  2. Run the following command in terminal to install python dependencies: pip3 install -r requirements.txt

  3. Run npm install -g topojson-server to install geo2topo tool which is used by python scripts to convert GeoJSON to TopoJSON

  4. Make sure you have gettext utilities installed. https://www.gnu.org/software/gettext/

Geo data installation notes

Go to http://www.naturalearthdata.com/downloads/50m-cultural-vectors/ and download ZIP files with the following shapes:

  • Admin 0 – Countries
  • Admin 1 – States, provinces - boundary lines
  • Populated Places - simple dataset is enough

or use cURL to download all ZIPs:

curl -L -O https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/cultural/ne_50m_admin_0_countries.zip
curl -L -O https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/50m/cultural/ne_50m_admin_1_states_provinces_lines.zip
curl -L -O https://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places.zip

Extract the downloaded ZIP files into scripts folder. Make sure the following folders exist after extraction:

  • ne_50m_admin_0_countries
  • ne_50m_admin_1_states_provinces_lines
  • ne_10m_populated_places

or use the following script:

unzip ne_50m_admin_0_countries.zip -d ne_50m_admin_0_countries/
unzip ne_50m_admin_1_states_provinces_lines.zip -d ne_50m_admin_1_states_provinces_lines/
unzip ne_10m_populated_places.zip -d ne_10m_populated_places/

Geo data extraction notes

Run the following script to produce a TopoJSON data used by the app:

python3 extract-geo-data.py

and finally generate the R-Tree cache:

npm exec ts-node prepare-rtree.ts

At this point all of the data should be saved in gui/scripts/out folder.

App integration notes

Once you've extracted all the geo data, run the integration script that will copy all files ignoring intermediate ones into the gui/assets/geo folder:

python3 integrate-into-app.py

Locking Python dependencies

  1. Freeze dependencies:
pip3 freeze -r requirements.txt

and save the output into requirements.txt.

  1. Hash them with hashin tool:
hashin --python 3.7 --verbose --update-all