Просмотр исходного кода

script: add simple script to remove username from files (#204)

* script: add simple script to remove username from files

* cleanup and add quotations around vars

---------

Co-authored-by: y <y>
greptile 2 лет назад
Родитель
Сommit
5534be7474
1 измененных файлов с 51 добавлено и 0 удалено
  1. 51 0
      contrib/privacy/scrub_username_from_file.sh

+ 51 - 0
contrib/privacy/scrub_username_from_file.sh

@@ -0,0 +1,51 @@
+#/usr/bin/env bash
+
+: ' 
+This program can be used as a convenient way to remove a username
+from files that will be shared with the dev team. An example is
+pasting a large log file or stack trace. Usernames can appear here
+due to e.g. file paths in the home directory. This may not be
+desirable.
+
+In this case, you can run this program on the file you want to
+share and it will create a copy of it in the current working
+directory. The copy will have the extension ".scrubbed".
+
+e.g. running this program as user `rms` in /tmp/:
+
+```
+sh no-dox.sh /etc/passwd
+```
+
+creates the file `/tmp/passwd.scrubbed` with the string `rms`
+replaced with the string `user`.
+
+NOTE: It is recommended to verify the output for any mistakes.
+This script is simple and is likely to miss some edge-cases.
+'
+set -e
+
+if [ "$#" -ne 1 ]; then
+	echo "Usage: $0 <file>"
+	exit 1
+fi
+
+# Replace the current user's name.
+ME=$(whoami)
+# Uncomment the following line and change 'changeme' if the user
+# running the script is not the same user as the one you are
+# trying to conceal.
+#ME="changeme"
+
+# The string in $ME will be replaced with this string.
+REPLACE="user"
+
+FILE="$1"
+DST=$(basename $FILE)
+
+if ! [ -f $FILE ]; then
+	echo "Target should be a file"
+	exit 2
+else
+	sed s/$ME/$REPLACE/g "$FILE" > "$(pwd)/$DST.scrubbed"
+fi