Skip to content
Snippets Groups Projects
Commit 3f51528a authored by Timo Teräs's avatar Timo Teräs
Browse files

main/aaudit: track file permissions too, and run git-gc

parent 93937fdf
No related branches found
No related tags found
No related merge requests found
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=aaudit
pkgver=0.1
pkgver=0.2
pkgrel=0
pkgdesc="Alpine Auditor"
url="http://alpinelinux.org"
......@@ -28,17 +28,17 @@ package() {
}
md5sums="6ab0ebec3419a4c495a1935a07d4825c aaudit-emaildiff
d71863d014f844656b2fd1926f63826e aaudit-import-tar
a85e99fa4ad3845a78104763444b21bb aaudit-import-tar
5dafe6078c114ac0a445dcf0633371cd aaudit-create
9bcfb058c2b28b36d593203f838b90fa aaudit-refresh
43ca8205fec84b7fe8ead005d0cbd8f3 aaudit.conf"
9f43a5cd22d8176fab45903642be878a aaudit-refresh
5a6da6c58f46ecede9553c3d183cf384 aaudit.conf"
sha256sums="56ec6e2c13a5e857ae604264a424fd8c6dc04bf37122d88197ddbbb92e42b560 aaudit-emaildiff
4ea264c0a0fd7e1a0ff52a42db9b098358cce545b3eec1066ecc977cfe06565e aaudit-import-tar
7edad95c6dda08dfa9595a22b796828e3425d1eb27ae585196db85bd2d467b87 aaudit-import-tar
6643a7c1353253a417a319b0ac8558a348248cb97dcca2c724940350edef47b2 aaudit-create
6f3fb2d53141be5b58dfbda4977243628ed56de6ad3949ac349ad01013f43f75 aaudit-refresh
c23f1dd4fe68b5cbde0bb5c8cc9996c9569b1cb4a249523c995381c8b3eee8ee aaudit.conf"
cec7b57721006b4e2601db1fa7f02009ebd73c1543c59d0f01ef07fb75644349 aaudit-refresh
93a841ed9d0079d40649df53240bbfe75d3ee8b9d5eb1f03e455eac0a94869a5 aaudit.conf"
sha512sums="114d931491faf8f2df71a050a87d2d895a73f48b3948da424f3c1def9da9ec9dec2db96b2a1fefafd25477dc285a010ea95ce0372174b139d081899e09be01d3 aaudit-emaildiff
a1db9c83165ca42bcddf37c13b23206b5d1e0d7c00f8d5f1ce942a8ee8d94d21f6ebd85d1e4be53111b7f7468968df18dc00b073c710f25a4ff1a726f11eee83 aaudit-import-tar
b1b96ba344f407bf09fe1ae480b4e5041ae5558bea57364e7998c98107eb19ee98b48c7e896805a550b2adb66f2978543b2106a70786c09af4dbd207b448558f aaudit-import-tar
85911c1b5e548cfaf417b310abff0d42d0a5a77a49f40584275d55feef30a2c68413c1db70d946709a3bf794dc31ec70bc61c3e50f2a8e1d91e57e13dc6470b1 aaudit-create
6286214d25322f835156c2891cc509503df22fb979514c3a60a2bb3b520f0fe09e73bae80ed73ff0117e571956fa9cce17f1094e1d3f7698c19d14e80c36c5bd aaudit-refresh
da7bd0febcf45ee4db8fb32d54fe014830895aafb131b93ad5e1ee8e95bd0a67d12b7931362135ccd7661bbf54909d09be6308c68506970dfbdb7d6f8de70ad3 aaudit.conf"
115ef61434dde446abc1b9c67d81338acce133ca595669774392db4b3206ae44659841c65f25e0f70a0dcea6086fd065cc11273e4fa7ff64066298e522a70c90 aaudit-refresh
ff66efccb6f7a304ad515dad31c8ce4fe20b5adb16856968576b2ff08f03620ec9c23113ae95ff25755fea677f8431d95fd46ade0e3d95291274f4379d0850f3 aaudit.conf"
......@@ -21,6 +21,16 @@ local function match_file(fn, match_list)
return false
end
function sortedpairs(t)
local i, keys, k = 0, {}
for k in pairs(t) do keys[#keys+1] = k end
table.sort(keys)
return function()
i = i + 1
if keys[i] then return keys[i], t[keys[i]] end
end
end
local function checksum_header(block)
local sum = 256
for i = 1,148 do sum = sum + block:byte(i) end
......@@ -116,11 +126,19 @@ function import_tar(CONF, TAR, GIT, initial_commit)
GIT:write('\n')
local fn = header.prefix..header.name
all_files[fn] = { mark=nextmark, mode=header.mode }
all_files[fn] = { mark=nextmark, mode=header.mode, uname=header.uname, gname=header.gname }
nextmark = nextmark + 1
if header.mtime > author_time then author_time = header.mtime end
end
end
if CONF.track_filemode then
GIT:write("blob\nmark :"..nextmark.."\n")
GIT:write("data <<END_OF_PERMISSONS\n")
for path, v in sortedpairs(all_files) do
GIT:write(string.format("%o %s:%s %s\n", v.mode, v.uname, v.gname, path))
end
GIT:write("END_OF_PERMISSONS\n")
end
GIT:write(string.format([[
commit %s
......@@ -139,6 +157,9 @@ END_OF_COMMIT_MESSAGE
if not initial_commit then GIT:write(string.format("from %s^0\n", from_ref)) end
GIT:write("deleteall\n")
if CONF.track_filemode then
GIT:write(string.format("M %o :%i %s\n", romode, nextmark, '.permissions.txt'))
end
local path, v
for path, v in pairs(all_files) do
local mode = v.mode
......
......@@ -13,3 +13,4 @@ if ! git diff --quiet --exit-code master..import; then
git branch --quiet --force master import
fi
git branch --quiet -D import
git gc --quiet --prune=now
......@@ -4,6 +4,8 @@ notify_email = { "engineers@alpine.local" };
-- smtp_server = "<server>";
commit_message = "Changes";
track_filemode = true;
no_track_files = {
"*/.git/*",
"*.apk-new",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment