Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/FlashpointProject/launcher

Launcher for Flashpoint Archive
https://github.com/FlashpointProject/launcher

desktop-app desktop-application electron launcher linux windows

Last synced: about 1 month ago
JSON representation

Launcher for Flashpoint Archive

Awesome Lists containing this project

README

        

# Flashpoint Launcher
The launcher for Flashpoint Archive (the non-profit web preservation project).

![Screenshot](https://user-images.githubusercontent.com/10117720/55276674-a24e8c80-52f6-11e9-8b59-4fb396c36026.png)

### Status

[![Release Status](https://github.com/FlashpointProject/launcher/workflows/Release%20Status/badge.svg)](https://github.com/FlashpointProject/launcher)
[![Build Status](https://github.com/FlashpointProject/launcher/workflows/Build%20Status/badge.svg)](https://github.com/FlashpointProject/launcher)
[![Coverage Status](https://coveralls.io/repos/github/FlashpointProject/launcher/badge.svg?branch=master)](https://coveralls.io/github/FlashpointProject/launcher?branch=master)
[![Crowdin](https://badges.crowdin.net/flashpoint-launcher/localized.svg)](https://crowdin.com/project/flashpoint-launcher)

### Links
* [Flashpoint Archive](http://flashpointarchive.org) - Download Flashpoint here (the launcher is bundled with it)
* [Donate](https://opencollective.com/flashpointarchive) - Funds go towards the Flashpoint Archive non-profit to sustain archival efforts, not to fund developers of the launcher.

## About
The Flashpoint Launcher (FPL) is a desktop application made for browsing, storing and launching other applications (games, animations, web apps etc.). It is specifically made for Flashpoint Archive, a non-profit with the goal of furthering archival and accessibility efforts for games, animations and other digital interactive experiences on the web.

See the `docs` folder for more information on setting up Flashpoint and Extension authoring.

Extension API Documentation: https://flashpointproject.github.io/launcher_ApiDocs/

## Building from source

### External Dependencies

#### Dependencies
* [Git](https://git-scm.com/downloads) (for downloading and updating the source code and sub-modules)
* [Node & NPM](https://nodejs.org/en/download/) (for building and running the source code)

#### Linux Dependencies
* `libgtk-3-0`
* `libnss3`

Follow Development Setup, using ``master`` branch for a stable release or ``develop`` for the latest features. After setup is complete, run ``npm run release`` to generate release builds in ``/dist``.

Install by running ``sudo apt install libgtk-3-0 libnss3``

### Development Setup

1. Clone the repository with ``git clone --branch develop --recurse-submodules https://github.com/FlashpointProject/launcher.git launcher`` (where ``launcher`` is the path of the directory you want to be the root of the repository).

2. Navigate to the root of the repository and run ``npm install`` - this will download and install all the dependencies from npm (it may take a few minutes).

3. Run ``npm run build`` or ``npm run watch`` (at the root of the repository). This will compile the source code and such so the launcher can be executed. If ``watch`` is used, it will rebuild the launcher automatically when a source code or static file is changed.

4. Run ``npm run start`` (at the root of the repository) to start the launcher. It is recommended to do this in a second command prompt / terminal.

5. **Optional** - It is highly recommended to set the launcher's "Flashpoint folder". This is where the launcher will read and write most data to and from. You can set the "Flashpoint folder" path at the "Config" tab in the launcher. Make sure the background of the text field is green (this means the path is valid) and don't forget to hit "Save and Exit"!

Notes:

* You will need to run ``npm install`` whenever a dependency is added or upgraded in ``package.json``.
* The launcher is changing rapidly and does not always support older "Flashpoint folders". Sometimes it does not even support the most recent one.
* It is recommended to have a separate "Flashpoint folder" for launcher development than normal usage.

## Package Scripts
Short descriptions of what the scripts in ``package.json`` do:

* ``build`` - Build the launcher (build main & renderer and copy static files to ``./build/``)
* ``watch`` - Build the launcher and incrementally rebuild it when the source or static files change
* ``pack`` - Pack the latest build (and put the packaged file with the executable electron app in ``./dist/``)
* ``snapshot`` - Build then pack the launcher (same as running ``build`` then ``pack``)
* ``release`` - Build then pack the launcher in release mode (same as ``snapshot`` but it also creates installers, build artifacts etc.)
* ``start`` - Run the latest build of the launcher
* ``test`` - Run the test suite (to find out if anything covered by the tests has been broken)
* ``lint`` - Run the linter

``pack`` / ``snapshot`` / ``release`` will by default pack for the OS and architecture of the machine that runs it.

To pack for a specific OS / architecture use the handy package scripts (such as ``pack:linux`` or ``release:win32``) or set the environment variables ``PACK_PLATFORM`` / ``PACK_ARCH``.

## Troubleshooting

### "Not allowed to load local resource" Error
If this error appears in the electron applications console, it is probably because the file it is looking for does not exist. To solve this, run ``npm run build``

Example: ``Not allowed to load local resource: file:////build/renderer/index.html``