- 
                Notifications
    
You must be signed in to change notification settings  - Fork 7
 
Image hosting on GitHub
        Louis Maddox edited this page Aug 9, 2016 
        ·
        39 revisions
      
    .bashrc functions to automate image hosting at github.com/lmmx/shots
function take-shot 	(){
  # Allow take-shot without versioning: create array if one doesn't exist
  if [ -z ${shots+x} ]; then shots=(); fi
  # would leave array lying around so needs wrapper to clean up: make-shots
  shootyear="$(date | awk '{print $6}')";
  shootmonth="$(date | awk '{print $2}')";
  mkdir -p "/gits/shots/$shootyear/$shootmonth";
  shotfile="$(echo "$@")";
  cp "$shotfile" "/gits/shots/$shootyear/$shootmonth";
  shotfilename=$(basename "$shotfile");
  encodedshot="$(python -c 'from urllib import quote; print quote("'"$shotfilename"'").encode("utf-8")')"
  shots+=("https://raw.githubusercontent.com/lmmx/shots/master/$shootyear/$shootmonth/$encodedshot");
}
function make-shots	(){ for shot in "$@"; do take-shot $shot; done; shots=""; }
function take-shots	(){ for shot in "$@"; do take-shot $shot; done; }
function shoot      (){
  shots=();
  take-shots "$@";
  cd /gits/shots/;
  git add .;
  git commit -m "Added $@";
  git push origin master;
  cd - > /dev/null;
  printf '%s\n' "${shots[@]}";
}- Adds one or more images to git-versioned repository,
 - Commits and pushes,
 - Repeats the URLs to use (percent-encodes characters with Python 
urllib.quote), - Returns to the original directory
 
make-shots just copies the file(s) into the directory (make a commit when you're ready).
See also: gnews, which parses the git status --porcelain output to produce an automated summary message for a git commit. Useful here for adding multiple shots separately (make-shots) then moving everything to origin master in a single command
- 
shootlastpic: combining:- xbel recency check (Py3: last-xbel-to-gimp⇢../xbel_parse/xbel-pic-parse.py)
- 
but modify subprocess called with an argument
- [requiring keyword i.e. flag to confirm]
- NB potentially destructive action
 
 - use 
shoot:to save, with name provided [required]- Go has nice and simple flag library
- or rather libraries? options for options? arg!
 
 
 - Go has nice and simple flag library
 
 - [requiring keyword i.e. flag to confirm]
 
 - 
but modify subprocess called with an argument
 - 
- shots versioning to quickly version a screenshot [optionally file rename via a single provided arg, enforced if format is Screenshot-0000-0000-etc-etc.png]
 
 
 - xbel recency check (Py3: last-xbel-to-gimp⇢../xbel_parse/xbel-pic-parse.py)
 
- 
shootwill version, but a call to a learning process could provide a sense and reasoning system about images- based on their use within thought libraries at permut.co, @nalogical, carets