<commit_before>#skicka

Utility for working with files and folders stored on Google Drive.

Note: skicka is not an official Google product!

##Intro

skicka makes it easy to copy files to and from Google Drive and to work with
files stored on Google Drive.

For example, `skicka upload ~/Pictures /Pictures` copies the entire
contents of the local `~/Pictures` directory to a folder `Pictures` in
Google Drive. If you then run `skicka download /Pictures ~/Pictures2`,
then the contents of your `~/Pictures2` directory will match the contents
of `~/Pictures`.

More generally, skicka makes it easy to list the files in Google Drive
folders, compute the space used by Drive folders, and copy files between
your computer to Google Drive.  If you'd like to encrypt your files before
uploading them, skicka supports AES-256 encryption.

###What skicka is not

skicka is not a general solution for automatically synchronizing files
stored in Google Drive across multiple machines. In particular, it doesn't
have logic to reconcile concurrent changes to the same file on different
machines.

Furthermore, although skicka has been robust in usage so far and has
no known data corruption bugs, it should for now be treated as "alpha"
software.  Bug reports are welcome.

##Getting Started

1. You must have a [Go](http://golang.org) compiler installed.
2. Install a few go packages:
   - `go get code.google.com/p/gcfg`
   - `go get code.google.com/p/go.crypto/pbkdf2`
   - `go get code.google.com/p/goauth2/oauth`
   - `go get code.google.com/p/google-api-go-client/drive/v2`
   - `go get code.google.com/p/google-api-go-client/googleapi`
   - `go get github.com/cheggaaa/pb`
3. Build skicka: run `go build skicka.go`. Copy the `skicka`
   executable to a directory in your `PATH`.
4. Configure skicka:
   - Run `skicka init` to create a skeleton `~/.skicka.config` file.
   - Create Google Developer credentials for skicka to use the Google
   Drive API:
       - Go to the [Google Developers Console](https://console.developers.google.com/)
       and select "Create Project".
       - After the project is created, choose "APIs and Auth" from
       the menu on the right, and then choose "Credentials". Select the
       "Create new Client Id" button and choose the "Installed Application"
       type. Select "Other" as the installed application type. Copy the
       text for "client id" and "client secret" to the corresponding
       entries in your `~/.skicka.config` file.
       - Next, select "APIs" under "APIs and Auth" and enable the "Drive
       API" for this project.
   - Get an OAuth2 token: run `skicka ls /`; skicka will print a
     URL and ask for a token. Go to the URL in a
     browser, log into your Google account (if needed), and give permission
     for the application to access your Google Drive files. After you
     click 'accept', copy the code from your browser window to the
     terminal with the "Enter verification code" prompt from skicka.
   - If you're going store encrypted files in Google Drive, create an
     encryption key: set the environment variable `SKICKA_PASSPHRASE`
     to hold your passphrase and run `skicka genkey`. Copy the lines of
     text that are printed to the `[encryption]` section of your
     `~/.skicka.config` file.<commit_msg>Simplify installation instructions (via @rygorous)<commit_after>#skicka

Utility for working with files and folders stored on Google Drive.

Note: skicka is not an official Google product!

##Intro

skicka makes it easy to copy files to and from Google Drive and to work with
files stored on Google Drive.

For example, `skicka upload ~/Pictures /Pictures` copies the entire
contents of the local `~/Pictures` directory to a folder `Pictures` in
Google Drive. If you then run `skicka download /Pictures ~/Pictures2`,
then the contents of your `~/Pictures2` directory will match the contents
of `~/Pictures`.

More generally, skicka makes it easy to list the files in Google Drive
folders, compute the space used by Drive folders, and copy files between
your computer to Google Drive.  If you'd like to encrypt your files before
uploading them, skicka supports AES-256 encryption.

###What skicka is not

skicka is not a general solution for automatically synchronizing files
stored in Google Drive across multiple machines. In particular, it doesn't
have logic to reconcile concurrent changes to the same file on different
machines.

Furthermore, although skicka has been robust in usage so far and has
no known data corruption bugs, it should for now be treated as "alpha"
software.  Bug reports are welcome.

##Getting Started

1. You must have a [Go](http://golang.org) compiler installed.
2. Download skicka: `go get github.com/google/skicka`
3. Build skicka: run `go build github.com/google/skicka`. Copy the `skicka`
   executable to a directory in your `PATH`.
4. Configure skicka:
   - Run `skicka init` to create a skeleton `~/.skicka.config` file.
   - Create Google Developer credentials for skicka to use the Google
   Drive API:
       - Go to the [Google Developers Console](https://console.developers.google.com/)
       and select "Create Project".
       - After the project is created, choose "APIs and Auth" from
       the menu on the right, and then choose "Credentials". Select the
       "Create new Client Id" button and choose the "Installed Application"
       type. Select "Other" as the installed application type. Copy the
       text for "client id" and "client secret" to the corresponding
       entries in your `~/.skicka.config` file.
       - Next, select "APIs" under "APIs and Auth" and enable the "Drive
       API" for this project.
   - Get an OAuth2 token: run `skicka ls /`; skicka will print a
     URL and ask for a token. Go to the URL in a
     browser, log into your Google account (if needed), and give permission
     for the application to access your Google Drive files. After you
     click 'accept', copy the code from your browser window to the
     terminal with the "Enter verification code" prompt from skicka.
   - If you're going store encrypted files in Google Drive, create an
     encryption key: set the environment variable `SKICKA_PASSPHRASE`
     to hold your passphrase and run `skicka genkey`. Copy the lines of
     text that are printed to the `[encryption]` section of your
     `~/.skicka.config` file.
{'fraction_non_alphanumeric': 0.068645931511153, 'fraction_numerical': 0.0036129437637448946, 'mean_word_length': 3.5124025513819985, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 7, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1282488', 'n_tokens_mistral': 1818, 'n_tokens_neox': 1748, 'n_words': 905}