all repos — dotfiles @ 5cba583f93d4af60d2f763e5d3790ec452684bf2

linux dotfiles

bin/scripts/mup (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
#!/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="inty"
remote_url="https://m.prithu.dev"
# remote_url="https://m.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 '\.' | awk -F'.' '{print "."$NF}')
        else
            ext=""
        fi
        # if ssh $remote_hostname "test -f .share/$slug$ext"
        # then
            # echo "[Error] File already exists: $slug$ext" 1>&2
            # exit 1
        # else
            rsync --ignore-existing --info=progress1,skip "$1" "$remote_hostname:.share/$slug$ext" 1>&2 || exit 1
            echo "$remote_url/$slug$ext"
        # fi
    else
        # if ssh $remote_hostname "test -f .share/$2"
        # then
        #     echo "[Error] File already exists: $2" 1>&2
        #     exit 1
        # else
            rsync --ignore-existing --info=progress1,skip "$1" "$remote_hostname:.share/$2" 1>&2 || exit 1
            echo "$remote_url/$2"
        # fi
    fi
fi