blob: 4947ae7f9d4d24290a071a91b00ebe8910a8db55 (
plain) (
tree)
|
|
#!/bin/bash
# Copyright 2016, 2017 David Hedlund
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# https://addons-server.readthedocs.io/en/latest/topics/api/addons.html
# Add to wiki and remove: echo "|Name=$(xmlstarlet sel -t -v "addon/name" test.xml)"
SCRIPTSRC=$(readlink -f "$0" || echo "$0")
RUN_PATH=$(dirname "${SCRIPTSRC}" || echo .)
if [ ! -f /usr/bin/jq ]; then echo "/usr/bin/jq not found!"; exit=true; fi
if [ ! -f /usr/bin/wget ]; then echo "/usr/bin/wget not found!"; exit=true; fi
if [[ $exit == true ]]; then exit 1; fi
if [ ! -d "build" ]; then mkdir -p build; fi
retrive () {
api="$(echo "$url" | sed "s|https://addons.mozilla.org/en-US/firefox/addon/|https://addons.mozilla.org/api/v3/addons/addon/|g;")";
slug="$(echo "$url" | sed "s|https://addons.mozilla.org/en-US/firefox/addon/||g; s|/||g")";
}
xpi () {
cd build/ || exit
echo "$download" > tmp.txt
sed -i "s|/addon-|\naddon-|" tmp.txt
xpi=$(grep ".xpi" tmp.txt);
fbname=$(basename "$xpi" | cut -d. -f1);
}
case "$1" in
--get-json)
if [ ! -d "build/amo/json" ]; then mkdir -p build/amo/json; fi
if [ ! -d "build/amo/json.versions" ]; then mkdir -p build/amo/json.versions; fi
cd build/amo/ || exit
while read -r url; do
retrive
wget "$api" -O json/$slug.json
wget $api\versions/$(cat json/$slug.json | jq '.current_version.id')/ -O json.versions/$slug.json
done < ../../amo-repo.txt
# List obsoleted projects
find json/ -size 0 -print
;;
--get-xpi-url)
cd build/ || exit
rm -f amo_repo-latest_download.txt
for i in $(find amo/json/ -maxdepth 1 -type f); do echo "https://addons.mozilla.org/firefox/downloads/latest/$(basename $i | sed "s|.json||")/addon-$(cat $i | jq '.current_version.id').xpi" >> amo_repo-latest_download.txt; done
;;
--get-xpi)
if [ ! -d "build/amo/xpi" ]; then mkdir -p build/amo/xpi; fi
while read download; do
xpi
if [ ! -f amo/xpi/$xpi ]; then
cd amo/xpi/ || exit
wget $download
cd ..
fi
cd ..
done < build/amo_repo-latest_download.txt
;;
--xpi-extract)
if [ ! -d "build/amo/xpi.extracted" ]; then mkdir -p build/amo/xpi.extracted; fi
while read download; do
xpi
if [ ! -d amo/xpi.extracted/$fbname ]; then
mkdir -p amo/xpi.extracted/$fbname
cd amo/xpi.extracted/$fbname || exit
unzip ../../xpi/$xpi
cd ../../
fi
cd ..
done < build/amo_repo-latest_download.txt
;;
--all)
$0 --get-json
$0 --get-xpi-url
$0 --get-xpi
$0 --xpi-extract
;;
*)
echo $"$0 [OPTION]
OPTIONS
--all
--get-json
--get-xpi-url
--get-xpi
--xpi-extract
--make-xml"
exit 1
esac
exit 0
|