Ship 🚢

Ship is a command line application that makes transferring files from a computer to a phone or another computer easy
Ship is Developed on macOS Catalina and should work on all platforms that python3 supports
Downloads
Ship - The best way to move files between your devices | Product Hunt Embed
forthebadge forthebadge forthebadge

Table of Contents

Requirements 📺

Installation ⬆️

Uninstallation ⬇️

pip uninstall shipapp

Usage 💯

How to use (Basic)

  1. Type in the command and filename that you want to share.
    ship [FILENAME]
    
  2. Copy the url into another device browser (can be phone or computer).
    Make sure to click 'ctrl-c' to kill after usage
    Mon Jul  6 22:37:27 2020 Sharing Server Starts - http://0a1752d38560.ngrok.io
    
  3. Download by clicking ‘Ship It’ and close the server by clicking Ctrl + c
    ^CMon Jul  6 23:26:38 2020 Sharing Server Stop - http://0a1752d38560.ngrok.io
    

Advanced Information ⚙️

usage: ship [-h] [-p [port]] [-q] [-P] [-L] [-l] [-V] [-v] [main]

Send file to phone or other computers. Make sure to kill this process after completetion
if your phone is having trouble reading qrcode use flag -q: ship -q [FILENAME]

positional arguments:
  main                  file to be shared

optional arguments:
  -h, --help            show this help message and exit
  -p [port], --port [port]
                        port to be shared on
  -q, --qrcode          if flagged qrcode will be in new tab
  -o, --open            if flagged browser will open automatically
  -P, --private         if flagged host address will be on private ip
  -L, --localhost       if flagged host address will be localhost
  -l, --link            if flagged ship will start the Link Sharing Server
  -V, --verbose         if flagged additional details will be shown via stdout
  -v, --version         show program's version number and exit

Releases 🏭

alpha release v0.0.4.0 (In development/unstable)

Ship will watch a file and will restart server with new file content
Ship can now be called from within Python as Shipapp.ShipIt

alpha release v0.0.3.0

Now Ship can fallback on an Empty port if port 9999 is being used
Whole codebase revamp/rewrite with better errors and comments
Now you can run multiple instance on Ship
Whole design with use of external css
Ship can now share links on top of files
new -o, –open cli flag auto open browsers on host computer
new -P, –private cli flag: if flagged host address will be on private ip
new -L, –local cli flag: force port to localhost/127.0.0.1
new -V, –verbose cli flag: additional details will be shown via stdout
new -l, –link cli flag: ship will start the Link Sharing Server

alpha release v0.0.2.1

alpha release v0.0.2.0

full release on pypi
support for inline and new tab qrcodes
new -q, –qrcode cli flag: to display flag
new -V, -version cli flag: to show version
more readable errors
git clone installation is not long available

alpha release v0.0.1.6

help file update

alpha release v0.0.1.5

build dist errors

alpha release v0.0.1.4

float right on all templates

alpha release v0.0.1.3

build dist errors

alpha release v0.0.1.2

template decision error fixed
text template fixed
error raising error fixed

alpha release v0.0.1.1

initial release

Common issues when Installing 🪑

Ubuntu PATH issue when downloading

When installing ship (shipapp) python might say that script is not placed in The PATH to solve this problem follow the steps

  1. enter bashrc config file with vim
    vi .bashrc
    
  2. enter insert mode in vim Esc then press i for insert
  3. then at the top write with the path the python outputted
    export PATH='(the path that python outputted):$PATH'
    
  4. then exit vim by pressing Esc then typing :w q
  5. then exit the terminal and enter again then ship command should now be available 😀

Platforms Tested on 🧪

MacOS Catalina - version 10.15.6 😀😀

Windows 10 - version 2004 😀😀

Canonical Ubuntu - version 20.04 😀😀

Issues 🤫

Templating

Since the template are loaded in with python format method anything the uses curly braces will cause an error which include: any Javascript function, if statements, try - except blocks and embedded css.

Mimetypes

Can only load in mimetypes defined in the standard package.