[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#958563: ITP: shellescape -- Escape arbitrary strings for use as command line arguments



Package: wnpp
Severity: wishlist
Owner: Bradford D. Boyle <bradford.d.boyle@gmail.com>

* Package name    : shellescape
  Version         : 1.2.2-1
  Upstream Author : Alessio Treglia
* URL             : https://github.com/alessio/shellescape
* License         : Expat
  Programming Lang: Go
  Description     : Escape arbitrary strings for use as command line arguments

 GoDoc (https://godoc.org/github.com/alessio/shellescape) Travis-CI
 Status (http://travis-ci.org/#!/alessio/shellescape) Coverage
 (https://gocover.io/github.com/alessio/shellescape) Coverage Status
 (https://coveralls.io/github/alessio/shellescape?branch=master)
 shellescape Escape arbitrary strings for safe use as command
 line arguments.  Contents of the package This package provides the
 shellescape.Quote() function that returns a shell-escaped copy of a
 string. This functionality could be helpful in those cases where it is
 known that the output of a Go program will be appended to/used in the
 context of shell programs' command line arguments.
 .
 This work was inspired by the Python original package shellescape
 (https://pypi.python.org/pypi/shellescape).  Usage The following snippet
 shows a typical unsafe idiom:
 .
 ```go package main
 .
 import (
     "fmt" "os"
 )
 .
 func main() {
     fmt.Printf("ls -l %s\n", os.Args[1])
 } ``` [See in Go Playground](https://play.golang.org/p/Wj2WoUfHd)_
 .
 Especially when creating pipeline of commands which might end up being
 executed by a shell interpreter, tt is particularly unsafe to not escape
 arguments.
 .
 shellescape.Quote() comes in handy and to safely escape strings:
 .
 ```go package main
 .
 import (
         "fmt" "os"
     "gopkg.in/alessio/shellescape.v1"
 .
 )
 .
 func main() {
         fmt.Printf("ls -l %s\n", shellescape.Quote(os.Args[1]))
 } ``` [See in Go Playground](https://play.golang.org/p/HJCXgSrmp)_ The
 escargs utility escargs reads lines from the standard input and prints
 shell-escaped versions. Unlinke xargs, blank lines on the standard input
 are not discarded.

This package is needed for barnard


Reply to: