def installer(): """ Create an installer for your app """ require_frozen_app() linux_distribution_not_supported_msg = \ "Your Linux distribution is not supported, sorry. " \ "You can run `fbs buildvm` followed by `fbs runvm` to start a Docker " \ "VM of a supported distribution." try: installer_fname = SETTINGS['installer'] except KeyError: if is_linux(): raise FbsError(linux_distribution_not_supported_msg) raise out_file = join('target', installer_fname) msg_parts = ['Created %s.' % out_file] if is_windows(): from fbs.installer.windows import create_installer_windows create_installer_windows() elif is_mac(): from fbs.installer.mac import create_installer_mac create_installer_mac() elif is_linux(): app_name = SETTINGS['app_name'] if is_ubuntu(): from fbs.installer.ubuntu import create_installer_ubuntu create_installer_ubuntu() install_cmd = 'sudo dpkg -i ' + out_file remove_cmd = 'sudo dpkg --purge ' + app_name elif is_arch_linux(): from fbs.installer.arch import create_installer_arch create_installer_arch() install_cmd = 'sudo pacman -U ' + out_file remove_cmd = 'sudo pacman -R ' + app_name elif is_fedora(): from fbs.installer.fedora import create_installer_fedora create_installer_fedora() install_cmd = 'sudo dnf install ' + out_file remove_cmd = 'sudo dnf remove ' + app_name else: raise FbsError(linux_distribution_not_supported_msg) msg_parts.append( 'You can for instance install it via the following command:\n' ' %s\n' 'This places it in /opt/%s. To uninstall it again, you can use:\n' ' %s' % (install_cmd, app_name, remove_cmd) ) else: raise FbsError('Unsupported OS') _LOG.info(' '.join(msg_parts))
def sign(): """ Sign your app, so the user's OS trusts it """ require_frozen_app() if is_windows(): from fbs.sign.windows import sign_windows sign_windows() _LOG.info('Signed all binary files in %s and its subdirectories.', relpath(path('${freeze_dir}'), path('.'))) elif is_mac(): _LOG.info('fbs does not yet implement `sign` on macOS.') else: _LOG.info('This platform does not support signing frozen apps.')