SIMPLIFY SHARING YOUR RUBYGEMS ON RUBYFORGE!
~> gem install rubyforge
SYNOPSIS
rubyforge [options]* mode [mode_args]*
DESCRIPTION
simplistic script which automates a limited set of rubyforge
operations
MODES
setup()
initializes your .rubyforge directory. you need to run this first
before
doing anything else.
example :
rubyforge setup
login()
sends username and password from config.yml (or
–username/–password
options) and stores login cookie in cookie.dat. this is required
for
subsquent operations work.
example :
rubyforge login
rubyforge login --username zaphod --password 42
create_package(group_id, package_name)
creates the named package under the specified group.
example :
rubyforge create_package 1024 traits
rubyforge login && rubyforge create_package codeforpeople.com
traits
notes :
in order to use group_ids by name, rather than number, you must
edit the
rubyforge[group_ids] translation table in your config.yml.
add_release(group_id, package_id, release_name, userfile)
release a file as release_name under the specified group_id and
package_id.
example :
rubyforge add_release codeforpeople.com traits 0.8.0
traits-0.8.0.gem
rubyforge add_release codeforpeople.com traits 0.8.0
traits-0.8.0.tgz
rubyforge add_release 1024 1242 0.8.0 traits-0.8.0.gem
rubyforge login && rubyforge add_release 1024 1242 0.8.0
traits-0.8.0.gem
notes :
in order to use group_ids and package_ids by name, rather than
number,
you must edit the rubyforge[group_ids] and rubyforge[package_ids]
translation tables in your config.yml.
delete_package(group_id, package_name)
deletes a package and all it’s files.
example :
rubyforge delete_package codeforpeople.com traits
rubyforge delete_package 1024 traits
NOTES
-
you can determine the group_id and package_id of projects and
packages bylogin →
my page tab →
select a project link from ‘my projects’ →
files tab →
admin link (not the admin tab!) →now you'll be at page listing your packages in this
project.
near the bottom you’ll see links to ‘add a release’ or
‘edit a
release’ - hover over the url and you’ll notice the query
string, which looks something like
?package_id=1242&group_id=1024
and that's what you need to know
- don’t forget to login! logging in will store a cookie in your
.rubyforge directory which expires after a time. always run the
login
command before any operation that requires authentication, such as
uploading a package.
TODO
-
scrape rubyforge to auto-configure group_id and package_ids.
-
objectify the script. it’s procedural butchery attm.
-
add error checking. this requires screen scraping to see of an
operation
succeeded since 200 is returned from rubyforge even for failed
operations
and only the html text reveals the status. -
add more functionality.
OPTIONS
global :
–help , -h
this message
–config , -c
specify a config file (default
/home/ahoward/.rubyforge/config.yml)
–username , -u
specify username, taken from config otherwise
–password , -p
specify password, taken from config otherwise
–cookie_jar , -C
specify cookie storage file (default
/home/ahoward/.rubyforge/cookie.dat)
add_release :
–is_private , -P
if true, release is not public
–release_date , -r
specify time of release (default ‘now’)
–type_id , -t
specify filetype code (default determined by ext)
–processor_id , -o
specify processor (default ‘Any’)
–release_notes , -n
specify release notes as string or file
–release_changes , -a
specify release changes as string or file
–preformatted , -f
specify whether release_notes/changes are preformatted
enjoy.
-a