Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/zewaka/meta-yoinker

DMI metadata yoinking and yeeting tool
https://github.com/zewaka/meta-yoinker

byond dmi ss13 tool yoink

Last synced: about 1 month ago
JSON representation

DMI metadata yoinking and yeeting tool

Awesome Lists containing this project

README

        

# MetaYoinker

[![dependency status](https://deps.rs/repo/github/zewaka/meta-yoinker/status.svg)](https://deps.rs/repo/github/zewaka/meta-yoinker)
[![Build Status](https://github.com/zewaka/meta-yoinker/workflows/CI/badge.svg)](https://github.com/zewaka/meta-yoinker/actions?workflow=CI)

Native/Web tool to yoink DMI metadata from files and yeet it into another file

Supported platforms:
* Windows
* macOS
* Linux
* Web

## Downloading

Check out the web version: https://zewaka.github.io/meta-yoinker

If you're on windows, download from the [latest release](https://github.com/ZeWaka/meta-yoinker/releases).

If you're on Linux or Mac, you will need to build it yourself. Follow the development instructions below.

## Developing

This tool is written in [Rust](https://rust-lang.org/).

1. Install the Rust compiler's dependencies (primarily the system linker):

* Ubuntu: `sudo apt-get install gcc-multilib`
* Windows (MSVC): [Build Tools for Visual Studio 2017](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools)
* Windows (GNU): No action required

2. Use [the Rust installer](https://rustup.rs/), or another Rust installation method.

### Testing locally

Make sure you are using the latest version of stable rust by running `rustup update`.

`cargo run --release`

On Linux you need to first run:

`sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev`

On Fedora Rawhide you need to run:

`dnf install clang clang-devel clang-tools-extra libxkbcommon-devel pkg-config openssl-devel libxcb-devel gtk3-devel atk fontconfig-devel`

The executable will be located in the `target/release` folder.

### Web Locally

This application can be compiled to [WASM](https://en.wikipedia.org/wiki/WebAssembly), and published as a web page.

We use [Trunk](https://trunkrs.dev/) to build for the web target.
1. Install the required target with `rustup target add wasm32-unknown-unknown`.
2. Install Trunk with `cargo install --locked trunk`.
3. Run `trunk serve` to build and serve on `http://127.0.0.1:8080`. Trunk will rebuild automatically if you edit the project.
4. Open `http://127.0.0.1:8080/index.html#dev` in a browser. See the warning below.

> `assets/sw.js` script will try to cache our app, and loads the cached version when it cannot connect to server allowing your app to work offline (like PWA).
> appending `#dev` to `index.html` will skip this caching, allowing us to load the latest builds during development.

### Web Deploy
1. Just run `trunk build --release`.
2. It will generate a `dist` directory as a "static html" website
3. Upload the `dist` directory to any of the numerous free hosting websites including [GitHub Pages](https://docs.github.com/en/free-pro-team@latest/github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site).
4. we already provide a workflow that auto-deploys our app to GitHub pages if you enable it.
> To enable Github Pages, you need to go to Repository -> Settings -> Pages -> Source -> set to `gh-pages` branch and `/` (root).
>
> If `gh-pages` is not available in `Source`, just create and push a branch called `gh-pages` and it should be available.