2025-01-31 19:27:38 +05:30
#!/usr/bin/env python3
2025-01-31 18:43:02 +05:30
# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
### BEGIN LICENSE
# Copyright (C) 2010 jan gerber <j@mailb.org>
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 3, as published
# by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranties of
# MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
### END LICENSE
###################### DO NOT TOUCH THIS (HEAD TO THE SECOND PART) ######################
2025-01-31 19:27:38 +05:30
import DistUtilsExtra . auto
2025-01-31 18:43:02 +05:30
assert DistUtilsExtra . auto . __version__ > = ' 2.10 ' , ' needs DistUtilsExtra.auto >= 2.10 '
import os
def update_data_path ( prefix , oldvalue = None ) :
try :
2025-01-31 19:27:38 +05:30
with open ( ' calcool/calcoolconfig.py ' , ' r ' ) as fin :
with open ( fin . name + ' .new ' , ' w ' ) as fout :
for line in fin :
fields = line . split ( ' = ' ) # Separate variable from value
if fields [ 0 ] == ' __calcool_data_directory__ ' :
# update to prefix, store oldvalue
if not oldvalue :
oldvalue = fields [ 1 ]
line = " %s = ' %s ' \n " % ( fields [ 0 ] , prefix )
else : # restore oldvalue
line = " %s = %s " % ( fields [ 0 ] , oldvalue )
fout . write ( line )
fout . flush ( )
2025-01-31 18:43:02 +05:30
os . rename ( fout . name , fin . name )
2025-01-31 19:27:38 +05:30
except ( OSError , IOError ) as e :
2025-01-31 18:43:02 +05:30
print ( " ERROR: Can ' t find calcool/calcoolconfig.py " )
sys . exit ( 1 )
return oldvalue
def update_desktop_file ( datadir ) :
try :
2025-01-31 19:27:38 +05:30
with open ( ' calcool.desktop.in ' , ' r ' ) as fin :
with open ( fin . name + ' .new ' , ' w ' ) as fout :
for line in fin :
if ' Icon= ' in line :
line = " Icon= %s \n " % ( datadir + ' media/logo.png ' )
fout . write ( line )
fout . flush ( )
2025-01-31 18:43:02 +05:30
os . rename ( fout . name , fin . name )
2025-01-31 19:27:38 +05:30
except ( OSError , IOError ) as e :
2025-01-31 18:43:02 +05:30
print ( " ERROR: Can ' t find calcool.desktop.in " )
sys . exit ( 1 )
class InstallAndUpdateDataDirectory ( DistUtilsExtra . auto . install_auto ) :
def run ( self ) :
if self . root or self . home :
2025-01-31 19:27:38 +05:30
print ( " WARNING: You don ' t use a standard --prefix installation, take care that you eventually " \
2025-01-31 18:43:02 +05:30
" need to update quickly/quicklyconfig.py file to adjust __quickly_data_directory__. You can " \
2025-01-31 19:27:38 +05:30
" ignore this warning if you are packaging and uses --prefix. " )
2025-01-31 18:43:02 +05:30
previous_value = update_data_path ( self . prefix + ' /share/calcool/ ' )
update_desktop_file ( self . prefix + ' /share/calcool/ ' )
DistUtilsExtra . auto . install_auto . run ( self )
update_data_path ( self . prefix , previous_value )
##################################################################################
###################### YOU SHOULD MODIFY ONLY WHAT IS BELOW ######################
##################################################################################
DistUtilsExtra . auto . setup (
name = ' calcool ' ,
2025-01-31 19:27:38 +05:30
version = ' 25.01 ' ,
2025-01-31 18:43:02 +05:30
license = ' GPL-3 ' ,
2025-01-31 19:27:38 +05:30
author = ' Jan Gerber ' ,
2025-01-31 18:43:02 +05:30
author_email = ' j@mailb.org ' ,
description = ' A document based calculator tool ' ,
long_description = ' Calcool allows you to do calculations in a document, on the right you have the result for each line. If you ever used bc and wanted to edit a previous line or tried to reference the result of line 3, calcool might be what you are looking for. ' ,
2025-01-31 19:27:38 +05:30
url = ' https://code.0x2620.org/j/calcool ' ,
2025-01-31 18:43:02 +05:30
cmdclass = { ' install ' : InstallAndUpdateDataDirectory } ,
data_files = [
( ' share/mime/packages ' , [ ' calcool.xml ' ] ) ,
] ,
)