cargo-skyline 1.18.0

A cargo subcommand for working with Skyline plugins written in Rust
# cargo-skyline

A cargo subcommand for making it easier to work with (and make) [Skyline](https://github.com/ultimate-research/skyline-rs) plugins.

```
cargo-skyline 1.13.0

USAGE:
    cargo skyline <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    build          Build the current plugin as an NRO
    help           Prints this message or the help of the given subcommand(s)
    install        Build the current plugin and install to a switch over FTP
    list           List the files in the plugin directory for the given game
    listen         Listen for logs being output from a switch running skyline at the given ip
    new            Create a new plugin from a template
    package        Package plugin and latest Skyline into a zip file to prepare it for release
    rm             Delete a file from the plugin directory for the given game
    run            Install the current plugin and listen for skyline logging
    self-update    Update cargo-skyline command
    set-ip         Set the IP address of the switch to install to
    show-ip        Show the currently configured IP address
    update         Update libraries for current plugin folder
    update-std     Download the latest stdlib for aarch64-skyline-switch
```

## Prerequisites

* [Rust]https://www.rust-lang.org/tools/install
* [git]https://git-scm.com/downloads

## Installation

```sh
cargo install cargo-skyline
```

## Example usage

Create a new plugin called `fps_counter` (in a folder of the same name) in the current directory:
```
cargo skyline new fps_counter
```

Build the current plugin as an nro:
```
cargo skyline build
```

Set the ip of the Switch to install to as `192.168.0.0`:
```
cargo skyline set-ip 192.168.0.0
```

Install the current plugin on a switch at ip `192.168.0.0` for an application with title of `01006A800016E000`:
```
cargo skyline install --ip 192.168.0.0 --title-id 01006A800016E000
```
Note: if the IP has been set, it can be omitted from the arguments (or overriden using the arguments).

To set a default title id for a plugin use the following format in `Cargo.toml`:
```toml
[package.metadata.skyline]
titleid = "01006A800016E000"
```

Install the current plugin to the default IP and title ID, then listen for output from the console:
```
cargo skyline run
```

## Alternative Installation via Docker

```sh
docker build -t cargo-skyline .
docker run it cargo-skyline cargo skyline --help
```