convert curl commands to Python, JavaScript, Go, PHP, R, Dart, Java, MATLAB, Rust, Elixir and more

Overview

curlconverter

curlconverter transpiles curl commands into programs in other programming languages.

$ curlconverter --data "Hello, world!" example.com
import requests

data = 'Hello, world!'

response = requests.post('http://example.com', data=data)

You can choose the output language by passing --language . The options are Python python (the default), JavaScript browser node node-request, Go go, Rust rust, PHP php, Java java, R r, Elixir elixir, Dart dart, MATLAB matlab and a few more.

NPM version

Live Demo

https://curl.trillworks.com

Install

Install the command line tool with

$ npm install --global curlconverter

Install the JavaScript library for use in your own projects with

$ npm install --save curlconverter

curlconverter requires Node 12+.

Usage

The JavaScript API is a bunch of functions that can take either a string of Bash code or an array

import * as curlconverter from 'curlconverter';

curlconverter.toPython("curl 'http://en.wikipedia.org/' -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: en-US,en;q=0.8' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Referer: http://www.wikipedia.org/' -H 'Cookie: GeoIP=US:Albuquerque:35.1241:-106.7675:v4; uls-previous-languages=%5B%22en%22%5D; mediaWiki.user.sessionId=VaHaeVW3m0ymvx9kacwshZIDkv8zgF9y; centralnotice_buckets_by_campaign=%7B%22C14_enUS_dsk_lw_FR%22%3A%7B%22val%22%3A%220%22%2C%22start%22%3A1412172000%2C%22end%22%3A1422576000%7D%2C%22C14_en5C_dec_dsk_FR%22%3A%7B%22val%22%3A3%2C%22start%22%3A1417514400%2C%22end%22%3A1425290400%7D%2C%22C14_en5C_bkup_dsk_FR%22%3A%7B%22val%22%3A1%2C%22start%22%3A1417428000%2C%22end%22%3A1425290400%7D%7D; centralnotice_bannercount_fr12=22; centralnotice_bannercount_fr12-wait=14' -H 'Connection: keep-alive' --compressed");
curlconverter.toPython(['curl', 'http://en.wikipedia.org/', '-H', 'Accept-Encoding: gzip, deflate, sdch', '-H', 'Accept-Language: en-US,en;q=0.8', '-H', 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36', '-H', 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', '-H', 'Referer: http://www.wikipedia.org/', '-H', 'Cookie: GeoIP=US:Albuquerque:35.1241:-106.7675:v4; uls-previous-languages=%5B%22en%22%5D; mediaWiki.user.sessionId=VaHaeVW3m0ymvx9kacwshZIDkv8zgF9y; centralnotice_buckets_by_campaign=%7B%22C14_enUS_dsk_lw_FR%22%3A%7B%22val%22%3A%220%22%2C%22start%22%3A1412172000%2C%22end%22%3A1422576000%7D%2C%22C14_en5C_dec_dsk_FR%22%3A%7B%22val%22%3A3%2C%22start%22%3A1417514400%2C%22end%22%3A1425290400%7D%2C%22C14_en5C_bkup_dsk_FR%22%3A%7B%22val%22%3A1%2C%22start%22%3A1417428000%2C%22end%22%3A1425290400%7D%7D; centralnotice_bannercount_fr12=22; centralnotice_bannercount_fr12-wait=14', '-H', 'Connection: keep-alive', '--compressed'])

and return a string of code like:

import requests

cookies = {
    'GeoIP': 'US:Albuquerque:35.1241:-106.7675:v4',
    'uls-previous-languages': '%5B%22en%22%5D',
    'mediaWiki.user.sessionId': 'VaHaeVW3m0ymvx9kacwshZIDkv8zgF9y',
    'centralnotice_buckets_by_campaign': '%7B%22C14_enUS_dsk_lw_FR%22%3A%7B%22val%22%3A%220%22%2C%22start%22%3A1412172000%2C%22end%22%3A1422576000%7D%2C%22C14_en5C_dec_dsk_FR%22%3A%7B%22val%22%3A3%2C%22start%22%3A1417514400%2C%22end%22%3A1425290400%7D%2C%22C14_en5C_bkup_dsk_FR%22%3A%7B%22val%22%3A1%2C%22start%22%3A1417428000%2C%22end%22%3A1425290400%7D%7D',
    'centralnotice_bannercount_fr12': '22',
    'centralnotice_bannercount_fr12-wait': '14',
}

headers = {
    'Accept-Encoding': 'gzip, deflate, sdch',
    'Accept-Language': 'en-US,en;q=0.8',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Referer': 'http://www.wikipedia.org/',
    'Connection': 'keep-alive',
}

response = requests.get('http://en.wikipedia.org/', headers=headers, cookies=cookies)

Contributing

I'd rather write programs to write programs than write programs.

— Dick Sites, Digital Equipment Corporation, 1985

Make sure you're running Node 12 or greater. The test suite will fail on older versions of Node.js.

If you add a new generator, make sure to update the list of supported languages in bin/cli.js or else it won't be accessible from the command line. Further, you'll want to update test.js and index.js for your new generator to make it part of the testing.

If you want to add new functionality, start with a test.

  • Create a file containing the curl command in fixtures/curl_commands with a descriptive filename like post_with_headers.sh
  • Create a file containing the output in fixtures/python/ with a matching filename (but different extension) like post_with_headers.py
  • Run tests with npm test.
  • If your filenames match correctly, you should see one failing test. Fix it by modifying the parser in util.js or the generators in generators/

The parser generates a generic data structure consumed by code generator functions.

You can run a specific test with:

npm test -- test_name
# or
node test.js test_name

where test_name is a file (without the .sh extension) in fixtures/curl_commands/

You can run only the tests for a specific language generator with:

npm test -- --language=python
# or
node test.js --language=python

I recommend setting this up with a debugger so you can see exactly what the parser is passing to the generator. Here's my Intellij run configuration for a single test: Screenshot of intellij debug configuration

Before submitting a PR, please check that your JS code conforms to the code style enforced by StandardJS with

npm run lint

Use the following to fix your code if it doesn't:

npm run lint:fix

If you get stuck, please reach out via email. I am always willing to hop on a Google Hangout and pair program.

Contributors

  • jeayu (Java support)
  • Muhammad Reza Irvanda (python env vars)
  • Weslen Nascimento (Node fetch)
  • Roman Druzki (Backlog scrubbing, parsing improvements)
  • NoahCardoza (Command line interface)
  • ssi-anik (JSON support)
  • hrbrmstr (R support)
  • daniellockard (Go support)
  • eliask (improve python output)
  • trdarr (devops and code style)
  • nashe (fix PHP output)
  • bfontaine (reduce code duplication in test suite)
  • seadog007
  • nicktimko
  • wkalt
  • nico202
  • r3m0t
  • csells (Dart support)
  • yanshiyason (Elixir support)
  • Robertof (Rust enhancements, correctness, es6)
  • clintonc (Code quality / brevity, test suite consistency)
  • MarkReeder (JSON formatting)
  • cf512 (bugfixes and feature requests)
  • DainisGorbunovs (MATLAB support)
  • TennyZhuang (data-raw support)

License

MIT © Nick Carneiro

Comments
  • npm install of 3.19.0 failing

    npm install of 3.19.0 failing

    With the recent release, I am not currently able to install curlconverter:

    ➜  testtest git:(master) ✗ npm -v
    7.24.0
    ➜  testtest git:(master) ✗ node -v
    v16.10.0
    ➜  testtest git:(master) ✗ npm install --save-dev curlconverter
    npm ERR! code 1
    npm ERR! git dep preparation failed
    npm ERR! command /usr/local/Cellar/node/16.10.0/bin/node /usr/local/lib/node_modules/npm/bin/npm-cli.js install --force --cache=/Users/omitted/.npm --prefer-offline=false --prefer-online=false --offline=false --no-progress --no-save --no-audit --include=dev --include=peer --include=optional --no-package-lock-only --no-dry-run
    npm ERR! > [email protected] prepare
    npm ERR! > npm run compile
    npm ERR!
    npm ERR!
    npm ERR! > [email protected] precompile
    npm ERR! > rimraf build
    npm ERR!
    npm ERR!
    npm ERR! > [email protected] compile
    npm ERR! > tsc
    npm ERR!
    npm ERR! lib/yargs-parser.ts:737:17 - error TS2571: Object is of type 'unknown'.
    npm ERR!
    npm ERR! 737             if (ex.name === 'PermissionDenied') error = ex
    npm ERR!                     ~~
    npm ERR!
    npm ERR! lib/yargs-parser.ts:737:49 - error [... etc ... etc]
    
    opened by cf512 9
  • Error with string content have ‘=’ in it

    Error with string content have ‘=’ in it

    for example:

    --data-raw '{"message":"a plus b=1"}'

    then we get

    data = { '{"message":"a plus b': '1"}' }

    what we need under python3 is

    data = '{"message":"a plus b=1"}'

    notice that the '{}'here is not needed and may cause an exception when post.

    bug incorrect output 
    opened by AkerIII 9
  • Add generator for Java

    Add generator for Java

    Java is super popular and super verbose, making it a good candidate for curlconverter.

    We need to find out if there is some modern library for sending http requests. Please advise.

    I've used the Apache HttpClient before, but this looks interesting: http://unirest.io/java.html There's no reason we couldn't have two generators.

    enhancement 
    opened by NickCarneiro 8
  • Use tree-sitter for bash parsing

    Use tree-sitter for bash parsing

    instead of yargs.

    This PR makes argument parsing more similar to curl's:

    • you can omit the space between short options -XPOST and use multiple short options -ABC etc.
    • you can shorten long options, e.g. --sil instead of --silent
    • adds all of curl's current options by parsing its source code. if you try to use an unknown option, it errors
    • handles -- (end of flagged arguments)
    • basic support for --data-urlencode
    • more correct precedence rules for determining which HTTP method to use

    and also

    • adds support for ANSI C quoted strings

    Closes #277 #267 #221 #207 #195 and works on #85

    but I'm sure it opens many new ones. Notably I noticed this https://github.com/tree-sitter/tree-sitter-bash/issues/100 . Also note that this might make curlconverter more complicated to install because tree-sitter is a Rust project that's compiled to WASM.

    opened by verhovsky 7
  • Error parsing curl command.

    Error parsing curl command.

    The following curl command works fine in the command line but the converter does not accept it:

    curl --proxy socks5://111.222.333.444:1080 --url 'smtp://smtp.office365.com:587' --ssl-reqd --mail-from '[email protected]' --mail-rcpt '[email protected]' --upload-file 'Mail.txt' --user '[email protected]:password' --insecure

    opened by JoergVanAken 7
  • Parse lowercase cookie headers

    Parse lowercase cookie headers

    Sometimes all headers in curl line seem to be lowercased (eg. requests to/from humblebundle.com) and cookies are only parsed from "Cookie" headers.

    opened by Informatic 7
  • can't install dependency yargs in docker

    can't install dependency yargs in docker

    Why did the yargs dependency change from "yargs": "github:NickCarneiro/yargs" to "yargs": "[email protected]:NickCarneiro/yargs-ansi.git"? My docker is erroring out now:

    #20 20.53 npm ERR! prepareGitDep npm ERR! Error while executing:
    #20 20.53 npm ERR! prepareGitDep npm ERR! /usr/bin/git ls-remote -h -t ssh://[email protected]/NickCarneiro/yargs-parser-ansi.git
    #20 20.53 npm ERR! prepareGitDep npm ERR!
    #20 20.53 npm ERR! prepareGitDep npm ERR! Host key verification failed.
    #20 20.53 npm ERR! prepareGitDep npm ERR! fatal: Could not read from remote repository.
    
    opened by prabak 6
  • Cookie headers prefixed with $ are parsed incorrectly

    Cookie headers prefixed with $ are parsed incorrectly

    Chrome will let you export a network call as curl by right clicking it -> copy -> copy as curl.

    Chrome also likes to export long cookies like such:

    curl 'https://someurl.com' \
      -H 'Connection: keep-alive' \
      -H 'Cache-Control: max-age=0' \
      -H 'sec-ch-ua: "Google Chrome"; v="83"' \
      -H 'sec-ch-ua-mobile: ?0' \
      -H 'DNT: 1' \
      -H 'Upgrade-Insecure-Requests: 1' \
      -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4093.3 Safari/537.36' \
      -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \
      -H 'Sec-Fetch-Site: none' \
      -H 'Sec-Fetch-Mode: navigate' \
      -H 'Sec-Fetch-User: ?1' \
      -H 'Sec-Fetch-Dest: document' \
      -H 'Accept-Language: en-US,en;q=0.9,it;q=0.8,la;q=0.7' \
      -H $'Cookie: somereallyreallylongcookie=true;' \
      --compressed
    

    This gets parsed as

    cookies = {
        '$Cookie: somereallyreallylongcookie': 'true',
    }
    

    in python, while in reality the $ should effectively be omitted, and the cookie itself should be parsed correctly.

    incorrect output 
    opened by jonluca 6
  • Error converting POST

    Error converting POST

    A valid command:

    curl -X POST "http://127.0.0.1:5000/V1/x" -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "cid=1,2&gid=1,2&timestamp=1,2&dvl=1,2&con=1,2&pub=1,2&sub=1,2&new=1,2&inv=1,2"

    opened by vrst37 6
  • Improve query string handling in Python output

    Improve query string handling in Python output

    The new tests in the PR should explain what I'm trying to accomplish here

    • detect when a query string cannot be losslessly converted to a list of tuples/dict
    • preserve ordering of arguments
    • unify the code that parses query strings in --data and the URL

    I still need to update the existing tests and clean up the code.

    opened by verhovsky 5
  • don't use this package

    don't use this package

    When I install this project and package it, it prompts me that I need to install "child_process" and "fs"packages. Unfortunately, there are no contents of this project package under NPM. Can you solve this problem?

    opened by lonewolfyx 5
  • unexpected output for json

    unexpected output for json

    when using this

    curl -X POST https://reqbin.com/echo/post/json
       -H 'Content-Type: application/json'
       -d '{"login":"my_login","password":"my_password"}
    

    --language json gives:

    {
        "url": "https://reqbin.com/echo/post/json",
        "raw_url": "https://reqbin.com/echo/post/json",
        "method": "post",
        "headers": {
            "Content-Type": "application/json"
        },
        "data": {
            "{\"login\":\"my_login\",\"password\":\"my_password\"}": ""
        }
    }
    

    but this looks wrong to me (data with key/value)?

    in comparison, python gives:

    import requests
    
    headers = {
        # Already added when you pass json=
        # 'Content-Type': 'application/json',
    }
    
    json_data = {
        'login': 'my_login',
        'password': 'my_password',
    }
    
    response = requests.post('https://reqbin.com/echo/post/json', headers=headers, json=json_data)
    
    opened by kootenpv 0
  • Multipart form to JSON object issue

    Multipart form to JSON object issue

    image

    image

    Multipart-form data converts into {'data' : {'key': ''}} pair where 'key' is actual data string of a request. In python, for example, it converts into data = 'key' string.

    opened by alexeyNaidiuk 1
  • Unable to Install the Package

    Unable to Install the Package

    I am using Node v16.17.0 and every time I try to install the package, I am getting the following error. Do I need to install python?

    npm ERR! path D:\my-app\[email protected]\tree-sitter-bash npm ERR! command failed npm ERR! command C:\Windows\system32\cmd.exe /d /s /c prebuild-install || node-gyp rebuild npm ERR! prebuild-install warn install No prebuilt binaries found (target=16.17.0 runtime=node arch=x64 libc= platform=win32) npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using [email protected] npm ERR! gyp info using [email protected] | win32 | x64 npm ERR! gyp ERR! find Python

    opened by petermarks12 2
  • can someone help me i'm trying error in import , project in nextJs

    can someone help me i'm trying error in import , project in nextJs

    ./node_modules/web-tree-sitter/tree-sitter.js:1:747 Module not found: Can't resolve 'fs'

    Import trace for requested module: ./node_modules/curlconverter/dist/src/bash-parser-web.js ./node_modules/curlconverter/dist/src/util.js ./node_modules/curlconverter/dist/src/index.js ./src/globals/components/dymanic-form/HTTPBodyField.tsx ./src/globals/components/dymanic-form/RenderTypeOfInput.tsx ./src/globals/components/dymanic-form/RenderForm.tsx ./src/views/builder/components/sidebar/tabs/actions/index.tsx ./src/views/builder/components/sidebar/DefaultNodeView/index.tsx ./src/views/builder/components/sidebar/index.tsx ./src/views/builder/index.tsx ./src/pages/builder/[id]/index.tsx

    https://nextjs.org/docs/messages/module-not-found

    opened by EdsonMateus1 1
Releases(v4.4.1)
  • v4.4.1(Dec 3, 2022)

    • Added --range --oauth2-bearer --basic and --time-cond support to all converters
    • Added --cookie-jar --location --location-trusted --max-redirs --max-time --connect-timeout --aws-sigv4 --negotiate --delegation --ntlm and --ntlm-wb support to Python
    Source code(tar.gz)
    Source code(zip)
  • v4.4.0(Nov 29, 2022)

    • Support commands that mix --data/--data-ascii, --data-raw, --data-binary, --data-urlencode and --json
    • Proper string escaping when generating Python, JavaScript, Java and PHP
    • When converting JSON to Python code, checking if the result will serialize exactly like the input is more correct
    • Convert --data-urlencode [email protected] to a Python dictionary/list and other improvements
    • Basic support for ${parameter_expansion}
    • Reworked Elixir generator
    • Removed Strest generator
    Source code(tar.gz)
    Source code(zip)
  • v4.3.0(Sep 4, 2022)

  • v4.2.0(Aug 15, 2022)

  • v4.1.0(Aug 5, 2022)

    • load tree-sitter-bash.wasm from top level path when running in the browser
    • warn when part of the input is discarded
    • remove nunjucks dependency for a smaller bundle
    Source code(tar.gz)
    Source code(zip)
  • v4.0.0(Jul 1, 2022)

    • change the command line tool to act as a drop-in replacement for curl (just change curl to curlconverter in your command and it should output code)
    • adds a new curlconverter.to<Language>Warn API that returns a list of strings of warnings with difficulties converting the input command (such as arguments that are not supported by that converter)
    • use tree-sitter, for more accurate parsing of Bash code
    Source code(tar.gz)
    Source code(zip)
  • v4.0.0-alpha.10(Mar 19, 2022)

    • PHP output now outputs libcurl code instead of Requests
    • the command line tool now prints usage if you don't pass any arguments to it, like curl. pass - or --stdin to read the command from stdin
    • renamed the "browser" option for --language in the cli to "javascript"
    • support for --proxy --digest --referer --cert/--key --cacert/--capath --output in the Python generator
    • bash comments in input are skipped
    • tons of minor fixes for correctness, such as allowing repeat headers and only parsing url-encoded data when it can be posted like it will be by curl
    Source code(tar.gz)
    Source code(zip)
  • v4.0.0-alpha.9(Dec 29, 2021)

  • v4.0.0-alpha.8(Dec 28, 2021)

    Improve the Python generator by

    • when sending JSON data, convert it to a dict/list/None etc. and use Requests's json= parameter
    • handle newlines in header values by generating code that will error instead of removing everything after the newline
    Source code(tar.gz)
    Source code(zip)
  • v3.21.0(Oct 21, 2021)

  • v3.20.0(Oct 13, 2021)

  • v4.0.0-alpha.7(Oct 11, 2021)

    This pre-release

    • adds most of Curl's deleted arguments
    • updates tree-sitter to 0.20.0, making curlconverter installable on Node.js 16 on macOS
    Source code(tar.gz)
    Source code(zip)
  • v4.0.0-alpha.6(Sep 30, 2021)

  • v4.0.0-alpha.5(Sep 28, 2021)

  • v4.0.0-alpha.4(Sep 25, 2021)

    Pre-release of curlconverter 4 which

    • uses tree-sitter to parse bash
    • changes the command line interface to act as a drop-in replacement for curl: Previously you would pass the command as a single string curlconverter --language browser 'curl -X POST example.com', now you would do curlconverter --language browser -X POST example.com
    • makes Node 14.8 the minimum supported version
    Source code(tar.gz)
    Source code(zip)
painless task queue manager for shell commands with an intuitive cli interface (execute shell commands in distributed cloud-native queue manager).

EXEQ DOCS STILL IN PROGRESS. Execute shell commands in queues via cli or http interface. Features Simple intuitive tiny cli app. Modular queue backend

Mohammed Al Ashaal 13 Dec 14, 2022
Integrated console application library, using Go structs as commands, with menus, completions, hints, history, Vim mode, $EDITOR usage, and more ...

Gonsole - Integrated Console Application library This package rests on a readline console library, (giving advanced completion, hint, input and histor

null 18 Nov 20, 2022
The power of curl, the ease of use of httpie.

Curlie If you like the interface of HTTPie but miss the features of curl, curlie is what you are searching for. Curlie is a frontend to curl that adds

Olivier Poitrey 2.1k Dec 27, 2022
minectl 🗺 is a cli for creating Minecraft (java or bedrock) server on different cloud provider.

minectl ?? minectl️️ is a cli for creating Minecraft (java or bedrock) server on different cloud provider. It is a private side project of me, to lear

Engin Diri 108 Jan 3, 2023
An experimental AOT implementation of PHP

Trunk An experimental PHP implementation that transpiles PHP code into Go code.

Ryan Chandler 216 Dec 31, 2022
Command line tools for creating and compiling JavaScript Minecraft plugins.

@customrealms/cli CustomRealms command-line tools for setting up and compiling JavaScript Minecraft plugins. Installation Install the CLI on your comp

CustomRealms 7 Aug 2, 2022
Jsos - A operating system that runs system-level javascript, based on the Linux kernel

JsOS ?? An linux-based operating system that runs Javascript code at the system-

Theo Paris 2 Jan 6, 2023
Building powerful interactive prompts in Go, inspired by python-prompt-toolkit.

go-prompt A library for building powerful interactive prompts inspired by python-prompt-toolkit, making it easier to build cross-platform command line

Masashi Shibata 4.7k Jan 3, 2023
a python command-line tool which draws basic graphs in the terminal

Termgraph A command-line tool that draws basic graphs in the terminal, written in Python. Graph types supported: Bar Graphs Color charts Multi-variabl

Marcus Kazmierczak 2.9k Dec 30, 2022
Query, update and convert data structures from the command line. Comparable to jq/yq but supports JSON, TOML, YAML, XML and CSV with zero runtime dependencies.

dasel Dasel (short for data-selector) allows you to query and modify data structures using selector strings. Comparable to jq / yq, but supports JSON,

Tom Wright 3.9k Jan 2, 2023
cTRL is a server for remote execution of pending tasks and commands in real time, supporting a queue with continuous thread limiting and throttling.

Документация на русском: https://github.com/eltaline/ctrl/blob/master/README-RUS.md cTRL is a server written in Go language that uses a modified versi

Eltaline 24 Mar 3, 2022
Command-line tool to load csv and excel (xlsx) files and run sql commands

csv-sql supports loading and saving results as CSV and XLSX files with data processing with SQLite compatible sql commands including joins.

Dhamith Hewamullage 24 Nov 2, 2022
GC2 is a Command and Control application that allows an attacker to execute commands on the target machine using Google Sheet and exfiltrate data using Google Drive.

GC2 GC2 (Google Command and Control) is a Command and Control application that allows an attacker to execute commands on the target machine using Goog

Lorenzo Grazian 187 Dec 13, 2022
A Go library and common interface for running local and remote commands

go-runcmd go-runcmd is a Go library and common interface for running local and remote commands providing the Runner interface which helps to abstract

AUCloud 1 Nov 25, 2021
Go-ipfs-cmds - Cmds offers tools for describing and calling commands both locally and remotely

Go-ipfs-cmds - Cmds offers tools for describing and calling commands both locally and remotely

y 0 Jan 18, 2022
Tool for shell commands execution, visualization and alerting. Configured with a simple YAML file.

Sampler. Visualization for any shell command. Sampler is a tool for shell commands execution, visualization and alerting. Configured with a simple YAM

Alexander Lukyanchikov 11.1k Dec 28, 2022
Brigodier is a command parser & dispatcher, designed and developed for command lines such as for Discord bots or Minecraft chat commands. It is a complete port from Mojang's "brigadier" into Go.

brigodier Brigodier is a command parser & dispatcher, designed and developed to provide a simple and flexible command framework. It can be used in man

Minekube 16 Dec 15, 2022
webify - Turn functions and commands into web services

webify is a very basic CGI server which forwards all requests to a single script. A design goal is to be as zero-config as possible.

Michael Alexander 928 Dec 22, 2022
CLI tool (hcron) and Go library (cron) to convert CRON expression into human readable description.

cron cron is a Go library that parses a cron expression and outputs a human readable description of the cron schedule. For example, given the expressi

Quy Le 74 Nov 12, 2022