Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
unregister: Do not delete empty directories
Emmanuel Vadot committed 5 months ago
commit d23ccf05bded3a2adecd1402ace7cf08f875fbdc
parent a5bbfbd
2 files changed +46 -10
modified libpkg/pkg_delete.c
@@ -116,9 +116,11 @@ pkg_delete(struct pkg *pkg, struct pkg *rpkg, struct pkgdb *db, int flags,
			return (ret);
	}

-
	ret = pkg_delete_dirs(db, pkg, NULL);
-
	if (ret != EPKG_OK)
-
		return (ret);
+
	if ((flags & PKG_DELETE_KEEPFILES) == 0) {
+
		ret = pkg_delete_dirs(db, pkg, NULL);
+
		if (ret != EPKG_OK)
+
			return (ret);
+
	}

	pkg_emit_deinstall_finished(pkg);
	vec_foreach(pkg->message, i) {
modified tests/frontend/unregister.sh
@@ -30,14 +30,29 @@ unregister_pkg_body() {

simple_unregister_body() {
	touch file1
-
	mkdir dir
-
	touch dir/file2
+
	mkdir dir1
+
	mkdir dir2
+
	touch dir1/file2

	atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "${TMPDIR}"
	cat << EOF >> test.ucl
files: {
    ${TMPDIR}/file1: "",
-
    ${TMPDIR}/dir/file2: "",
+
    ${TMPDIR}/dir1/file2: "",
+
}
+
directories: {
+
    ${TMPDIR}/dir1: {
+
        uname: "",
+
        gname: "",
+
        perm: "0000",
+
        fflags: 0
+
    }
+
    ${TMPDIR}/dir2: {
+
        uname: "",
+
        gname: "",
+
        perm: "0000",
+
        fflags: 0
+
    }
}
EOF

@@ -53,10 +68,29 @@ EOF
		-s exit:0 \
		pkg unregister -y test

-
	test -f file1 || atf_fail "'file1' is not present"
-
	test -f dir/file2 || atf_fail "'dir/file2' is not present"
-
	test -d dir || atf_fail "'dir' is not present"
-
	test -d ${TMPDIR} || atf_fail "Prefix have been removed"
+
	atf_check \
+
		-o ignore \
+
		-e ignore \
+
		-s exit:0 \
+
		test -f file1
+

+
	atf_check \
+
		-o ignore \
+
		-e ignore \
+
		-s exit:0 \
+
		test -f dir1/file2
+

+
	atf_check \
+
		-o ignore \
+
		-e ignore \
+
		-s exit:0 \
+
		test -d dir1
+

+
	atf_check \
+
		-o ignore \
+
		-e ignore \
+
		-s exit:0 \
+
		test -d dir2
}

simple_unregister_prefix_ending_with_slash_body() {