1 #!/usr/bin/env python 2 3 """ 4 Copying utilities. 5 6 Copyright (C) 2019 Paul Boddie <paul@boddie.org.uk> 7 8 This program is free software; you can redistribute it and/or modify it under 9 the terms of the GNU General Public License as published by the Free Software 10 Foundation; either version 3 of the License, or (at your option) any later 11 version. 12 13 This program is distributed in the hope that it will be useful, but WITHOUT 14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 details. 17 18 You should have received a copy of the GNU General Public License along with 19 this program. If not, see <http://www.gnu.org/licenses/>. 20 """ 21 22 from shutil import copy 23 24 def copy_attachments(parser, input, output): 25 26 "Copy attachments referenced by 'parser' from 'input' to 'output'." 27 28 pagename = parser.metadata.get("pagename") 29 30 if not pagename: 31 return 32 33 for link_target in parser.link_targets: 34 35 # Obtain attachments. 36 37 if link_target.get_type() == "attachment": 38 39 # Obtain the attachment filename, the source location and the 40 # destination. 41 42 filename = link_target.get_identifier() 43 input_filename = input.get_attachment_filename(pagename, filename) 44 output_filename = output.get_attachment_filename(pagename, filename) 45 46 # Copy the file if possible. 47 48 if input_filename and output_filename: 49 output.ensure_attachments(pagename) 50 copy(input_filename, output_filename) 51 52 # vim: tabstop=4 expandtab shiftwidth=4