blob: daa779f03a44bad86f771b98da039b00004a9a2b (
plain) (
tree)
|
|
#!/usr/bin/env bash
# This file is part of FreeAMO
# Copyright (C) 2018 David Hedlund
#
# FreeAMO is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# FreeAMO is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
function latest_debranded_trisquel_version {
# All debranded programs starts with "i" so all of them are in Trisquels "/i/" directory
wget -qO- "http://archive.trisquel.info/trisquel/pool/main/i/$debranded_package/?C=N;O=D" | sed "s|\"|\\n|g; s|-|\\n|g" | grep "$debranded_package"_ | head -n 1 | sed "s|"$debranded_package"_||"
}
function check_files {
if [ ! -f "$run_path/FreeAMO-$check_type" ]; then
echo "$run_path/FreeAMO-$check_type doesn't exist.";
echo "Exiting" && exit
else
# Make sure all links are using SSL
if grep -q "http://addons.mozilla.org/" "$run_path/FreeAMO-$check_type"; then
echo "Change http://addons.mozilla.org/ to https://addons.mozilla.org/ (https)."
echo "Exiting" && exit
fi
fi
}
function line_status {
if [ "$file" == "$previous_file" ]; then
((++line))
else
line="0"; # Should not be 1
fi
}
# Begin locale code
function do-locale {
echo "####################"
tmp__en_US=$(jq ".results[$entry].$locale_description" "$file" | sed "s|en-US|en_US|" | jq -r .en_US )
tmp__en_GB=$(jq ".results[$entry].$locale_description" "$file" | sed "s|en-GB|en_GB|" | jq -r .en_GB )
# Use the first avalible if English is not avaliable
tmp=$(jq -r ".results[$entry] | select(.$locale_description != null) | .$locale_description[]" "$file" | head -n 1) || [[ $? == 141 ]] # Avoid `head -n 1` error `returned 141`
if [ "$tmp__en_US" != "null" ]; then
if [ "$locale_description" == "name" ]; then
name="$tmp__en_US";
elif [ "$locale_description" == "summary" ]; then
summary="$tmp__en_US";
elif [ "$locale_description" == "description" ]; then
description="$tmp__en_US";
elif [ "$locale_description" == "homepage" ]; then
homepage="$tmp__en_US";
elif [ "$locale_description" == "support_url" ]; then
support_url="$tmp__en_US";
fi
elif [ "$tmp__en_GB" != "null" ]; then
if [ "$locale_description" == "name" ]; then
name="$tmp__en_GB";
elif [ "$locale_description" == "summary" ]; then
summary="$tmp__en_GB";
elif [ "$locale_description" == "description" ]; then
description="$tmp__en_GB";
elif [ "$locale_description" == "homepage" ]; then
homepage="$tmp__en_GB";
elif [ "$locale_description" == "support_url" ]; then
support_url="$tmp__en_GB";
fi
elif [ "$tmp" != "null" ]; then
if [ "$locale_description" == "name" ]; then
name="$tmp";
elif [ "$locale_description" == "summary" ]; then
summary="$tmp";
elif [ "$locale_description" == "description" ]; then
description="$tmp";
elif [ "$locale_description" == "homepage" ]; then
homepage="$tmp";
elif [ "$locale_description" == "support_url" ]; then
support_url="$tmp";
fi
fi
# Use summary if description is not provided
if [ "$description" == "" ]; then
description="$summary"
fi
}
# End locale code
function amo_variables() {
id="$(jq ".results[$entry].id" "$file")";
average_daily_users="$(jq ".results[$entry].average_daily_users" "$file")";
has_eula="$(jq ".results[$entry].has_eula" "$file")";
slug="$(jq -r ".results[$entry].slug" "$file")";
current_version__id=$(jq ".results[$entry].current_version.id" "$file");
source "$run_path/src/main_functions"
locale_description="name"
do-locale
if jq .results[$entry].current_version.files[0].permissions "$file" | grep -q "nativeMessaging"; then
nativeMessaging__pass=false;
else
nativeMessaging__pass=true;
fi
}
function amo_variables__licenses {
license__amo_full_name="$(jq ".license.name" "$run_path/build/json/current_versions/$current_version__id.json" | sed "s|en-US|en_US|;" | jq -r .en_US)"
}
function essential_addon {
if [ "$has_eula" = false ] && [ "$nativeMessaging__pass" = true ] && [ "$average_daily_users" -ge "$minimum_average_daily_users" ]; then
essential_addon=true;
else
essential_addon=false;
fi
}
#function hard_to_evaluate_addon {
# curl "https://addons.mozilla.org/api/v3/addons/addon/nemid-nøglefilsprogram/" | jq .current_version.files[0].permissions | grep "nativeMessaging
# API data: Add software dependencies - https://github.com/mozilla/addons-server/issues/8668
# The API should be fixed. there are to many add-ons to keep track on if they have or not have software dependencies.
# Old solution:
# 1: Add this to FreeAMO-dependencies:
#belgium-eid eid-mw
# 2: Uncomment this code:
# depends_on_external_program=false;
# while IFS= read -r dependencies; do
#
# dependency_slug=$(echo $dependencies | awk '{print $1}');
# dependency=$(echo "$dependencies" | cut -f 2);
#
# if [ "$dependency_slug" == "$slug" ]; then
#
# depends_on_external_program=true;
#
# fi
#
# done < $run_path/FreeAMO-dependencies
#}
function pv__progress {
if [ ! "$pv__discard" = true ] && ! $debug; then
(pv --progress --line-mode --size "$pv__size" --timer) > /dev/null
else
tee
fi
}
function format_description__mixed_html_to_mediawiki {
sed "
# Remove Mozilla tracking links
s|https://outgoing.prod.mozaws.net/v1/.\\{65\\}||g; s|%3A|:|g; s|%23|#|g
# Remove reduntant backslashes. Pandoc will convert quotes regardless.
s|\\\\\\\"|\\\"|g
"
}
function format_description__after_pandoc {
sed "
### Fix formatting that cannot be fixed by Pandoc since it's not HTML
# Fix line breaks.
s|\\\\n|\\n|g
# Remove \t
s|\\\\t||g
"
# Change local links to external links
}
function format_description {
format_description__mixed_html_to_mediawiki | pandoc -f html -t mediawiki | format_description__after_pandoc
}
|