Skip to main content

Don't run "curl | sh" again. Use "curl | shed" to verify scripts before running.

Project description

shed - the sh editor

Don’t run curl | sh again. Use curl | shed to verify scripts before running.

Usage

Replace sh with shed in any pipe-sh commands you run. shed will:

  • save the piped script to a temp file

  • open the temp file in $SHED_EDITOR or $EDITOR to let you view and modify the script

  • ask you if you still want to run the script, preserving any changes you made

Installation

This is a Python 3 script, so use pip3 to install:

pip3 install shed_sh

Note the spelling: shed_sh is different from shed.

After this, run shed or bashed from your terminal to verify it’s installed properly.

Examples

Piping to sh

Take your questionable curl-pipe-sh or wget-pipe-sh command

curl -L https://npmjs.org/install.sh | sh
wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh

and use shed to view and edit your script before running it:

curl -L https://npmjs.org/install.sh | shed
wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | shed

Piping to bash

bashed protects your bash shell, too: take this unknown script

wget -q -O - https://fixubuntu.com/fixubuntu.sh | bash

and verify the contents before running:

wget -q -O - https://fixubuntu.com/fixubuntu.sh | bashed

Config

Set your preferred editor:

export SHED_EDITOR=vim

shed also checks $EDITOR, then falls back to nano, vim, vi, and emacs in order.

Contributions

Bug reports, fixes, or features? Feel free to open an issue or pull request any time. You can also tweet me at [@mplewis](http://twitter.com/mplewis) or email me at matt@mplewis.com.

License

Copyright (c) 2014 Matthew Lewis. Licensed under the MIT License.

Project details


Download files

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

Source Distribution

shed_sh-1.0.0.tar.gz (3.7 kB view hashes)

Uploaded Source

Built Distribution

shed_sh-1.0.0-py3-none-any.whl (5.8 kB view hashes)

Uploaded Python 3

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