xfs
[Top] [All Lists]

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

To: xfs@xxxxxxxxxxx
Subject: [PATCH v2]: Shell script for printing XFS quota project id for files.
From: Arkadiusz Miśkiewicz <arekm@xxxxxxxx>
Date: Mon, 12 Nov 2012 19:40:28 +0100
Cc: Arkadiusz Miśkiewicz <arekm@xxxxxxxx>
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maven.pl; s=maven; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :mime-version:content-type:content-transfer-encoding; bh=rxqmojUnKGvzYZtQA/AbKQBAqspxIWLe70GpzFl2n30=; b=cj3Alhkyvfdlhq8UiI0O+usQzJAEcBZayhxDGfRAH+nAb5A2Y24l1W/LM1av79W6AK r04Oh4VSgszbFBZVAjPxiHaAQO0hg4fRZHpAMxu6f4ljymJ1tovl//fdl1kIwEmik2d6 sfJyLnNay1bvMyKJNgLNWoOyXE8xKnh8Pf/Ig=
In-reply-to: <1352745235-14922-1-git-send-email-arekm@xxxxxxxx>
References: <1352745235-14922-1-git-send-email-arekm@xxxxxxxx>
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

<Prev in Thread] Current Thread [Next in Thread>