Skip to content

Instantly share code, notes, and snippets.

@jneen
Created February 3, 2011 17:45
Show Gist options
  • Save jneen/809844 to your computer and use it in GitHub Desktop.
Save jneen/809844 to your computer and use it in GitHub Desktop.
The specfile (proposal)
Ion spec(
# this stanza is for administrative metadata
metadata(
author("A Cool Developer")
email("[email protected]")
homepage("http://www.example.com/")
summary("This is a really cool library!")
description("""
Really, I swear it is.
""")
# ... etc
)
# this stanza is for info about how to build the package
# (i.e. what files are important, what the name is, etc.)
packageData(
package("MyIon") # default, based on filename.
# will load "MyIon.io"
# or "MyIon/" as a directory (see https://gist.github.com/801972)
package("vendor/MyOtherPackage") # maybe?
binDir("bin") # this is default
bin("mybinfile") # in "#{binDir}/mybinfile"
)
# and the dependencies.
dependencies(
depends("ion-1 >= 3")
depends("ion-2 ~> 2", "ion-3")
# nice syntax for specifying external dependencies
# (not resolved automagically by any means, but it's
# possible to build extensions into yum or apt to resolve
# them)
depends(rpm("rpm-1", "rpm-2"))
depends(deb("deb-1", "deb-2"))
# dependency groups. not resolved by default,
# these enable peripheral functionality like
# tests running, etc.
group development(
depends("ion-4", "ion-5")
depends(rpm("rpm-3"))
)
# custom names are discouraged, but supported.
group mygroup(
depends("ion-6")
depends(deb("deb-3"))
)
)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment