quickly upload files to a remote server via rsync
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs: update README with lowercase style and new CLI options

- Convert all headings to lowercase for consistency
- Add macOS-only platform note
- Update usage section with all CLI options (-h, -k, -f, -s, -sr, -r, -ra)
- Replace specific domain examples with generic placeholders
- Change mv to install command for better practice

eti 5af30e2e 2935127e

+36 -30
+36 -30
README.md
··· 1 1 # hop 2 2 3 - Quick file upload to remote server via rsync. 3 + quick file upload to remote server via rsync. 4 + 5 + ## installation 4 6 5 - ## Installation 7 + hop is macos-only (uses pbcopy for clipboard, macos screenshot/record tools). 6 8 7 9 ```bash 8 10 bun install 9 11 bun run build 10 - # Move the binary to your PATH 11 - mv hop /usr/local/bin/ 12 + 13 + # move the binary to your path 14 + install hop /usr/local/bin/ 12 15 ``` 13 16 14 - ## Configuration 17 + ## configuration 15 18 16 - On first run, hop will create a config file at `~/.config/hop/config.json`: 19 + on first run, hop will create a config file at `~/.config/hop/config.json`: 17 20 18 21 ```json 19 22 { 20 - "server": "user@your-server.com", 21 - "remotePath": "/home/user/serve/x", 22 - "baseUrl": "https://x.eti.tf" 23 + "server": "user@domain.tld", 24 + "remotePath": "/var/www/", 25 + "baseUrl": "https://domain.tld" 23 26 } 24 27 ``` 25 28 26 - Edit this file with your server details. 29 + edit this file with your server details. 27 30 28 - ## Usage 31 + ## usage 29 32 30 - ```bash 31 - hop [-v|--verbose] path/to/file.png 32 33 ``` 34 + hop - quick file upload to remote server via rsync 33 35 34 - Options: 35 - - `-v`, `--verbose` - Show rsync command and stderr output for debugging 36 + usage: hop [options] <file> 36 37 37 - Output: 38 - ``` 39 - ✓ uploaded file.png to https://x.eti.tf/a1b2c3d.png 38 + options: 39 + -h, --help show this help message and exit 40 + -v, --verbose enable verbose output 41 + -k, --keep-filename keep original filename (don't hash) 42 + -f, --filename <name> use custom filename 43 + -s, --screenshot capture fullscreen and upload 44 + -sr, --screenshot-region capture region/window and upload 45 + -r, --record record screen (silent) 46 + -ra, --record-audio record with microphone audio 40 47 ``` 41 48 42 - The URL is also copied to your clipboard automatically. 49 + output: 50 + ``` 51 + ✓ uploaded file.png to https://domain.tld/hash.png 52 + ``` 43 53 44 - ## Features 54 + the url is also copied to your clipboard automatically. 45 55 46 - - **SHA256 hash-based filenames** - Content-addressable storage with 7-character hashes 47 - - **Rsync upload with progress** - Visual spinner showing upload progress 48 - - **Detailed error messages** - Human-readable rsync error codes (permission denied, connection failed, etc.) 49 - - **Automatic clipboard copy** - URL copied to clipboard on macOS (via pbcopy) 50 - - **Verbose mode** - Debug rsync issues with `-v` flag 51 - 52 - ## How It Works 56 + ## features 53 57 54 - 1. Generates SHA256 hash of file content (truncated to 7 chars) 55 - 2. Uploads via rsync with progress display 56 - 3. Outputs and copies the public URL 58 + - **sha256 hash-based filenames** - content-addressable storage with 7-character hashes 59 + - **rsync upload with progress** - visual spinner showing upload progress 60 + - **detailed error messages** - human-readable rsync error codes (permission denied, connection failed, etc.) 61 + - **automatic clipboard copy** - url copied to clipboard on macos (via pbcopy) 62 + - **verbose mode** - debug rsync issues with `-v` flag