Yet another mod manager [WIP]

[xming]
New member
 
Posts: 6
Joined: Tue Sep 30, 2014 12:05

Yet another mod manager [WIP]

by [xming] » Tue Sep 30, 2014 12:35

This a mod manager for server admins, game creators and who want to play with it. Currently it only works with *NIX system, everything is written in the vulnerable bash.

Everything is kept in git and mods are submodules, this means that you can keep track of the mods and their versions, easy to roll back to a certain point of time.

Currently working features:
- activate/deactivate mods
- when activating a mod, dependencies are pulled and activated too, optional dependencies can be installed too.
- disable installing dependencies
- list enabled/disabled mods
- a pseudo ini file (contains sets, modpacks and mods information)
- define sets of mods
- minetest version compatibility check

Planned features:
- inter mods compatibility check
- enable/disable all mods in a set
- ....

Possible user case:
- keeping history of mods and their version in the git
- keeping mods up to date with just one command
- rolling back
- exchanging sets as games
- creating new games
- ....

Constructive comments are welcomed.

Sample output:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
$ ./manage_mods.sh -l enable
Enabled mods:
$ ./manage_mods.sh -e mg
enabling stairs ...done
enabling wool ...done
enabling farming ...done
enabling default ...done
enabling mg ...done
$ ./manage_mods.sh -l enable
Enabled mods:
default
farming
mg
stairs
wool
$ ./manage_mods.sh -l all
Available mods:
d: along_shore
d: areas
d: boats
d: bones
d: bucket
d: bushes
d: bushes_classic
d: cavestuff
d: creative
e: default
d: doors
d: dryplants
d: dye
e: farming
d: ferns
d: fire
d: flowers
d: flowers_plus
d: give_initial_stuff
d: intllib
d: inventory_plus
d: junglegrass
e: mg
d: modmenu
d: molehills
d: moreblocks
d: moretrees
d: mushroom
d: nature_classic
d: plants_lib
d: poisonivy
d: screwdriver
d: sethome
e: stairs
d: tnt
d: trunks
d: vessels
d: vines
d: woodsoils
e: wool
d: xpanes
d: youngtrees
d: zcg


Sample ini
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
Code: Select all
;comment 1
#comment 2
title = my title
abc = 123

name = My Own Game

[mod]
name=boat
license=
desc=a boat
homepage = http://boat.com/
gitsrc =
category =
minver =
maxver =
incompatible = aaa
bbb
ccc
belongs = @minetest_game

[mod]
name=farming
desc=faming mod
licenese =
homepage= http://gfarming.com/
gitsrc=git://
category =
minver =
maxver =
incompatible = AAA
BBB
CCC

belong = @minetest_game

[set]
name = mygame
mods = boat farming

[modpack]
name = animal_modpack
desc = mob
licenese =
homepage =
gitsrc =
category =
minver =
maxver =
incompatible =
contains =

Last edited by [xming] on Wed Oct 01, 2014 20:49, edited 4 times in total.
 

User avatar
rubenwardy
Member
 
Posts: 4500
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy

Re: Yet an other mod manager

by rubenwardy » Tue Sep 30, 2014 15:42

Will you be adding support for mmdb (which supplies git links), or is it not the purpose?

Also, another.
 

[xming]
New member
 
Posts: 6
Joined: Tue Sep 30, 2014 12:05

Re: Yet an other mod manager

by [xming] » Tue Sep 30, 2014 15:57

rubenwardy wrote:Will you be adding support for mmdb (which supplies git links), or is it not the purpose?


TBH I don't know, mmdb doesn't have much mods and it misses some info I need, I currently don't see any added benefits.
 

User avatar
rubenwardy
Member
 
Posts: 4500
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy

Re: Yet another mod manager [WIP]

by rubenwardy » Tue Sep 30, 2014 17:19

Is the information you need all covered in sample.ini?

I am a contributor to MMDB. It is in development, but eventually all mods will be added to there.

This looks like a nice project, anyway.
 

User avatar
Evergreen
Member
 
Posts: 2131
Joined: Sun Jan 06, 2013 01:22
GitHub: 4Evergreen4
IRC: EvergreenTree
In-game: Evergreen

Re: Yet an other mod manager

by Evergreen » Tue Sep 30, 2014 18:06

[xming] wrote:
rubenwardy wrote:Will you be adding support for mmdb (which supplies git links), or is it not the purpose?


TBH I don't know, mmdb doesn't have much mods and it misses some info I need, I currently don't see any added benefits.

mmdb only has mods if people upload them there.
"Help! I searched for a mod but I couldn't find it!"
http://krock-works.16mb.com/MTstuff/modSearch.php
 

[xming]
New member
 
Posts: 6
Joined: Tue Sep 30, 2014 12:05

Re: Yet another mod manager [WIP]

by [xming] » Tue Sep 30, 2014 19:06

rubenwardy wrote:Is the information you need all covered in sample.ini?

yes
rubenwardy wrote:This looks like a nice project, anyway.


Thanks.

The ultimate goal is to have most mods included and with correct information for the minetest version compatibility and inter-mods compatibility, then it will be a central place to get mods and manage them. But this is future talk and needs a lot of collaborations.

Currently I am trying to get it to a state that most planned features are implemented, once that is done I will push it to a github repo and everyone can start cloning it make changes then make a PR. After that the burden is to keep the ini file up to date. Ideally every mod author would just add his/her mod and make a PR.
 

[xming]
New member
 
Posts: 6
Joined: Tue Sep 30, 2014 12:05

Re: Yet another mod manager [WIP]

by [xming] » Wed Oct 01, 2014 20:47

Finally written a ini (pseudo) parser in pure bash, still need to do the compatibility checks. OP updated.
 

Zatherz
Member
 
Posts: 32
Joined: Mon Sep 22, 2014 23:29
GitHub: Zatherz
IRC: zatherz
In-game: Zatherz

Re: Yet another mod manager [WIP]

by Zatherz » Sun Oct 05, 2014 03:09

Ini sounds too Windozy. Using conf extension would make it look more like a Linux configuration file.
 

[xming]
New member
 
Posts: 6
Joined: Tue Sep 30, 2014 12:05

Re: Yet another mod manager [WIP]

by [xming] » Sun Oct 05, 2014 08:27

Well I was going to use toml, but it's too difficult to write parser in pure bash, so it's actually a cut down version of toml which resembles to ini, with current format the translation to json is pretty simple, so I am going forward with this unless something else turns out better.
 


Return to Minetest-Related

Who is online

Users browsing this forum: No registered users and 3 guests

cron