Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jutkko/copy-pasta

Universal copy paste service, works across different machines!
https://github.com/jutkko/copy-pasta

copy fileshare pasta tool

Last synced: 10 days ago
JSON representation

Universal copy paste service, works across different machines!

Awesome Lists containing this project

README

        

[![Build Status](https://travis-ci.org/jutkko/copy-pasta.svg?branch=master)](https://travis-ci.org/jutkko/copy-pasta)

# How to use
## Single lined stuff
To copy, on one machine you do

```
echo "I don't like ravioli" | copy-pasta
```

On the other machine you do

```
copy-pasta
```

Boom! you should see

```
I don't like ravioli
```

in the terminal.

## Multiline / Files
```
cat myPenne.jpg | copy-pasta
```

On the other machine you do

```
copy-pasta > myPenne.jpg
```

Boom! You should see a copy of `myPenne.jpg` on your other machine.

## Multi-user
Are you sharing a machine with others? Or you want to have multiple clipboards?
`copy-pasta` now supports [concourse](https://concourse.ci) `fly` like targets.
Remember the `--target` option in the `login` command? After specifying
another user like

```
copy-pasta login --target your-copy-pasta

```

You can do

```
copy-pasta target your-copy-pasta
```

You will be using another `copy-pasta` destination. **Note the credentials can
be the same one!**

## How does it work?
Are you super paranoid about security? Do you sweat if you copy your
credentials into a copy buffer and leave it there? Then you should read on.
Here is a diagram that briefly describes how `copy-pasta` works.

The communication between the machines and the storage server is done in `SSL`,
so we can assume that it is relatively safe.

We can see that the things you copy into `copy-pasta` gets stored in plain text
on the storage server. The weakest link here will be the security of your
backend store. Take S3 as an example, if your bucket is private and you haven't
shared with anyone your `ACCESSKEY` and `SECRETACCESSKEY`, you should be pretty
safe. On the other hand, if the backend store is either public or compromised,
the content copied to `copy-pasta` is in danger.

In general it is **not** advised to copy confidential content to `copy-pasta`,
`copy-pasta` is also **not** responsible for keeping the content secure. But if
you are a security lax person like me, you probably can take the advantage of
the overwrite nature of `copy-pasta`, copy confidential content, use it and
quickly copy something else into `copy-pasta`.

# Installation
Looking good? Can't wait to hack with `copy-pasta`? There are two ways to
install `copy-pasta`. Using go, do the following setup on the two machines you
want to `copy-pasta`

```
go get github.com/jutkko/copy-pasta
```

Using `homebrew`, do

```
brew tap jutkko/homebrew-copy-pasta
brew install copy-pasta
```

Login on the machines you want to do `copy-pasta`

```
copy-pasta login --target my-copy-pasta

```

If you are not using Amazon S3, or your bucket location is not in London you
might want to pass the `endpoint` and `location` of your S3 backend
implementation when you target. Currently S3 is the only backend type
supported. But I am trying to implement a new backend based on github's gists.
Stay tuned.

It is also possible to use github gists as the backend storage. Please see
`copy-pasta gist-login --help`.

If you are interested in using another storage solution, please let me know
in the issues page and we get the conversation started.

# Uninstall
It depends on how you installed the binary. If by go, you should remove both
the `copy-pasta` repo and the binary

```
rm -rf $GOPATH/src/github.com/jutkko/copy-pasta
rm $GOPATH/bin/copy-pasta
```

If by homebrew, you can first remove the binary and then the tap

```
brew uninstall copy-pasta
brew untap homebrew-copy-pasta
```

To remove the config file leftover by `copy-pasta`, simply delete the
`.copy-pastarc` file in your `$HOME`.

# Running the tests
You will need to have a working go environment, and go to the repo

```
cd $GOPATH/src/github.com/jutkko/copy-pasta
```

Install the awesome ginkgo testing framework

```
go get github.com/onsi/ginkgo
go get github.com/onsi/gomega
```

To run the tests

```
ginkgo -r
```

# To contribute
## Features, concerns or bugs
Please open an issue and talk about the feature/bug you have, I will get back
to you very soon.

## Use cases
Got an interesting use case for `copy-pasta`? Make a PR and I will include it
here! Here's some

### Bash
Non-interactive logon

```
printf "%s\n%s\n" "$ACCESSKEY" "$SECRETACCESSKEY" | copy-pasta login --target my-target
```

Paste straight to pbcopy
```
#!/bin/bash
copy-pasta-to-pbcopy() {
copy-pasta | pbcopy
}
```

Copy straight into copy-paste

```
#!/bin/bash
pbpaste-to-copy-pasta() {
pbpaste | copy-pasta
}
```

... And yours?

# copy-pasta?
Credits to my colleague [Vlad](https://github.com/vlad-stoian). Genius!