| 
				
			 | 
			
			
				@@ -49,6 +49,7 @@ CURR_APP= 
			 | 
		
	
		
			
			| 
				49
			 | 
			
				49
			 | 
			
			
				 REMOVE_APP= 
			 | 
		
	
		
			
			| 
				50
			 | 
			
				50
			 | 
			
			
				 CURR_PASSWORD="" 
			 | 
		
	
		
			
			| 
				51
			 | 
			
				51
			 | 
			
			
				 TESTS= 
			 | 
		
	
		
			
			| 
				
			 | 
			
				52
			 | 
			
			
				+EXPORT_FILENAME= 
			 | 
		
	
		
			
			| 
				52
			 | 
			
				53
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				53
			 | 
			
				54
			 | 
			
			
				 # If this file is present then don't store passwords 
			 | 
		
	
		
			
			| 
				54
			 | 
			
				55
			 | 
			
			
				 NO_PASSWORD_STORE_FILE=~/.nostore 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -73,6 +74,7 @@ function pass_show_help { 
			 | 
		
	
		
			
			| 
				73
			 | 
			
				74
			 | 
			
			
				     echo $'  -u --user [name]                 Username' 
			 | 
		
	
		
			
			| 
				74
			 | 
			
				75
			 | 
			
			
				     echo $'  -a --app [name]                  Name of the application' 
			 | 
		
	
		
			
			| 
				75
			 | 
			
				76
			 | 
			
			
				     echo $'  -p --pass [password]             The password to store' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				77
			 | 
			
			
				+    echo $'     --export [filename]           Export to KeepassX XML' 
			 | 
		
	
		
			
			| 
				76
			 | 
			
				78
			 | 
			
			
				     echo '' 
			 | 
		
	
		
			
			| 
				77
			 | 
			
				79
			 | 
			
			
				     echo $'To encrypt a password:' 
			 | 
		
	
		
			
			| 
				78
			 | 
			
				80
			 | 
			
			
				     echo '' 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -145,6 +147,41 @@ function clear_passwords { 
			 | 
		
	
		
			
			| 
				145
			 | 
			
				147
			 | 
			
			
				     exit 0 
			 | 
		
	
		
			
			| 
				146
			 | 
			
				148
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				147
			 | 
			
				149
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				150
			 | 
			
			
				+function export_to_keepass { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				151
			 | 
			
			
				+    filename = "$1" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				152
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				153
			 | 
			
			
				+    echo '<database>' > $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				154
			 | 
			
			
				+    echo '  <group>' >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				155
			 | 
			
			
				+    echo "    <title>${PROJECT_NAME}</title>" >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				156
			 | 
			
			
				+    echo '    <icon>48</icon>' >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				157
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				158
			 | 
			
			
				+    for d in /root/.passwords/*/ ; do 
			 | 
		
	
		
			
			| 
				
			 | 
			
				159
			 | 
			
			
				+        USERNAME=$(echo "$d" | awk -F '/' '{print $4}') 
			 | 
		
	
		
			
			| 
				
			 | 
			
				160
			 | 
			
			
				+        echo '    <group>' >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				161
			 | 
			
			
				+        echo "      <title>$USERNAME</title>" >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				162
			 | 
			
			
				+        echo '      <icon>0</icon>' >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				163
			 | 
			
			
				+        for a in /root/.passwords/$USERNAME/*/ ; do 
			 | 
		
	
		
			
			| 
				
			 | 
			
				164
			 | 
			
			
				+            APP_NAME=$(echo "$a" | awk -F '/' '{print $5}') 
			 | 
		
	
		
			
			| 
				
			 | 
			
				165
			 | 
			
			
				+            app_password=$(${PROJECT_NAME}-pass -u $USERNAME -a $APP_NAME) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				166
			 | 
			
			
				+            echo '      <entry>' >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				167
			 | 
			
			
				+            echo "        <title>$APP_NAME</title>" >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				168
			 | 
			
			
				+            echo "        <username>$USERNAME</username>" >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				169
			 | 
			
			
				+            echo "        <password>$app_password</password>" >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				170
			 | 
			
			
				+            echo '        <url/>' >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				171
			 | 
			
			
				+            echo '        <comment/>' >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				172
			 | 
			
			
				+            echo '        <icon>0</icon>' >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				173
			 | 
			
			
				+            echo '        <expire>Never</expire>' >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				174
			 | 
			
			
				+            echo '      </entry>' >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				175
			 | 
			
			
				+        done 
			 | 
		
	
		
			
			| 
				
			 | 
			
				176
			 | 
			
			
				+        echo '    </group>' >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				177
			 | 
			
			
				+    done 
			 | 
		
	
		
			
			| 
				
			 | 
			
				178
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				179
			 | 
			
			
				+    echo '  </group>' >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				180
			 | 
			
			
				+    echo '</database>' >> $filename 
			 | 
		
	
		
			
			| 
				
			 | 
			
				181
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				182
			 | 
			
			
				+    echo $"Exported $filename" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				183
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				184
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				148
			 | 
			
				185
			 | 
			
			
				 while [[ $# > 1 ]] 
			 | 
		
	
		
			
			| 
				149
			 | 
			
				186
			 | 
			
			
				 do 
			 | 
		
	
		
			
			| 
				150
			 | 
			
				187
			 | 
			
			
				     key="$1" 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -183,6 +220,10 @@ do 
			 | 
		
	
		
			
			| 
				183
			 | 
			
				220
			 | 
			
			
				             shift 
			 | 
		
	
		
			
			| 
				184
			 | 
			
				221
			 | 
			
			
				             CURR_APP="${1}" 
			 | 
		
	
		
			
			| 
				185
			 | 
			
				222
			 | 
			
			
				             ;; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				223
			 | 
			
			
				+        --export) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				224
			 | 
			
			
				+            shift 
			 | 
		
	
		
			
			| 
				
			 | 
			
				225
			 | 
			
			
				+            EXPORT_FILENAME="${1}" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				226
			 | 
			
			
				+            ;; 
			 | 
		
	
		
			
			| 
				186
			 | 
			
				227
			 | 
			
			
				         -p|--pass|--password|--passphrase) 
			 | 
		
	
		
			
			| 
				187
			 | 
			
				228
			 | 
			
			
				             shift 
			 | 
		
	
		
			
			| 
				188
			 | 
			
				229
			 | 
			
			
				             CURR_PASSWORD="${1}" 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -211,6 +252,11 @@ if [ $TESTS ]; then 
			 | 
		
	
		
			
			| 
				211
			 | 
			
				252
			 | 
			
			
				     exit 0 
			 | 
		
	
		
			
			| 
				212
			 | 
			
				253
			 | 
			
			
				 fi 
			 | 
		
	
		
			
			| 
				213
			 | 
			
				254
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				255
			 | 
			
			
				+if [ $EXPORT_FILENAME ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				256
			 | 
			
			
				+    export_to_keepass $EXPORT_FILENAME 
			 | 
		
	
		
			
			| 
				
			 | 
			
				257
			 | 
			
			
				+    exit 0 
			 | 
		
	
		
			
			| 
				
			 | 
			
				258
			 | 
			
			
				+fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				259
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				214
			 | 
			
				260
			 | 
			
			
				 if [ ! $CURR_USERNAME ]; then 
			 | 
		
	
		
			
			| 
				215
			 | 
			
				261
			 | 
			
			
				     echo $'Error: No username given' 
			 | 
		
	
		
			
			| 
				216
			 | 
			
				262
			 | 
			
			
				     exit 1 
			 |