owncloud / docs

ownCloud Documentation (v2)
https://doc.owncloud.com
GNU Affero General Public License v3.0
54 stars 89 forks source link

Finding images no where used #174

Closed mmattel closed 5 years ago

mmattel commented 5 years ago

@settermjd As the topic tells, is there a automatism available to identify all those images in docs which are nowhere used?

mmattel commented 5 years ago

I did a bit a research and found the following, tested with sampling the result on docs and documentation, png files only (jpg accordingly)

First of all, checking if any png files would contain upper case characters

starting directory docs/modules
find ./ -type f \( -iname \*.png \) | grep -v "[a-z]"
(no result, good)

Find the location(s) of the file (to check single files found from below...)

Example
find ./ -type f \( -iname \023-ucs-owncloud-apps.png \)
./administration_manual/assets/images/appliance/ucs/onlyoffice/023-ucs-owncloud-apps.png
./administration_manual/pages/images/appliance/ucs/onlyoffice/023-ucs-owncloud-apps.png

administration_manual

find /var/www/owncloud/docs/modules/administration_manual/assets -name '*.png' |
  awk -F/ '{print tolower($NF)}' |
  sort -u > /tmp/png-files &&
grep -IhFriof /tmp/png-files --exclude-dir="assets" . | 
  awk '{print tolower($0)}' | sort -u | comm -23 /tmp/png-files -
023-ucs-owncloud-apps.png
024-ucs-owncloud-app-disable-collabora.png
2-updates.png
8. application-created.png
add-files-via-dropbox.png
add_storage.png
anti-virus-configuration-with-regular-expressions.png
anti-virus-configuration-with-standard-options.png
appliance-is-ready.png
appliance-post-installation-screen.png
app-screenshot.png
app-sharepoint-enable.png
cache-1.png
clamav-installation-confirmation.png
community-vm-console.png
community-vm-splash.png
config-report-1.png
confirm-install-clamav-daemon.png
documents_app_enable.png
documents_apply_test.png
domain-and-network-configuration.png
dropbox-1.png
dropbox-2.png
dropbox-3.png
dropbox-4.png
dropbox-5.png
dropbox-6.png
dropbox.png
dropbox-share-in-dropbox.png
email-no-theme.png
email-templates-choose-template.png
email-templates-edit-template.png
email-templates.png
encryption14.png
encryption15.png
external-storage-dropbox-is-installed.png
federated-sharing.png
files-drop-1.png
files-drop-2.png
files-drop-3.png
files-drop-4.png
files-drop-5.png
files-drop-6.png
files-drop-7.png
generate-password.png
google-drive10.png
google-drive11.png
google-drive12.png
google-drive13.png
google-drive1.png
google-drive2.png
google-drive3.png
google-drive4.png
google-drive5.png
google-drive6.png
google-drive7.png
google-drive8.png
google-drive9.png
google-drive.png
google-drive-sdk.png
google-verification.png
impersonate-installed.png
impersonate-uninstalled.png
install-clamav-daemon.png
install-owncloud-application.png
install-wizard-a2.png
install-wizard-a4.png
jive_2.png
jive_config.png
ldap-wizard-5-group.png
lucene-search-enable.png
lucene-search-user.png
new-files-in-dropbox-share.png
oc_admin_app_page.png
owncloud-install-accept-license-agreement.png
owncloud-market-guests-application-installed.png
owncloud-market-guests-application.png
owncloud-market-install-guests-application.png
owncloud-uninstall-notice.png
package-management.png
remote_shares.png
scaling-1.png
scaling-2.png
scaling-3.png
scaling-4.png
scaling-5.png
select-and-install-clamav-daemon.png
select-and-install-clamav.png
sharepoint-drive-config.png
sharing-files-1.png
sharing-files-2.png
shibboleth-personal.png
shib-gui1.png
shib-gui2.png
shib-gui4.png
smtp-config-wizard.png
ucs-admin-login.png
ucs-app-center-install.png
ucs-app-center-module.png
ucsint1.png
ucsint2.png
ucsint.png
ucs-login.png
ucs-management-dashboard.png
ucs-portal.png
uninstall-app.png
univention-app-center.png
univention-software-update-scanning-for-updates.png
updater-10.png
updater-11.png
updater-1.png
updater-2.png
updater-3.png
updater-4.png
updater-5.png
updater-6.png
updater-7.png
updater-8.png
updater-9.png
upgrade-3.png
upgrade-complete.png
upgrade-in-progress.png
upgrade-notifier.png
view-dropbox-share.png

developer_manual

find /var/www/owncloud/docs/modules/developer_manual/assets -name '*.png' |
  awk -F/ '{print tolower($NF)}' |
  sort -u > /tmp/png-files &&
grep -IhFriof /tmp/png-files --exclude-dir="assets" . | 
  awk '{print tolower($0)}' | sort -u | comm -23 /tmp/png-files -
application-epub+zip.png
application-javascript.png
application-pdf.png
application-rss+xml.png
application-x-cbr.png
application-x-shockwave-flash.png
appstore.png
audio.png
code-integrity-warning-rescan.png
database.png
delete-hover.png
desktopapp.png
favicon-touch.png
folder-drag-accept.png
folder-external.png
folder-public.png
folder-shared.png
font.png
googleplay.png
image-svg+xml.png
kanbanexample.png
logo-mail.png
logo.png
logo-wide.png
package-x-generic.png
s10.png
s11.png
s8.png
text-calendar.png
text-code.png
text-html.png
text-vcard.png
text-x-c.png
text-x-h.png
text-x-python.png
toggle-filelist.png
toggle-pictures.png
video.png
web.png
x-office-document.png
x-office-presentation.png
x-office-spreadsheet.png

user_manual

find /var/www/owncloud/docs/modules/user_manual/assets -name '*.png' |
  awk -F/ '{print tolower($NF)}' |
  sort -u > /tmp/png-files &&
grep -IhFriof /tmp/png-files --exclude-dir="assets" . | 
  awk '{print tolower($0)}' | sort -u | comm -23 /tmp/png-files -
add-user-to-guests.png
apis_auth_google_drive.png
a-public-link.png
bookmark_addurl.png
bookmark_setting.png
caldav.png
calendar_caldav_icon.png
calendar_caldav_ios.png
calendar_caldav_link.png
calendar_create_event_advanced.png
calendar_create_event.png
calendar_createevent.png
calendar_create_event_repeat_advanced.png
calendar_create_event_repeat.png
calendar_create_event_share.png
calendar_create_new.png
calendar_default.png
calendar_edit_event.png
calendar_export.png
calendar_import.png
calendar_manage-calendars.png
calendar_newtimezone1.png
calendar_settings.png
calendar_share.png
chain-link-on-public-share.png
contact_address_book_add.png
contact_bottombar.png
contact_del_ab.png
contact_emptycontact.png
contact_new.png
contact_picture_default.png
contact_picture.png
contacts_empty.png
contacts_settings.png
contact_uploadbutton.png
cross.png
direct-share-3.png
direct-share-4.png
direct-share-5.png
documents_personal_settings.png
email_address_personal_settings.png
email_server_smtp_wizard.png
encryption4.png
event_export.png
external_google_drive_1_sign_in.png
external_google_drive_2_verify.png
external_google_drive_3_create_project.png
external_google_drive_4_enable_api.png
external_google_drive_5_setup_owncloud.png
external_google_drive_6_accept.png
files-drop-2.png
files-drop-3.png
files-drop-4.png
files-drop-5.png
files-drop-6.png
files-drop-7.png
files_page-1.png
files_the-overflow-menu.png
files_view.png
full_name.png
gear.png
language_personal_settings.png
mail_templates.png
marketplace.png
nautilus_webdav.png
new_project_google_drive_api_settings.png
new_project_google_drive_branding.png
new_project_google_drive_new_client.png
new_project_google_drive.png
notifications_personal_settings.png
oc_apps_dropdown.png
oc_documents_col_edit.png
oc_documents_edit.png
oc_documents.png
oc_documents_share.png
oc_edit.png
oc_files_share.png
oc_filesweb_navigate.png
oc_filesweb_new.png
oc_filesweb.png
oc_main_web.png
oc_personal_settings_window.png
oc_share_expiration_calendar.png
oc_share_with_options.png
oc_ui.png
open-public-links.png
owncloud-create-custom-group.png
owncloud-custom-group-share-permissions.png
owncloud-market-custom-groups-installed.png
owncloud-settings-custom-group-visible.png
owncloud_webinterface_map.png
password_change.png
pencil.png
permalink.png
private-link-tooltip.png
profile_picture_personal_settings.png
remote_shares.png
s2s-add-remote-share.png
s2s-connect-to-remote-share.png
s2s-create_public_share.png
s2s-remote-share-labeled.png
s2s_share_link.png
share_link_adding.png
share_link.png
sharepoint-drive-config-user.png
usage_indicator.png
users-files.png
users-overlays.png
users-overlays-sharepoint.png
users-overlays-win-net-drive.png
users-share-local2.png
users-share-local.png
users-share-public.png
version_personal_settings.png
mmattel commented 5 years ago

Finding duplicate files (to see if images are double stored)

sudo apt install fdupes
sudo fdupes -rs /var/www/owncloud/docs

Check if orphaned files are used in repro documentation (possible migration issue)

find /var/www/owncloud/docs/modules/administration_manual/assets -name '*.png' |
  awk -F/ '{print tolower($NF)}' |
  sort -u > /tmp/png-files &&
grep -IhFriof /tmp/png-files --exclude-dir="assets" . | 
  awk '{print tolower($0)}' | sort -u | comm -23 /tmp/png-files - | 
  grep -rl --exclude-dir=\.git /var/www/owncloud/documentation

Output Example (added a linebreak for better reading)

/var/www/owncloud/documentation/admin_manual/configuration/files/external_storage/dropbox.rst:.. 
image:: ../../../images/configuration/files/external_storage/dropbox/successful-connection-to-dropbox.png

Print the path of the files (for further processing)

find /var/www/owncloud/docs/modules/administration_manual/assets -name '*.png' |
  awk -F/ '{print tolower($NF)}' |
  sort -u > /tmp/png-files &&
grep -IhFriof /tmp/png-files --exclude-dir="assets" . | 
  awk '{print tolower($0)}' | sort -u | comm -23 /tmp/png-files - | 
  xargs -I {} find ./ -type f \( -iname \{} \)

Delete the files with full path (you need to run the delete command with sudo su !)

find /var/www/owncloud/docs/modules/administration_manual/assets -name '*.png' |
  awk -F/ '{print tolower($NF)}' |
  sort -u > /tmp/png-files &&
grep -IhFriof /tmp/png-files --exclude-dir="assets" . | 
  awk '{print tolower($0)}' | sort -u | comm -23 /tmp/png-files - | 
  xargs -I {} find ./ -type f \( -iname \{} \) -delete
mmattel commented 5 years ago

Closing PR merged