[PATCH v2]: Shell script for printing XFS quota project id for files.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Simple script that prints project id for files:

$ sh quota/xfs_lsprojid.sh quota/[fl]*
quota/freebsd.c: 232
quota/free.c: 0
quota/free.o: 222
quota/linux.c: 21344
quota/linux.o: 0

Signed-off-by: Arkadiusz Miśkiewicz <arekm@xxxxxxxx>
---

This time correct version of the patch.

 man/man8/xfs_lsprojid.8 |  9 +++++++++
 quota/Makefile          |  4 +++-
 quota/xfs_lsprojid.sh   | 11 +++++++++++
 3 files changed, 23 insertions(+), 1 deletion(-)
 create mode 100644 man/man8/xfs_lsprojid.8
 create mode 100644 quota/xfs_lsprojid.sh

diff --git a/man/man8/xfs_lsprojid.8 b/man/man8/xfs_lsprojid.8
new file mode 100644
index 0000000..3ea7ce9
--- /dev/null
+++ b/man/man8/xfs_lsprojid.8
@@ -0,0 +1,9 @@
+.TH xfs_lsprojid 8
+.SH NAME
+xfs_lsprojid \- print XFS project id for files
+.SH SYNOPSIS
+.B xfs_lsprojid
+.IR filename " ..."
+.SH DESCRIPTION
+.B xfs_lsprojid
+displays quota project id for specified files.
diff --git a/quota/Makefile b/quota/Makefile
index 9c6411e..d813005 100644
--- a/quota/Makefile
+++ b/quota/Makefile
@@ -12,7 +12,8 @@ CFILES = init.c util.c \
 
 CFILES += $(PKG_PLATFORM).c
 PCFILES = darwin.c freebsd.c irix.c linux.c
-LSRCFILES = $(shell echo $(PCFILES) | sed -e "s/$(PKG_PLATFORM).c//g")
+LSRCFILES = $(shell echo $(PCFILES) | sed -e "s/$(PKG_PLATFORM).c//g") \
+	xfs_lsprojid.sh
 
 LLDLIBS = $(LIBXCMD)
 LTDEPENDENCIES = $(LIBXCMD)
@@ -35,6 +36,7 @@ include $(BUILDRULES)
 install: default
 	$(INSTALL) -m 755 -d $(PKG_SBIN_DIR)
 	$(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR)
+	$(INSTALL) -m 755 xfs_lsprojid.sh $(PKG_SBIN_DIR)/xfs_lsprojid
 install-dev:
 
 -include .dep
diff --git a/quota/xfs_lsprojid.sh b/quota/xfs_lsprojid.sh
new file mode 100644
index 0000000..0dbf95c
--- /dev/null
+++ b/quota/xfs_lsprojid.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+#
+# Copyright (c) 2012 Arkadiusz Miśkiewicz.
+#
+
+for file in "$@"; do
+        xfs_io -p "$0" -r -c "stat" "$file" | awk '
+        /^fd\.path =/ { projid=""; gsub(/^fd\.path = \"/, ""); gsub(/\"$/, ""); path=$0 }
+        /^fsxattr\.projid =/ { projid=$3; print path ": " projid; }
+        '
+done
-- 
1.8.0

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs



[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux