all repos — dotfiles @ dd2db8ae42d358267a4fcdc13fa096d431d0d08d

linux dotfiles

bin/scripts/xup

#!/bin/bash

# quick and dirty file sharing script using rsync
# .share folder has to be on the remote machine's
# user's home directory

remote_hostname="glix"
remote_url="https://x.prithu.xyz"

slugen () {
    # generate a slug of alphabets
    dd if=/dev/urandom status=none bs=1024 count=1 | \
        strings | tr -d '[:space:][:punct:][:digit:][lIq]' | cut -c -${1:-3}
}


if [ "$1" ]
then
    if [ -z "$2" ]
    then
        slug=$(slugen)
        if echo "$1" | grep '\.' 2>&1 > /dev/null
        then
            ext=$(echo "$1" | grep '\.' | cut -d '.' -f2 | sed 's/^/\./')
        else
            ext=""
        fi
        rsync --ignore-existing "$1" "$remote_hostname:.share/$slug$ext" || exit 1
        echo "$remote_url/$slug$ext"
    else
        rsync --ignore-existing "$1" "$remote_hostname:.share/$2" || exit 1
        echo "$remote_url/$2"
    fi
fi