• Showing Page History #105096

Command Line Interface

OSDN command line interface is currently experimental release.

Requirement

  • ruby (>= 1.9.3)

Installation

You can install by rubygem, type following on terminal.

$ gem install --no-ri --no-rdoc osdn-cli

Then check with "osdn help". If you cannot get help message, check your execute path. You may need to add $GEM_HOME/bin to $PATH.

$ osdn help              
osdn [global-options] <command> [command-options] [args]
osdn help <command>
Global Options:
  -h --help      Show help message. use 'help <command>' for specific command. 
  -v --verbose   Increase log level (multiple)
  -q --quiet     Decrease log level (multiple)
Avaiable Commands:
  help
  login          Login and save access token.
  package        Manipulate release package of project
  frs_mkdirs     Make directory tree for current project release
  frs_upload     Upload local file tree and create package/release implicitly.
  ping           Test API request.
  vars           Get/set request environment variable.

Example: Non-interfactive file release

This section describe to upload new release files by cli.

Login to API

First of all, you need to login to API with cli.

Type "osdn login" to your terminal and get auth code from web browser.

$ osdn login
Access follwoing URL to get auth code;
https://osdn.jp/account/oauth2ui/authorize?client_id=osdn-cli&.........

Type your auth code: <== (Inpu your authcode here)

Prepare project directory and set target project.

First, create empty directory and set the directory to store files for uploading.

$ mkdir my-osdn-proj

Save target project (my-osdn-proj for this example) into the directory (.osdn.vas).

$ cd my-osdn-proj
$ osdn vars set project my-osdn-proj

Apply current project package hierarchy

Run "osdn frs_mkdrs" to create package/release directries into current directry. If you have no packages on OSDN, this can be skipped.

$ osdn --verbose frs_mkdirs
[INFO] Save variables to .osdn.vars
[INFO] Making directory for package MyPackage1
[INFO] Save variables to MyPackage1/.osdn.vars
[INFO] Making directory for release ver1.0
[INFO] Save variables to MyPackage1/ver1.0/.osdn.vars
[INFO] Making directory for release ver1.1
[INFO] Save variables to MyPackage1/ver1.1/.osdn.vars

Create new release directory and/or place files to upload

Finally, you get create new release directory and place files.

$ mkdir MyPakage1/ver1.2
$ cp -a ~/build/dist-1.2.tar.gz MyPackage1/ver1.2

Then run "osdn frs_upload".

$ osdn frs_upload
New release 'ver1.2' has been created; https://osdn.jp/projects/my-osdn-proj/releases/123456
New file 'MyPackage1/ver1.2/dist-1.2.tar.gz' has been uploaded; https://osdn.jp/projects/my-osdn-proj/downloads/123456/dist-1.2.tar.gz/