New installing commands conventions

Hi Guys, we’ve updated our preside commands to reflect what we expect to be working. i.e. we have a zip with a “preside” subfolder. We expect that we’d end up with ~/.CommandBox/commands/preside. However, we’re seeing that the contents of the preside folder are being unzipped directly into the commands folder.

Here is the zip that we have forgebox pointing to: http://downloads.presidecms.com.s3.amazonaws.com/commandbox-commands/stable/PresideCMSCommandBoxCommands-0.1.3.zip

Does that seem right to you?

TIA

Dominic

Hi Dominic, I chatted with Alex on Skype about this and thought I’d reply here too just for completeness.

The issue is that if you have a folder in the root of your package that is named the same as the slug for your package, CommandBox will assume that folder is actually the package. We had to do this for backwards compatibility with our existing packages already on ForgeBox which were built for some of our older tools. We thought it was unlikely that any package would have another folder in it named after the package itself, but I guess we were wrong :slight_smile: That check will eventually be removed, but not until after we’ve updated the CF Builder ColdBox Platform Utilities, the ContentBox admin, etc.

From what I discussed with Alex, the easiest thing to do might be to update the slug on ForgeBox to be something like “preside-commands” so it no longer conflicts with the “preside” folder. Also, going forward, our standard will be to wrap up your package in a subfolder (of any name) in the root of your zip. NPM does this and it’s very handy for people whose Git repos contain the package in the root as they can just point to the GitHub download URL.

So your package could look like this:

preside-commands.zip
/preside-commands/
/preside-commands/box.json
/preside-commands/preside/
/preside-commands/preside/start.cfc
/preside-commands/preside/new/…
/preside-commands/preside/_resources/…

Also, consider using the ignore directive in your box.json to not install your readmes since they litter the root of the commands folder. Alternatively, just move them inside the ‘preside’ folder.

And again, the “preside-commands” folder name is arbitrary. it could be “foobar” and it will still work as long as it has a box.json in it. The box.json marks the root of the package. Just remember, if you change the slug, update your docs “install newSlugName”

Thanks!

~Brad

ColdBox Platform Evangelist
Ortus Solutions, Corp

E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com

Thanks Brad. That’s exactly what I did. I actually removed the box.json as it didn’t have any useful info in there. Might reinstate that later (and add the ignore directive for the READMEs, etc. which are now moved into the “preside” folder). We actually wanted “preside-commands” as the slug in the first place so all happy here :slight_smile:

Thanks again

Dominic