Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
freedombone
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Context Sensitive Group
freedombone
Commits
f5ddc346
Commit
f5ddc346
authored
6 years ago
by
Bob Mottram
Browse files
Options
Downloads
Patches
Plain Diff
Checks for installable apps in web UI
parent
b7dab277
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/freedombone-utils-webadmin
+113
-107
113 additions, 107 deletions
src/freedombone-utils-webadmin
with
113 additions
and
107 deletions
src/freedombone-utils-webadmin
+
113
−
107
View file @
f5ddc346
...
...
@@ -226,131 +226,137 @@ function web_admin_create_add_apps {
do
app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
app_index=0
app_is_installed=
# shellcheck disable=SC2068
for a in ${APPS_INSTALLED[@]}
do
installed_app_name=${APPS_INSTALLED_NAMES[$app_index]}
if [[ "$installed_app_name" == "$app_name" ]]; then
app_is_installed=1
break
fi
if [[ $(enough_ram_for_app "$app_name") == "0" ]]; then
if [[ $(app_not_on_onion_only "$app_name") != "0" ]]; then
if [[ $(app_not_on_arm "$app_name") != "0" ]]; then
app_index=0
app_is_installed=
# shellcheck disable=SC2068
for a in ${APPS_INSTALLED[@]}
do
installed_app_name=${APPS_INSTALLED_NAMES[$app_index]}
if [[ "$installed_app_name" == "$app_name" ]]; then
app_is_installed=1
break
fi
app_index=$((app_index+1))
done
app_index=$((app_index+1))
done
# check if the app is pending installation
app_pending_install=
if [ -f "$pending_installs" ]; then
if grep -q "install_${app_name}" "$pending_installs"; then
app_is_installed=1
app_pending_install=1
fi
fi
# check if the app is pending installation
app_pending_install=
if [ -f "$pending_installs" ]; then
if grep -q "install_${app_name}" "$pending_installs"; then
app_is_installed=1
app_pending_install=1
fi
fi
if [ ! $app_is_installed ]; then
app_filename="/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}"
if [ -f "$app_filename" ]; then
if grep -q "VARIANTS=''" "$app_filename"; then
continue
fi
if grep -q 'VARIANTS=""' "$app_filename"; then
continue
fi
# get the icon for the app
icon_filename="/usr/share/${PROJECT_NAME}/android-app/${app_name}.png"
if [ -f "$icon_filename" ]; then
cp "$icon_filename" "$webadmin_install_dir/icons/${app_name}.png"
else
icon_filename=
continue
fi
if [ ! $app_is_installed ]; then
app_filename="/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}"
if [ -f "$app_filename" ]; then
if grep -q "VARIANTS=''" "$app_filename"; then
continue
fi
if grep -q 'VARIANTS=""' "$app_filename"; then
continue
fi
# get the icon for the app
icon_filename="/usr/share/${PROJECT_NAME}/android-app/${app_name}.png"
if [ -f "$icon_filename" ]; then
cp "$icon_filename" "$webadmin_install_dir/icons/${app_name}.png"
else
icon_filename=
continue
fi
# remove any qrcode images
if [ -f "$webadmin_install_dir/app_qrcode_${app_name}.png" ]; then
rm "$webadmin_install_dir/app_qrcode_${app_name}.png"
fi
if [ -f "$webadmin_install_dir/${app_name}_qrcode.png" ]; then
rm "$webadmin_install_dir/${app_name}_qrcode.png"
fi
# remove any qrcode images
if [ -f "$webadmin_install_dir/app_qrcode_${app_name}.png" ]; then
rm "$webadmin_install_dir/app_qrcode_${app_name}.png"
fi
if [ -f "$webadmin_install_dir/${app_name}_qrcode.png" ]; then
rm "$webadmin_install_dir/${app_name}_qrcode.png"
fi
app_name_upper=$(echo "$app_name" | awk '{print toupper($0)}')
SHORT_DESCRIPTION=
DESCRIPTION=
app_name_upper=$(echo "$app_name" | awk '{print toupper($0)}')
SHORT_DESCRIPTION=
DESCRIPTION=
if ! grep -q "${app_name_upper}_SHORT_DESCRIPTION=" "$app_filename"; then
continue
fi
if grep -q "#${app_name_upper}_SHORT_DESCRIPTION=" "$app_filename"; then
continue
fi
SHORT_DESCRIPTION="$(grep "${app_name_upper}_SHORT_DESCRIPTION=" "$app_filename" | head -n 1 | sed 's|\$||g' | sed "s|'||g" | sed 's|\"||g' | awk -F '=' '{print $2}')"
if ! grep -q "${app_name_upper}_SHORT_DESCRIPTION=" "$app_filename"; then
continue
fi
if grep -q "#${app_name_upper}_SHORT_DESCRIPTION=" "$app_filename"; then
continue
fi
SHORT_DESCRIPTION="$(grep "${app_name_upper}_SHORT_DESCRIPTION=" "$app_filename" | head -n 1 | sed 's|\$||g' | sed "s|'||g" | sed 's|\"||g' | awk -F '=' '{print $2}')"
if grep -q "${app_name_upper}_DESCRIPTION=" "$app_filename"; then
DESCRIPTION="$(grep "${app_name_upper}_DESCRIPTION=" "$app_filename" | head -n 1 | sed 's|\$||g' | sed "s|'||g" | sed 's|\"||g' | awk -F '=' '{print $2}')"
fi
if grep -q "${app_nam
e_
u
pp
er}_DESCRIPTION=" "$app_filename"
; then
DESCRIPTION="$(grep "${app_name_upper}_DESCRIPTION=" "$app_filename" | head -n 1 | sed 's|\$||g' | sed "s|'||g" | sed 's|\"||g' | awk -F '=' '{print $2}')
"
fi
if [ $availabl
e_
a
pp
s_ctr -eq 0 ]
; then
echo '
<div
class=
"row"
>
' >> "$appslist_add_filename
"
fi
if [ $available_apps_ctr -eq 0 ]; then
echo '
<div
class=
"row"
>
' >> "$appslist_add_filename"
fi
filename="$webadmin_install_dir/app_${app_name}.html"
if [ -f "$filename" ]; then
rm "$filename"
fi
filename="$webadmin_install_dir/app_${app_name}.html"
if [ -f "$filename" ]; then
rm "$filename"
fi
filename="$webadmin_install_dir/app_add_${app_name}.html"
if [ ! $app_pending_install ]; then
{ echo '
<div
class=
"column"
>
';
echo '
<div>
';
echo "
<a
href=
\"app_add_${app_name}.html\"
>
";
echo "
<img
src=
\"icons/${app_name}.png\"
style=
\"width:100%\"
>
";
echo "
<center>
${app_name}
</center>
";
echo '
</a>
';
echo '
</div>
';
echo '
</div>
'; } >> "$appslist_add_filename"
else
{ echo '
<div
class=
"column"
>
';
echo '
<div>
';
echo "
<img
src=
\"icons/${app_name}.png\"
style=
\"width:100%\"
>
";
echo "
<center
class=
\"installing\"
>
${app_name}
</center>
";
echo '
</div>
';
echo '
</div>
'; } >> "$appslist_add_filename"
fi
filename="$webadmin_install_dir/app_add_${app_name}.html
"
cp "$app_add_template_filename" "$filename
"
if [ ! $app_pending_install ]; then
{ echo '
<div
class=
"column"
>
';
echo '
<div>
';
echo "
<a
href=
\"app_add_${app_name}.html\"
>
";
echo "
<img
src=
\"icons/${app_name}.png\"
style=
\"width:100%\"
>
";
echo "
<center>
${app_name}
</center>
";
echo '
</a>
';
echo '
</div>
';
echo '
</div>
'; } >> "$appslist_add_filename"
else
{ echo '
<div
class=
"column"
>
';
echo '
<div>
';
echo "
<img
src=
\"icons/${app_name}.png\"
style=
\"width:100%\"
>
";
echo "
<center
class=
\"installing\"
>
${app_name}
</center>
";
echo '
</div>
';
echo '
</div>
'; } >> "$appslist_add_filename"
fi
# Replace app variables
sed -i "s|HOSTNAME|$(hostname)|g" "$filename"
sed -i "s|APPNAME|${app_name}|g" "$filename"
sed -i "s|APPDESCRIPTION|${DESCRIPTION}|g" "$filename"
cp "$app_add_template_filename" "$filename"
# remove domain if onion only
if [[ "$ONION_ONLY" != 'no' ]]; then
if grep -q 'install_domain' "$filename"; then
sed -i '/install_domain/d' "$filename"
fi
sed -i "/installappconfirm.php/a
<input
type=
\"hidden\"
name=
\"install_domain\"
value=
\"${app_name}.$(hostname)\"
>
" "$filename"
fi
# Replace app variables
sed -i "s|HOSTNAME|$(hostname)|g" "$filename"
sed -i "s|APPNAME|${app_name}|g" "$filename"
sed -i "s|APPDESCRIPTION|${DESCRIPTION}|g" "$filename"
# remove freedns if necessary
if [[ "$DDNS_PROVIDER" != *"freedns"* ]]; then
if grep -q 'freedns_code' "$filename"; then
sed -i '/freedns_code/d' "$filename"
fi
fi
# remove domain if onion only
if [[ "$ONION_ONLY" != 'no' ]]; then
if grep -q 'install_domain' "$filename"; then
sed -i '/install_domain/d' "$filename"
fi
sed -i "/installappconfirm.php/a
<input
type=
\"hidden\"
name=
\"install_domain\"
value=
\"${app_name}.$(hostname)\"
>
" "$filename"
fi
available_apps_ctr=$((available_apps_ctr+1))
# remove freedns if necessary
if [[ "$DDNS_PROVIDER" != *"freedns"* ]]; then
if grep -q 'freedns_code' "$filename"; then
sed -i '/freedns_code/d' "$filename"
# four columns per row
if [ $available_apps_ctr -eq 4 ]; then
echo '
</div>
' >> "$appslist_add_filename"
available_apps_ctr=0
fi
fi
fi
fi
available_apps_ctr=$((available_apps_ctr+1))
# four columns per row
if [ $available_apps_ctr -eq 4 ]; then
echo '
</div>
' >> "$appslist_add_filename"
available_apps_ctr=0
fi
fi
fi
done
if [ ${available_apps_ctr} -gt 0 ]; then
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment