Skip to main content

convert CLI programs to web services

Project description

c2w

The c2w utility converts a CLI program to a Web service.

Installation

% pip install c2w

Getting Started

We convert kramdown to a web service to get an online Markdown renderer.

% c2w --mime text/html kramdown

c2w is serving on 127.0.0.1:8000 now.

% curl http://localhost:8000 -X POST --data-binary @- << __EOF__
heredoc> # TITLE
heredoc>
heredoc> This is **strong**.
heredoc> __EOF__

We could get the following.

<h1 id="title">TITLE</h1>

<p>This is <strong>strong</strong>.</p>

c2w handles both GET and POST requests and treats them as the same with the following rules.

  • The query string will be split by &, decoded and sent to kramdown as arguments.

  • The request body will be sent to the stdin of kramdown and the stdout of kramdown will be sent to the browser.

kramdown can translate Mardown to LaTex with the option -o latex. If we want to get the LaTex output, we could put -o&latex in the query string.

% curl 'http://localhost:8000?-o&latex' --data-binary @- << __EOF__
heredoc> # TITLE
heredoc>
heredoc> This is **strong**.
heredoc> __EOF__

We got the following.

\section{TITLE}\hypertarget{title}{}\label{title}

This is \textbf{strong}.

Serving as a CGI program with an HTTP Server

The HTTP server provided by c2w is not mature enough and not recommended to use in a production environment. You may want to use Apache HTTPd or Nginx. To achieve this you can run c2w in CGI mode.

Create a simple Shell script named netmark.

#!/bin/bash

c2w --cgi --mime text/html kramdown

Give it the execution permission and put it in the cgi-bin directory of your HTTP server.

Detailed Usage

Run c2w --help.

Why I Wrote It

c2w: Convert Any CLI Program to a Web Service

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

c2w-0.0.1-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file c2w-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: c2w-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.10

File hashes

Hashes for c2w-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 69e2203556b140fc02a1c0ab70af75b458b30c9f16e30c4c5c8f72ea560b2ede
MD5 2079a8d9b8ea823216dbadf4bf7a7e12
BLAKE2b-256 e36bc4b78fb26a36b87ec0205b535bcb56d5265a5bae3e227aa36974c676ff84

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page