Guest User

Untitled

a guest
Jan 17th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #!/bin/bash -e
  2.  
  3. # A script to mass install Gnome extensions from a single folder.
  4. #
  5.  
  6. # for global extensions, use /usr/share/gnome-shell/extensions/
  7. EXTENSIONS_DIR=~/.local/share/gnome-shell/extensions
  8. TMP_DIR="/tmp/gnome-install-extensions"
  9. DIR=$1
  10.  
  11. # exit early, exit often
  12. if [[ -z "${DIR}" ]]; then
  13. echo "You must pass a directory. E.g. ${0} ~/Downloads"
  14. exit 10
  15. fi
  16.  
  17. rm -rf ${TMP_DIR}
  18. mkdir -p ${EXTENSIONS_DIR} ${TMP_DIR}
  19. pushd ${TMP_DIR} > /dev/null
  20.  
  21. for f in $(ls ${DIR}/*.shell-extension.zip); do
  22. fn=$(basename -- "${f}")
  23. local_dir="$(basename ${fn%.*})"
  24. metadata="${local_dir}/metadata.json"
  25.  
  26. cp ${f} ${TMP_DIR}/${fn}
  27. unzip -qq ${fn} -d ${local_dir}
  28. [[ ! -f "${metadata}" ]] && echo "${metadata} not found, skipping" && continue
  29.  
  30. # get the UUID to name
  31. name=$(grep -E "uuid" ${metadata} | sed 's/\"uuid\"\: \"//g' | sed 's/\",//g' )
  32. # gnome extension dirs must name the uuid name in metadata.json above
  33. mv ${local_dir} ${name}
  34. rm ${fn}
  35. mv * ${EXTENSIONS_DIR}/
  36. done
  37.  
  38. popd > /dev/null
  39. rm -rf ${TMP_DIR}
  40. echo ""
Add Comment
Please, Sign In to add comment