blob: edcc8f9dfedb4a504a59318fe88481cba5cd3f8c (
plain)
1 #!/usr/bin/env bash
2 #
3 # Portimg uses Crux port-like system for creating software deployment images.
4 # Copyright (C) 2017 Aaron Ball <nullspoon@oper.io>
5 #
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
10 #
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
18 #
19
20
21 #
22 # Footprints the specified path in the format
23 # Outputs footprint to stdout.
24 #
25 # @path Path to the directory to recursively footprint
26 #
27 function footprint_dir {
28 local path=${1:-}
29
30 if [[ -z ${path} ]]; then
31 echo "Please specify a directory to checksum."
32 return 1
33 fi
34
35 cd ${path}
36
37 # Generate a file and directory list
38 local file_list=$(find)
39
40 # Stat each file
41 for i in ${file_list[@]}; do
42 # Skip . and ..
43 [[ ${i} == '.' || ${i} == '..' ]] && continue
44
45 # Get file stats for "permissions owner:group filename"
46 stat -c '%A %U:%G %n' "${i#*/}"
47 done
48 }
|