#!/usr/bin/env python3

"""
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
SPDX-FileCopyrightText: 2022 Alois Wohlschlager <alois1@gmx-topmail.de>
"""

import os
import shutil
import sys

aliases = {
        "akregator": ["org.kde.akregator"],
        "alligator": ["org.kde.alligator"],
        "amarok": ["org.kde.amarok"],
        "anydesk": ["com.anydesk.Anydesk"],
        "ardour": ["org.ardour.Ardour"],
        "ark": ["org.kde.ark"],
        "artikulate": ["org.kde.artikulate"],
        "atom": ["io.atom.Atom"],
        "audacity": ["org.audacityteam.Audacity"],
        "blender": ["org.blender.Blender"],
        "blinken": ["org.kde.blinken"],
        "bluefish": ["nl.openoffice.bluefish"],
        "bomber": ["org.kde.bomber"],
        "bovo": ["org.kde.bovo"],
        "brackets": ["io.brackets.Brackets"],
        "cantor": ["org.kde.cantor"],
        "claws-mail": ["org.claws_mail.Claws-Mail"],
        "converseen": ["net.fasterland.converseen"],
        "darktable": ["org.darktable.Darktable"],
        "diffuse": ["io.github.mightycreak.Diffuse"],
        "digikam": ["org.kde.digikam"],
        "elisa": ["org.kde.elisa"],
        "falkon": ["org.kde.falkon"],
        "filezilla": ["org.filezillaproject.Filezilla"],
        "fontforge": ["org.fontforge.FontForge"],
        "gimp": ["org.gimp.GIMP"],
        "goodvibes": ["io.gitlab.Goodvibes"],
        "gpodder": ["org.gpodder.gpodder"],
        "granatier": ["org.kde.granatier"],
        "gtkhash": ["org.gtkhash.gtkhash"],
        "gwenview": ["org.kde.gwenview"],
        "haguichi": ["com.github.ztefn.haguichi"],
        "handbrake": ["fr.handbrake.ghb"],
        "homebank": ["fr.free.Homebank"],
        "inkscape": ["org.inkscape.Inkscape"],
        "jdownloader": ["org.jdownloader.JDownloader"],
        "joplin": ["net.cozic.joplin_desktop"],
        "juk": ["org.kde.juk"],
        "kalgebra": ["org.kde.kalgebra"],
        "kalzium": ["org.kde.kalzium"],
        "kamoso": ["org.kde.kamoso"],
        "kanagram": ["org.kde.kanagram"],
        "kapman": ["org.kde.kapman"],
        "katomic": ["org.kde.katomic"],
        "kblackbox": ["org.kde.kblackbox"],
        "kblocks": ["org.kde.kblocks"],
        "kbreakout": ["org.kde.kbreakout"],
        "kbruch": ["org.kde.kbruch"],
        "kcachegrind": ["org.kde.kcachegrind"],
        "kdenlive": ["org.kde.kdenlive"],
        "kdevelop": ["org.kde.kdevelop"],
        "kdiamond": ["org.kde.kdiamond"],
        "kdiff3": ["org.kde.kdiff3"],
        "kfind": ["org.kde.kfind"],
        "kfourinline": ["org.kde.kfourinline"],
        "kgeography": ["org.kde.kgeography"],
        "kget": ["org.kde.kget"],
        "khangman": ["org.kde.khangman"],
        "kig": ["org.kde.kig"],
        "kile": ["org.kde.kile"],
        "kiriki": ["org.kde.kiriki"],
        "kiten": ["org.kde.kiten"],
        "kjumpingcube": ["org.kde.kjumpingcube"],
        "kmplot": ["org.kde.kmplot"],
        "knights": ["org.kde.knights"],
        "kolf": ["org.kde.kolf"],
        "kolourpaint": ["org.kde.kolourpaint"],
        "kontact": ["org.kde.kontact"],
        "konversation": ["org.kde.konversation"],
        "kopete": ["org.kde.kopete"],
        "kphotoalbum": ["org.kde.kphotoalbum"],
        "krdc": ["org.kde.krdc"],
        "krename": ["org.kde.krename"],
        "kronometer": ["org.kde.kronometer"],
        "kruler": ["org.kde.kruler"],
        "ksirk": ["org.kde.ksirk"],
        "kstars": ["org.kde.kstars"],
        "kteatime": ["org.kde.kteatime"],
        "ktimetracker": ["org.kde.ktimetracker"],
        "ktorrent": ["org.kde.ktorrent"],
        "ktouch": ["org.kde.ktouch"],
        "ktrip": ["org.kde.ktrip"],
        "kuiviewer": ["org.kde.kuiviewer"],
        "kwrite": ["org.kde.kwrite"],
        "kxstitch": ["org.kde.kxstitch"],
        "labplot": ["org.kde.labplot2"],
        "leocad": ["org.leocad.LeoCAD"],
        "libreoffice-base": ["org.libreoffice.LibreOffice.base"],
        "libreoffice-calc": ["org.libreoffice.LibreOffice.calc"],
        "libreoffice-draw": ["org.libreoffice.LibreOffice.draw"],
        "libreoffice-impress": ["org.libreoffice.LibreOffice.impress"],
        "libreoffice-math": ["org.libreoffice.LibreOffice.math"],
        "libreoffice-startcenter": ["org.libreoffice.LibreOffice.startcenter"],
        "libreoffice-writer": ["org.libreoffice.LibreOffice.writer"],
        "lokalize": ["org.kde.lokalize"],
        "massif-visualizer": ["org.kde.massif-visualizer"],
        "masterpdfeditor": ["net.codeindustry.MasterPDFEditor"],
        "mendeleydesktop": ["com.elsevier.MendeleyDesktop"],
        "minitube": ["org.tordini.flavio.Minitube"],
        "minuet": ["org.kde.minuet"],
        "mpv": ["io.mpv.Mpv"],
        "nota": ["org.kde.nota"],
        "okteta": ["org.kde.okteta"],
        "okular": ["org.kde.okular"],
        "picmi": ["org.kde.picmi"],
        "q4wine": ["ua.org.brezblock.q4wine"],
        "qbittorrent": ["org.qbittorrent.qBittorrent"],
        "qelectrotech": ["org.qelectrotech.QElectroTech"],
        "rosegarden": ["com.rosegardenmusic.rosegarden"],
        "scribus": ["net.scribus.Scribus"],
        "skanlite": ["org.kde.skanlite"],
        "skrooge": ["org.kde.skrooge"],
        "smartgit": ["com.syntevo.SmartGit"],
        "smplayer": ["info.smplayer.SMPlayer"],
        "steam": ["com.valvesoftware.Steam"],
        "sublime-merge": ["com.sublimemerge.App"],
        "sublime-text": ["com.sublimetext.Three"],
        "telegram": ["org.telegram.desktop"],
        "texstudio": ["org.texstudio.TeXstudio"],
        "umbrello": ["org.kde.umbrello"],
        "viber": ["com.viber.Viber"],
        "vlc": ["org.videolan.VLC"],
        "vvave": ["org.kde.vvave"],
        "wine": ["org.winehq.Wine"],
    }

srcdir = sys.argv[1]
bindir = sys.argv[2]

shutil.rmtree(bindir, ignore_errors=True)
for dirpath, _, filenames in os.walk(os.path.join(srcdir, "apps")):
    outpath = os.path.join(bindir + dirpath[len(srcdir):])
    os.makedirs(outpath)
    for file in filenames:
        if file[-4:] == ".svg":
            base = file[:-4]
            if base in aliases:
                for alias in aliases[base]:
                    os.symlink(file, os.path.join(outpath, alias + ".svg"))
