Advertisement
Guest User

XPI converter for Epyrus

a guest
Oct 19th, 2024
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.18 KB | Source Code | 0 0
  1. #!/bin/bash
  2.  
  3. test -z "$1" && {
  4.     echo "Usage: $0 {complete theme xpi}"
  5.     exit 1
  6. }
  7.  
  8. function try {
  9.     command="$*"
  10.     $command || {
  11.         echo -e "Error while executing command: \E[31m$command\E[0m"
  12.         exit 2
  13.     }
  14. }
  15.  
  16. BASENAME=$(basename "$1" .xpi)
  17. DIRNAME=$(pwd)
  18. TMPDIR="/tmp/$BASENAME/"
  19. test -d $TMPDIR && try rm -r $TMPDIR
  20. try mkdir $TMPDIR
  21. try cp "$1" $TMPDIR
  22. try cd $TMPDIR
  23. try unzip $BASENAME.xpi install.rdf
  24.  
  25. grep '<em:targetApplication>' -A5 $TMPDIR/install.rdf > .TARGET
  26. test -f .TARGET || {
  27.     echo -e "Error: \E[31mUnable to write temp file in $TMPDIR!\E[0m"
  28.     exit 3
  29. }
  30. ORIG_TARGET=$(grep "<em:id>" .TARGET | grep -o "{.*}")
  31. ORIG_MINVER=$(grep "<em:minVersion>" .TARGET | grep -Eo "[0-9](\.?[*0-9])*")
  32. ORIG_MAXVER=$(grep "<em:maxVersion>" .TARGET | grep -Eo "[0-9](\.?[*0-9])*")
  33. rm .TARGET
  34.  
  35. DEST_TARGET="{29877c1d-27df-4421-9a79-382c31470151}"
  36. DEST_MINVER="2.0.0"
  37. DEST_MAXVER="2.1.*"
  38.  
  39. test -z "$ORIG_TARGET" && {
  40.     echo -e "Error: \E[31mTarget application UUID not found in install.rdf\E[0m"
  41.     exit 4
  42. }
  43.  
  44. cat <<EOF
  45. ------- Original target data -------
  46. Application UUID:   $ORIG_TARGET
  47. Minimum version:    $ORIG_MINVER
  48. Maximum version:    $ORIG_MAXVER
  49.  
  50. --- Target data after conversion ---
  51. Application UUID:   $DEST_TARGET
  52. Minimum version:    $DEST_MINVER
  53. Maximum version:    $DEST_MAXVER
  54. EOF
  55.  
  56. # Escape asterisk
  57. ORIG_MINVER=$(echo $ORIG_MINVER | sed "s!\*!\\\*!g")
  58. ORIG_MAXVER=$(echo $ORIG_MAXVER | sed "s!\*!\\\*!g")
  59. DEST_MINVER=$(echo $DEST_MINVER | sed "s!\*!\\\*!g")
  60. DEST_MAXVER=$(echo $DEST_MAXVER | sed "s!\*!\\\*!g")
  61.  
  62. # Make the replacements
  63. try sed -i "s!<em:id>$ORIG_TARGET</em:id>!<em:id>$DEST_TARGET</em:id>!g" \
  64.     "$TMPDIR/install.rdf"
  65. try sed -i "s!<em:minVersion>$ORIG_MINVER</em:minVersion>!<em:minVersion>$DEST_MINVER</em:minVersion>!g" \
  66.     "$TMPDIR/install.rdf"
  67. try sed -i "s!<em:maxVersion>$ORIG_MAXVER</em:maxVersion>!<em:maxVersion>$DEST_MAXVER</em:maxVersion>!g" \
  68.     "$TMPDIR/install.rdf"
  69.  
  70. # Update XPI file
  71. try zip "$BASENAME.xpi" install.rdf
  72. try cp -v "$BASENAME.xpi" "$DIRNAME/${BASENAME}_converted.xpi"
  73.  
  74. rm -r "$TMPDIR"
  75.  
  76. echo -e "Conversion success: \E[32m$DIRNAME/${BASENAME}_converted.xpi\E[0m"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement