Bukin
Plugin and server installer for Minecraft similar to Bundler.
Installation
Bukin requires Ruby 1.9 or greater.
apt-get install ruby
gem install bukin
Usage
Bukin works by reading a list of dependencies from a Bukfile. The most basic usage would be:
bukin init
bukin install
Running bukin init
will create a file named Bukfile that lists 'craftbukkit' as the server to be installed. Running bukin install
will then download and install Bukkit. You can make changes to what will be installed by editing the Bukfile. Specify a server using the server
keyword and a plugin using the plugin
keyword.
server 'craftbukkit'
plugin 'worldedit'
plugin 'worldguard'
You can specify specific versions of a plugin or server to install. Craftbukkit uses its own special version naming (artifact slugs).
server 'craftbukkit', 'build-2754'
plugin 'worldedit', '5.5.5'
plugin 'worldguard', '5.7.3'
You can also specify groups that resources should be placed in. This allows you to only install specific plugins depending on your environment or server setup.
# Will not be installed if the group 'test' is excluded
plugin 'worldedit', group: :test
group :test do
plugin 'worldguard'
plugin 'worldedit'
end
# Will not be installed if both the groups 'test' and 'development' are excluded
plugin 'worldedit', group: [:test, :development]
group :test, :development do
plugin 'worldguard'
plugin 'worldedit'
end
# Will be installed regardless of what groups are specified
plugin 'worldguard'
When installing, resources that exist only in excluded groups will not be installed.
bukin install --without development test
By default, bukin will try to download jar files from bukkit dev. If only zip files are available, it will automatically extract all jar files from it. If you want to specify what files are extracted from a zip file, use the extract
option. It takes a string or ruby regular expression used to match file names in the zip file.
plugin 'permissionsex', '1.19.5', extract: /PermissionsEx.*\.jar/
Plugins or servers can also be downloaded from Jenkins. Just specify the base url for Jenkins and a ruby regular expression matching the file you want to download. If no file is specified, bukin will download the first one listed.
server 'spigot', 'build-844', jenkins: 'http://ci.md-5.net', file: /spigot\.jar/
Need something custom? Use the download
option. Version is optional but will display when the plugin is downloading.
plugin 'mycustomplugin', '2.4', download: 'http://example.com/My-Custom-Plugin.jar'
When installing, the entire Bukfile is evaluated as ruby code. This means that you can do just about anything with it. For instance, if you wanted to conditionally install spigot if the file spigot.yml
exists, you could do
if File.exist? 'spigot.yml'
server 'spigot', jenkins: 'http://ci.md-5.net'
else
server 'craftbukkit'
end
Just make sure that you read and trust any Bukfile you download before running bukin install
.
Features
Bukin is still a work in progress and is far from feature complete. Currently it supports:
- Resource installation from
- dev.bukkit.org
- dl.bukkit.org
- Jenkins
- Direct download
- Versioning
- Specific versions
- Categories (ex: latest test build)
- Auto selection if none specified
- Automatic or user specified filtering of downloaded files
- Automatic or user specified extraction of zip files
- Automatic detection of already installed plugins
- Installation groups
Eventually, I'd like to add some of the following:
- A lockfile that tracks exactly what versions are installed
- Dependency tracking and resolution
- More complex version selectors
- Modpack support
- Resource installation from git
- Top level 'source' directives
- More commands for viewing information and updating plugins
If you have features you'd like to see, pull request are welcome.