Advertisement
ReverseFlux

emacs2ram

Feb 15th, 2017
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. if [ -z "$1" ];then
  4. echo "Usage:"
  5. echo " emacs2ram start"
  6. echo " emacs2ram restore"
  7. exit 1
  8. fi
  9.  
  10. if [ "$1" == "start" ];then
  11. backup=emacs.d-backup
  12. link=.emacs.d
  13. volatile=/tmp/.emacs.d-$USER
  14.  
  15. IFS=
  16. set -efu
  17.  
  18. cd ~/
  19.  
  20. if [ ! -r $volatile ]; then
  21. mkdir -m0700 $volatile
  22. fi
  23.  
  24. # link -> volatie does not exist
  25. if [ "$(readlink $link)" != "$volatile" ]; then
  26. # backup project at first
  27. mv $link $backup
  28. # create the link
  29. ln -s $volatile $link
  30. fi
  31.  
  32. if [ -e $link/.unpacked ]; then
  33. echo "Sync .emacs.d from memory to backup ..."
  34. rsync -avq --delete --exclude .unpacked ./$link/ ./$backup/
  35. echo "DONE!"
  36. else
  37. echo "Sync .emacs.d from disk to memory ..."
  38. rsync -avq ./$backup/ ./$link/
  39. touch $link/.unpacked
  40. echo "DONE!"
  41. fi
  42. else
  43. echo "Moving .emacs.d back to disk ..."
  44. backup=$2-backup
  45. link=$2
  46. volatile=/tmp/$2-$USER
  47. cd ~/projs
  48. rm $link && mv $backup $link && rm -rf $volatile
  49. echo "DONE!"
  50. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement