File: debian-save-restore.mk

package info (click to toggle)
lcab 1.0b12-7
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, jessie, jessie-kfreebsd, stretch
  • size: 480 kB
  • ctags: 123
  • sloc: sh: 815; ansic: 710; makefile: 27
file content (91 lines) | stat: -rw-r--r-- 2,622 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#   debian-save-restore.mk -- Save and restore original files
#
#   Copyright
#
#       Copyright (C) 2008-2011 Jari Aalto <jari.aalto@cante.net>
#
#   License
#
#       This program is free software; you can redistribute it and/or modify
#       it under the terms of the GNU General Public License as published by
#       the Free Software Foundation; either version 2 of the License, or
#       (at your option) any later version.
#
#       This program is distributed 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 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/>.
#
#   Description
#
#       This is GNU makefile part, that defines common variables,
#       targets and macros to be used from debian/rules.
#
#   Usage (format 3.0)
#
#	FILE_LIST_PRESERVE = <file list of upstream files>
#
#	override_dh_clean:
#		$(file-state-save)
#		dh_clean
# 		$(file-state-restore-copy)
#
#   Alternative usage, in case more file updates happens during configure etc.
#
#       override_dh_auto_configure:
#               $(file-state-save)
#               <configure call>
#
#       binary-arch:
#               $(file-state-restore)
#               ...

define file-state-save
	# save files
	suffix=.original; \
        for file in $(FILE_LIST_PRESERVE); \
        do \
	        backup=/tmp/$$(echo $$file | sed 's,/,%,g')$$suffix; \
                if [ -f "$$file" ] && [ ! -f "$$backup" ]; then \
		 	cp --archive --verbose "$$file" "$$backup"; \
		fi; \
        done
endef

define file-state-restore-copy
	# restore files
	suffix=.original; \
        for file in $(FILE_LIST_PRESERVE); \
        do \
	        backup=/tmp/$$(echo $$file | sed 's,/,%,g')$$suffix; \
                if [ -f "$$backup" ]; then \
			 dir=$$(dirname "$$file"); \
			 if [ "$$dir" != "." ]; then \
			    mkdir -p "$$dir"; \
			 fi; \
			 cp --archive --verbose "$$backup" "$$file"; \
		fi; \
        done
endef

define file-state-restore
	# restore files
	suffix=.original; \
        for file in $(FILE_LIST_PRESERVE); \
        do \
	        backup=/tmp/$$(echo $$file | sed 's,/,%,g')$$suffix; \
                if [ -f "$$backup" ]; then \
			 dir=$$(dirname "$$file"); \
			 if [ "$$dir" != "." ]; then \
			    mkdir -p "$$dir"; \
			 fi; \
			 cp --archive --verbose "$$backup" "$$file"; \
			 rm "$$backup"; \
		fi; \
        done
endef

# End of file