0.0
No release in over 3 years
A command-line interface for managing blog posts on a Willow Camp, supporting operations like listing, creating, updating, and deleting posts.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 2.0
~> 5.0
~> 13.0

Runtime

~> 0.8.1
~> 1.0
~> 2.0
 Project Readme

Willow Camp CLI

A command-line interface for managing blog posts on a willow.camp.

Installation

Add this line to your application's Gemfile:

gem 'willow_camp_cli'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install willow_camp_cli

Usage

Usage: willow-camp COMMAND [options]

Commands:
  list                List all posts
  show                Show a single post by slug
  create              Create a new post from a Markdown file
  update              Update an existing post by slug
  delete              Delete a post by slug
  upload              Bulk upload posts from a directory
  download            Download a post to a Markdown file
  ghost-import        Import posts from a Ghost export file
  help                Show this help message

Options:
  -u, --url URL                  API URL (e.g., https://yourblog.example.com)
  -t, --token TOKEN              API Bearer Token
  -d, --directory DIRECTORY      Directory containing Markdown files (for upload)
  -f, --file FILE                Single Markdown file (for create/update)
  -s, --slug SLUG                Post slug (for show/update/delete/download)
  -o, --output FILE              Output file (for download)
  -g, --ghost-export FILE        Ghost export JSON file
      --output-dir DIRECTORY     Output directory for Ghost import (default: 'markdown')
      --dry-run                  Show what would be done without making actual changes
  -v, --verbose                  Show detailed output
  -h, --help                     Show this help message

Examples

export WILLOW_CAMP_API_TOKEN=<your token>

List all posts

willow-camp list

Show a single post

willow-camp show -s my-post-slug

Create a new post from a Markdown file

willow-camp create -f path/to/post.md

Update an existing post

willow-camp update -s my-post-slug -f path/to/updated-post.md

Delete a post

willow-camp delete -s my-post-slug

Bulk upload posts from a directory

willow-camp upload -d path/to/markdown/files

Download a post to a file

willow-camp download -s my-post-slug -o path/to/save.md

Import posts from a Ghost export file

# Just convert to Markdown files
willow-camp ghost-import --ghost-export path/to/ghost-export.json --output-dir path/to/output

# Convert and upload in one step
willow-camp ghost-import -g path/to/ghost-export.json --output-dir path/to/output

Environment Variables

You can set default API URL and token using environment variables:

export WILLOW_API_URL="https://yourblog.example.com"
export WILLOW_API_TOKEN="your-api-token"

If these environment variables are set, you don't need to provide the -u and -t options.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/yourusername/willow_camp.