#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
#
# Univention Corporate Client
#  UCC image removal tool
#
# Copyright (C) 2012-2016 Univention GmbH
#
# http://www.univention.de/
#
# All rights reserved.
#
# The source code of this program is made available
# under the terms of the GNU Affero General Public License version 3
# (GNU AGPL V3) as published by the Free Software Foundation.
#
# Binary versions of this program provided by Univention to you as
# well as other copyrighted, protected or trademarked materials like
# Logos, graphics, fonts, specific documentations and configurations,
# cryptographic keys etc. are subject to a license agreement between
# you and Univention and not subject to the GNU AGPL V3.
#
# In the case you use this program under the terms of the GNU AGPL V3,
# the program is provided in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License with the Debian GNU/Linux or Univention distribution in file
# /usr/share/common-licenses/AGPL-3; if not, see
# <http://www.gnu.org/licenses/>.

from optparse import OptionParser
import univention.debug as ud
import ucc.images as ucc_images
from univention.lib.i18n import Translation
_ = Translation('ucc-image-toolkit').translate

def parse_args():
	parser = OptionParser()
	parser.add_option("-l", "--list-images", action="store_true", dest="listimg", help="List all UCC images currently stored")
	parser.add_option("-r", "--remove-image", action="store", dest="removeimg", help="Name of UCC image to be removed (name of spec file in dir, e.g. ucc-desktop.spec")
	parser.add_option( '-d', '--debug', action = 'store', type = 'int', dest = 'debug', default = 2,
		help = 'if given than debugging is activated and set to the specified level [default: %default]' )
	(options, args) = parser.parse_args()
	return (options.listimg, options.removeimg, options.debug)


if __name__ == "__main__":
	# call from the command line
	ucc_images.use_univention_debug = False
	listimg, removeimg, debug_level = parse_args()
	if not listimg and not removeimg:
		ucc_images._exit('You need to specify either -l or -r. Run with --help for details.', True)
	if listimg:
		images = ucc_images.get_local_ucc_images()
		for iimg in images:
			print '%s: %s (%s)' % (iimg.spec_file, iimg.description, iimg.version)
	elif removeimg:
		try:
			ucc_images.remove_ucc_image(removeimg)
			print _('Finished.')
		except (IOError, OSError) as exc:
			ucc_images.log_error(_('Image data could not be removed: %s') % exc)


