by @Linojon
Virtual Pinball Table Manager
Pinman is a virtual pinball table and media file manager that lets you keep all table-specific files and meta data in its own folder, separatated from the code.
Pinman helps you maintain a library of your virtual pinball tables. With Pinman you can install, backup, organize, and maintain multiple versions of your pinball tables, across one or more virutal pinball machines.
- Each table is organized in a single folder, with subfolders for each version or variant.
- Each table version includes its own manifest file that describes the files and configuration. (No central data store).
- Command line tools let you add, collect, deploy, clone, and archive tables.
- Your tables collection can be on a separate computer from the pincab.
- You Install a Table to one a target Machine, where its files and configuration data are copied to the appropriate Software folders and files.
- Inversely, you can Collect existing files and game state from a Machine, to initialize or synchronize a table version.
- The project will be open source, written in node and typescript.
In Pinman we use YAML for configuration and manifest files. YAML is a is a plain text human-readable data-serialization language commonly used for configuration files.
- YAML is more structures than INI files
- YAML is more compact and readable than XML files
- YAML can be commented unlike JSON files
- YAML is human readable unlike binary CFG or database files
$ npm install -g pinman
$ pinman COMMAND
running command...
$ pinman (--version)
pinman/0.1.0 win32-x64 node-v16.17.0
$ pinman --help [COMMAND]
USAGE
$ pinman COMMAND
...
$ npm install -g vpin
$ vpin COMMAND
running command...
$ vpin (--version)
vpin/0.0.0 win32-x64 node-v16.17.0
$ vpin --help [COMMAND]
USAGE
$ vpin COMMAND
...
$ npm install -g oclif-hello-world
$ oex COMMAND
running command...
$ oex (--version)
oclif-hello-world/0.0.0 darwin-x64 node-v16.13.1
$ oex --help [COMMAND]
USAGE
$ oex COMMAND
...
pinman help [COMMANDS]
pinman plugins
pinman plugins:install PLUGIN...
pinman plugins:inspect PLUGIN...
pinman plugins:install PLUGIN...
pinman plugins:link PLUGIN
pinman plugins:uninstall PLUGIN...
pinman plugins:uninstall PLUGIN...
pinman plugins:uninstall PLUGIN...
pinman plugins update
Display help for pinman.
USAGE
$ pinman help [COMMANDS] [-n]
ARGUMENTS
COMMANDS Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for pinman.
See code: @oclif/plugin-help
List installed plugins.
USAGE
$ pinman plugins [--core]
FLAGS
--core Show core plugins.
DESCRIPTION
List installed plugins.
EXAMPLES
$ pinman plugins
See code: @oclif/plugin-plugins
Installs a plugin into the CLI.
USAGE
$ pinman plugins:install PLUGIN...
ARGUMENTS
PLUGIN Plugin to install.
FLAGS
-f, --force Run yarn install with force flag.
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Installs a plugin into the CLI.
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ pinman plugins add
EXAMPLES
$ pinman plugins:install myplugin
$ pinman plugins:install https://github.com/someuser/someplugin
$ pinman plugins:install someuser/someplugin
Displays installation properties of a plugin.
USAGE
$ pinman plugins:inspect PLUGIN...
ARGUMENTS
PLUGIN [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ pinman plugins:inspect myplugin
Installs a plugin into the CLI.
USAGE
$ pinman plugins:install PLUGIN...
ARGUMENTS
PLUGIN Plugin to install.
FLAGS
-f, --force Run yarn install with force flag.
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Installs a plugin into the CLI.
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ pinman plugins add
EXAMPLES
$ pinman plugins:install myplugin
$ pinman plugins:install https://github.com/someuser/someplugin
$ pinman plugins:install someuser/someplugin
Links a plugin into the CLI for development.
USAGE
$ pinman plugins:link PLUGIN
ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ pinman plugins:link myplugin
Removes a plugin from the CLI.
USAGE
$ pinman plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ pinman plugins unlink
$ pinman plugins remove
Removes a plugin from the CLI.
USAGE
$ pinman plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ pinman plugins unlink
$ pinman plugins remove
Removes a plugin from the CLI.
USAGE
$ pinman plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ pinman plugins unlink
$ pinman plugins remove
Update installed plugins.
USAGE
$ pinman plugins update [-h] [-v]
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.
vpin hello PERSON
vpin hello world
vpin help [COMMAND]
vpin plugins
vpin plugins:install PLUGIN...
vpin plugins:inspect PLUGIN...
vpin plugins:install PLUGIN...
vpin plugins:link PLUGIN
vpin plugins:uninstall PLUGIN...
vpin plugins:uninstall PLUGIN...
vpin plugins:uninstall PLUGIN...
vpin plugins update
Say hello
USAGE
$ vpin hello [PERSON] -f <value>
ARGUMENTS
PERSON Person to say hello to
FLAGS
-f, --from=<value> (required) Who is saying hello
DESCRIPTION
Say hello
EXAMPLES
$ oex hello friend --from oclif
hello friend from oclif! (./src/commands/hello/index.ts)
See code: dist/commands/hello/index.ts
Say hello world
USAGE
$ vpin hello world
DESCRIPTION
Say hello world
EXAMPLES
$ vpin hello world
hello world! (./src/commands/hello/world.ts)
Display help for vpin.
USAGE
$ vpin help [COMMAND] [-n]
ARGUMENTS
COMMAND Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for vpin.
See code: @oclif/plugin-help
List installed plugins.
USAGE
$ vpin plugins [--core]
FLAGS
--core Show core plugins.
DESCRIPTION
List installed plugins.
EXAMPLES
$ vpin plugins
See code: @oclif/plugin-plugins
Installs a plugin into the CLI.
USAGE
$ vpin plugins:install PLUGIN...
ARGUMENTS
PLUGIN Plugin to install.
FLAGS
-f, --force Run yarn install with force flag.
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Installs a plugin into the CLI.
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ vpin plugins add
EXAMPLES
$ vpin plugins:install myplugin
$ vpin plugins:install https://github.com/someuser/someplugin
$ vpin plugins:install someuser/someplugin
Displays installation properties of a plugin.
USAGE
$ vpin plugins:inspect PLUGIN...
ARGUMENTS
PLUGIN [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ vpin plugins:inspect myplugin
Installs a plugin into the CLI.
USAGE
$ vpin plugins:install PLUGIN...
ARGUMENTS
PLUGIN Plugin to install.
FLAGS
-f, --force Run yarn install with force flag.
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Installs a plugin into the CLI.
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ vpin plugins add
EXAMPLES
$ vpin plugins:install myplugin
$ vpin plugins:install https://github.com/someuser/someplugin
$ vpin plugins:install someuser/someplugin
Links a plugin into the CLI for development.
USAGE
$ vpin plugins:link PLUGIN
ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ vpin plugins:link myplugin
Removes a plugin from the CLI.
USAGE
$ vpin plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ vpin plugins unlink
$ vpin plugins remove
Removes a plugin from the CLI.
USAGE
$ vpin plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ vpin plugins unlink
$ vpin plugins remove
Removes a plugin from the CLI.
USAGE
$ vpin plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ vpin plugins unlink
$ vpin plugins remove
Update installed plugins.
USAGE
$ vpin plugins update [-h] [-v]
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.
oex hello PERSON
oex hello world
oex help [COMMAND]
oex plugins
oex plugins:inspect PLUGIN...
oex plugins:install PLUGIN...
oex plugins:link PLUGIN
oex plugins:uninstall PLUGIN...
oex plugins update
Say hello
USAGE
$ oex hello [PERSON] -f <value>
ARGUMENTS
PERSON Person to say hello to
FLAGS
-f, --from=<value> (required) Who is saying hello
DESCRIPTION
Say hello
EXAMPLES
$ oex hello friend --from oclif
hello friend from oclif! (./src/commands/hello/index.ts)
See code: dist/commands/hello/index.ts
Say hello world
USAGE
$ oex hello world
DESCRIPTION
Say hello world
EXAMPLES
$ oex hello world
hello world! (./src/commands/hello/world.ts)
Display help for oex.
USAGE
$ oex help [COMMAND] [-n]
ARGUMENTS
COMMAND Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for oex.
See code: @oclif/plugin-help
List installed plugins.
USAGE
$ oex plugins [--core]
FLAGS
--core Show core plugins.
DESCRIPTION
List installed plugins.
EXAMPLES
$ oex plugins
See code: @oclif/plugin-plugins
Displays installation properties of a plugin.
USAGE
$ oex plugins:inspect PLUGIN...
ARGUMENTS
PLUGIN [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ oex plugins:inspect myplugin
Installs a plugin into the CLI.
USAGE
$ oex plugins:install PLUGIN...
ARGUMENTS
PLUGIN Plugin to install.
FLAGS
-f, --force Run yarn install with force flag.
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Installs a plugin into the CLI.
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ oex plugins add
EXAMPLES
$ oex plugins:install myplugin
$ oex plugins:install https://github.com/someuser/someplugin
$ oex plugins:install someuser/someplugin
Links a plugin into the CLI for development.
USAGE
$ oex plugins:link PLUGIN
ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ oex plugins:link myplugin
Removes a plugin from the CLI.
USAGE
$ oex plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ oex plugins unlink
$ oex plugins remove
Update installed plugins.
USAGE
$ oex plugins update [-h] [-v]
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.