import os
import sys
from shutil import copytree, copy2, move, rmtree
import json
import createmsi
build_dir = sys.argv[1]
src_dir = sys.argv[2]
creator_dir = os.path.join(build_dir, 'workdir/installation/MSICreatorLO' )
def prepare_project_dir():
instdir = os.path.join(build_dir, 'instdir' )
fonts_dir = os.path.join(instdir, 'share/fonts' )
new_fonts_dir = os.path.join(creator_dir, 'libo-fonts/share/fonts' )
main_dir = os.path.join(creator_dir, 'main' )
src_uninstaller_icon = os.path.join(src_dir, 'icon-themes/colibre/res/mainapp_48_8.png' )
src_ui_banner = os.path.join(src_dir, 'instsetoo_native/inc_common/windows/msi_templates/Binary/Banner.bmp' )
src_ui_background = os.path.join(src_dir, 'instsetoo_native/inc_common/windows/msi_templates/Binary/Image_2.bmp' )
graphics_dir = os.path.join(creator_dir, 'graphics' )
sdk_dir = os.path.join(creator_dir, 'main/sdk' )
try :
move(fonts_dir, new_fonts_dir)
copytree(instdir, main_dir, dirs_exist_ok=True )
copy2(src_uninstaller_icon, creator_dir)
os.mkdir(graphics_dir)
copy2(src_ui_banner, graphics_dir)
copy2(src_ui_background, graphics_dir)
rmtree(sdk_dir)
except FileExistsError as err:
print(err)
def create_creator_json():
lo_version = sys.argv[3]
lo_name = sys.argv[4]
uninstaller_icon = 'mainapp_48_8.png'
lo_dictionary = {
"upgrade_guid" : "6f05ed48-a735-4155-ab60-e4cc98455262" ,
"version" : lo_version,
"product_name" : lo_name,
"manufacturer" : "The Document Foundation" ,
"name" : lo_name,
"name_base" : lo_name,
"comments" : "Testing a libo installer" ,
"installdir" : "LibreOffice Test" ,
"startmenu_shortcut" : "program/soffice.exe" ,
"desktop_shortcut" : "program/soffice.exe" ,
"addremove_icon" : uninstaller_icon,
"major_upgrade" : {
"AllowDowngrades" : "yes" ,
"IgnoreRemoveFailure" : "yes"
},
"graphics" : {
"banner" : "graphics/Banner.bmp" ,
"background" : "graphics/Image_2.bmp"
},
"parts" : [
{
"id" : "libreoffice" ,
"title" : "The LibreOffice Suite" ,
"description" : "This is a test for the LibreOffice installer" ,
"absent" : "disallow" ,
"staged_dir" : "main"
},
{
"id" : "libreofficefonts" ,
"title" : "The LibreOffice Fonts " ,
"description" : "This is a test for the LibreOffice Fonts" ,
"absent" : "allow" ,
"staged_dir" : "libo-fonts"
}
]
}
lo_object = json.dumps(lo_dictionary, indent=4)
with open(os.path.join(creator_dir, 'lo.json' ), 'w' ) as lo_json:
lo_json.write(lo_object)
def generate_installer():
os.chdir(creator_dir)
createmsi.run(['lo.json' ])
if __name__ == '__main__' :
prepare_project_dir()
create_creator_json()
generate_installer()
quality 100%
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland