File: ziptools/ziptools/docetc/1.1-upgrades/verify-1.1-permissions2.txt
########################################################################################## # Demo 1.1 permissions propagation - take 2, showing full zip/unzip outputs. # Like content and modtimes, permissions are retained for files folders, and symlinks. ########################################################################################## # Prerun: ~/Desktop$ export Z=/MY-STUFF/Code/ziptools ~/Desktop$ export M=/MY-STUFF/Code/mergeall ~/Desktop$ date Tue Mar 24 15:05:32 PDT 2020 ########################################################################################## # Zip ########################################################################################## ~/Desktop$ py3 $Z/zip-create.py testziptools/cgi UNION/cgi -skipcruft Zipping ['UNION/cgi'] to testziptools/cgi.zip Cruft patterns: {'skip': ['.*', '[dD]esktop.ini', 'Thumbs.db', '~*', '$*', '*.py[co]'], 'keep': ['.htaccess']} Adding folder UNION/cgi --Skipped cruft file UNION/cgi/.DS_Store Adding file UNION/cgi/.htaccess Adding file UNION/cgi/__prior-sitesearch-savedterms.txt Adding file UNION/cgi/_prior-sitesearch-savedterms.txt Adding folder UNION/cgi/dev --Skipped cruft file UNION/cgi/dev/.DS_Store Adding file UNION/cgi/dev/orig-sitesearch.py Adding file UNION/cgi/dev/other-sitesearch.py Adding file UNION/cgi/dev/py2-mock-out.txt Adding file UNION/cgi/dev/py3-mock-out.txt Adding file UNION/cgi/dev/sitesearch-savedterms-live.txt Adding file UNION/cgi/dev/sitesearch-savedterms.txt Adding file UNION/cgi/DIFFS-with-offline-june2017.txt Adding link ~folder UNION/cgi/DIRLINK1 Adding link ~folder UNION/cgi/DIRLINK2 Adding link ~file UNION/cgi/FILELINK1 Adding link ~file UNION/cgi/FILELINK2 Adding file UNION/cgi/HOW-INSTALL-CGI-SCRIPTS.txt Adding file UNION/cgi/HOW.txt Adding file UNION/cgi/index.html Adding folder UNION/cgi/LIVE-Aug2017 Adding file UNION/cgi/LIVE-Aug2017/sitesearch-savedterms.txt Adding folder UNION/cgi/LIVE-June2017 --Skipped cruft file UNION/cgi/LIVE-June2017/.DS_Store Adding file UNION/cgi/LIVE-June2017/gdform.cgi Adding file UNION/cgi/LIVE-June2017/gdformssl.cgi Adding file UNION/cgi/LIVE-June2017/pylotto-players.txt Adding file UNION/cgi/LIVE-June2017/pylotto.pswd Adding file UNION/cgi/LIVE-June2017/pylotto.py Adding file UNION/cgi/LIVE-June2017/pylotto24.py Adding file UNION/cgi/LIVE-June2017/sitesearch-savedterms.txt Adding file UNION/cgi/LIVE-June2017/sitesearch.html Adding file UNION/cgi/LIVE-June2017/sitesearch.py Adding file UNION/cgi/pylotto-full.py Adding file UNION/cgi/pylotto.py Adding file UNION/cgi/showcode-template.txt Adding file UNION/cgi/showcode-unicode-demo.txt Adding file UNION/cgi/showcode.py Adding file UNION/cgi/sitesearch-savedterms.txt Adding file UNION/cgi/sitesearch.py Adding file UNION/cgi/temp.html Adding file UNION/cgi/test.py Create finished: files=32, folders=4, links=4, unknowns=0, crufts=3. ########################################################################################## # Unzip without permissions propagation ########################################################################################## ~/Desktop$ py3 $Z/zip-extract.py testziptools/cgi testziptools/NOPERMS Unzipping from testziptools/cgi.zip to testziptools/NOPERMS Extracted UNION/cgi/ => testziptools/NOPERMS/UNION/cgi Extracted UNION/cgi/.htaccess => testziptools/NOPERMS/UNION/cgi/.htaccess Extracted UNION/cgi/__prior-sitesearch-savedterms.txt => testziptools/NOPERMS/UNION/cgi/__prior-sitesearch-savedterms.txt Extracted UNION/cgi/_prior-sitesearch-savedterms.txt => testziptools/NOPERMS/UNION/cgi/_prior-sitesearch-savedterms.txt Extracted UNION/cgi/dev/ => testziptools/NOPERMS/UNION/cgi/dev Extracted UNION/cgi/dev/orig-sitesearch.py => testziptools/NOPERMS/UNION/cgi/dev/orig-sitesearch.py Extracted UNION/cgi/dev/other-sitesearch.py => testziptools/NOPERMS/UNION/cgi/dev/other-sitesearch.py Extracted UNION/cgi/dev/py2-mock-out.txt => testziptools/NOPERMS/UNION/cgi/dev/py2-mock-out.txt Extracted UNION/cgi/dev/py3-mock-out.txt => testziptools/NOPERMS/UNION/cgi/dev/py3-mock-out.txt Extracted UNION/cgi/dev/sitesearch-savedterms-live.txt => testziptools/NOPERMS/UNION/cgi/dev/sitesearch-savedterms-live.txt Extracted UNION/cgi/dev/sitesearch-savedterms.txt => testziptools/NOPERMS/UNION/cgi/dev/sitesearch-savedterms.txt Extracted UNION/cgi/DIFFS-with-offline-june2017.txt => testziptools/NOPERMS/UNION/cgi/DIFFS-with-offline-june2017.txt (Link) Extracted UNION/cgi/DIRLINK1 => testziptools/NOPERMS/UNION/cgi/DIRLINK1 (Link) Extracted UNION/cgi/DIRLINK2 => testziptools/NOPERMS/UNION/cgi/DIRLINK2 (Link) Extracted UNION/cgi/FILELINK1 => testziptools/NOPERMS/UNION/cgi/FILELINK1 (Link) Extracted UNION/cgi/FILELINK2 => testziptools/NOPERMS/UNION/cgi/FILELINK2 Extracted UNION/cgi/HOW-INSTALL-CGI-SCRIPTS.txt => testziptools/NOPERMS/UNION/cgi/HOW-INSTALL-CGI-SCRIPTS.txt Extracted UNION/cgi/HOW.txt => testziptools/NOPERMS/UNION/cgi/HOW.txt Extracted UNION/cgi/index.html => testziptools/NOPERMS/UNION/cgi/index.html Extracted UNION/cgi/LIVE-Aug2017/ => testziptools/NOPERMS/UNION/cgi/LIVE-Aug2017 Extracted UNION/cgi/LIVE-Aug2017/sitesearch-savedterms.txt => testziptools/NOPERMS/UNION/cgi/LIVE-Aug2017/sitesearch-savedterms.txt Extracted UNION/cgi/LIVE-June2017/ => testziptools/NOPERMS/UNION/cgi/LIVE-June2017 Extracted UNION/cgi/LIVE-June2017/gdform.cgi => testziptools/NOPERMS/UNION/cgi/LIVE-June2017/gdform.cgi Extracted UNION/cgi/LIVE-June2017/gdformssl.cgi => testziptools/NOPERMS/UNION/cgi/LIVE-June2017/gdformssl.cgi Extracted UNION/cgi/LIVE-June2017/pylotto-players.txt => testziptools/NOPERMS/UNION/cgi/LIVE-June2017/pylotto-players.txt Extracted UNION/cgi/LIVE-June2017/pylotto.pswd => testziptools/NOPERMS/UNION/cgi/LIVE-June2017/pylotto.pswd Extracted UNION/cgi/LIVE-June2017/pylotto.py => testziptools/NOPERMS/UNION/cgi/LIVE-June2017/pylotto.py Extracted UNION/cgi/LIVE-June2017/pylotto24.py => testziptools/NOPERMS/UNION/cgi/LIVE-June2017/pylotto24.py Extracted UNION/cgi/LIVE-June2017/sitesearch-savedterms.txt => testziptools/NOPERMS/UNION/cgi/LIVE-June2017/sitesearch-savedterms.txt Extracted UNION/cgi/LIVE-June2017/sitesearch.html => testziptools/NOPERMS/UNION/cgi/LIVE-June2017/sitesearch.html Extracted UNION/cgi/LIVE-June2017/sitesearch.py => testziptools/NOPERMS/UNION/cgi/LIVE-June2017/sitesearch.py Extracted UNION/cgi/pylotto-full.py => testziptools/NOPERMS/UNION/cgi/pylotto-full.py Extracted UNION/cgi/pylotto.py => testziptools/NOPERMS/UNION/cgi/pylotto.py Extracted UNION/cgi/showcode-template.txt => testziptools/NOPERMS/UNION/cgi/showcode-template.txt Extracted UNION/cgi/showcode-unicode-demo.txt => testziptools/NOPERMS/UNION/cgi/showcode-unicode-demo.txt Extracted UNION/cgi/showcode.py => testziptools/NOPERMS/UNION/cgi/showcode.py Extracted UNION/cgi/sitesearch-savedterms.txt => testziptools/NOPERMS/UNION/cgi/sitesearch-savedterms.txt Extracted UNION/cgi/sitesearch.py => testziptools/NOPERMS/UNION/cgi/sitesearch.py Extracted UNION/cgi/temp.html => testziptools/NOPERMS/UNION/cgi/temp.html Extracted UNION/cgi/test.py => testziptools/NOPERMS/UNION/cgi/test.py Extract finished: files=32, folders=4, links=4, unknowns=0. ########################################################################################## # Unzip with permissions propagation ########################################################################################## ~/Desktop$ py3 $Z/zip-extract.py testziptools/cgi testziptools/PERMS -permissions Unzipping from testziptools/cgi.zip to testziptools/PERMS Extracted UNION/cgi/ => testziptools/PERMS/UNION/cgi Extracted UNION/cgi/.htaccess => testziptools/PERMS/UNION/cgi/.htaccess Extracted UNION/cgi/__prior-sitesearch-savedterms.txt => testziptools/PERMS/UNION/cgi/__prior-sitesearch-savedterms.txt Extracted UNION/cgi/_prior-sitesearch-savedterms.txt => testziptools/PERMS/UNION/cgi/_prior-sitesearch-savedterms.txt Extracted UNION/cgi/dev/ => testziptools/PERMS/UNION/cgi/dev Extracted UNION/cgi/dev/orig-sitesearch.py => testziptools/PERMS/UNION/cgi/dev/orig-sitesearch.py Extracted UNION/cgi/dev/other-sitesearch.py => testziptools/PERMS/UNION/cgi/dev/other-sitesearch.py Extracted UNION/cgi/dev/py2-mock-out.txt => testziptools/PERMS/UNION/cgi/dev/py2-mock-out.txt Extracted UNION/cgi/dev/py3-mock-out.txt => testziptools/PERMS/UNION/cgi/dev/py3-mock-out.txt Extracted UNION/cgi/dev/sitesearch-savedterms-live.txt => testziptools/PERMS/UNION/cgi/dev/sitesearch-savedterms-live.txt Extracted UNION/cgi/dev/sitesearch-savedterms.txt => testziptools/PERMS/UNION/cgi/dev/sitesearch-savedterms.txt Extracted UNION/cgi/DIFFS-with-offline-june2017.txt => testziptools/PERMS/UNION/cgi/DIFFS-with-offline-june2017.txt (Link) Extracted UNION/cgi/DIRLINK1 => testziptools/PERMS/UNION/cgi/DIRLINK1 (Link) Extracted UNION/cgi/DIRLINK2 => testziptools/PERMS/UNION/cgi/DIRLINK2 (Link) Extracted UNION/cgi/FILELINK1 => testziptools/PERMS/UNION/cgi/FILELINK1 (Link) Extracted UNION/cgi/FILELINK2 => testziptools/PERMS/UNION/cgi/FILELINK2 Extracted UNION/cgi/HOW-INSTALL-CGI-SCRIPTS.txt => testziptools/PERMS/UNION/cgi/HOW-INSTALL-CGI-SCRIPTS.txt Extracted UNION/cgi/HOW.txt => testziptools/PERMS/UNION/cgi/HOW.txt Extracted UNION/cgi/index.html => testziptools/PERMS/UNION/cgi/index.html Extracted UNION/cgi/LIVE-Aug2017/ => testziptools/PERMS/UNION/cgi/LIVE-Aug2017 Extracted UNION/cgi/LIVE-Aug2017/sitesearch-savedterms.txt => testziptools/PERMS/UNION/cgi/LIVE-Aug2017/sitesearch-savedterms.txt Extracted UNION/cgi/LIVE-June2017/ => testziptools/PERMS/UNION/cgi/LIVE-June2017 Extracted UNION/cgi/LIVE-June2017/gdform.cgi => testziptools/PERMS/UNION/cgi/LIVE-June2017/gdform.cgi Extracted UNION/cgi/LIVE-June2017/gdformssl.cgi => testziptools/PERMS/UNION/cgi/LIVE-June2017/gdformssl.cgi Extracted UNION/cgi/LIVE-June2017/pylotto-players.txt => testziptools/PERMS/UNION/cgi/LIVE-June2017/pylotto-players.txt Extracted UNION/cgi/LIVE-June2017/pylotto.pswd => testziptools/PERMS/UNION/cgi/LIVE-June2017/pylotto.pswd Extracted UNION/cgi/LIVE-June2017/pylotto.py => testziptools/PERMS/UNION/cgi/LIVE-June2017/pylotto.py Extracted UNION/cgi/LIVE-June2017/pylotto24.py => testziptools/PERMS/UNION/cgi/LIVE-June2017/pylotto24.py Extracted UNION/cgi/LIVE-June2017/sitesearch-savedterms.txt => testziptools/PERMS/UNION/cgi/LIVE-June2017/sitesearch-savedterms.txt Extracted UNION/cgi/LIVE-June2017/sitesearch.html => testziptools/PERMS/UNION/cgi/LIVE-June2017/sitesearch.html Extracted UNION/cgi/LIVE-June2017/sitesearch.py => testziptools/PERMS/UNION/cgi/LIVE-June2017/sitesearch.py Extracted UNION/cgi/pylotto-full.py => testziptools/PERMS/UNION/cgi/pylotto-full.py Extracted UNION/cgi/pylotto.py => testziptools/PERMS/UNION/cgi/pylotto.py Extracted UNION/cgi/showcode-template.txt => testziptools/PERMS/UNION/cgi/showcode-template.txt Extracted UNION/cgi/showcode-unicode-demo.txt => testziptools/PERMS/UNION/cgi/showcode-unicode-demo.txt Extracted UNION/cgi/showcode.py => testziptools/PERMS/UNION/cgi/showcode.py Extracted UNION/cgi/sitesearch-savedterms.txt => testziptools/PERMS/UNION/cgi/sitesearch-savedterms.txt Extracted UNION/cgi/sitesearch.py => testziptools/PERMS/UNION/cgi/sitesearch.py Extracted UNION/cgi/temp.html => testziptools/PERMS/UNION/cgi/temp.html Extracted UNION/cgi/test.py => testziptools/PERMS/UNION/cgi/test.py Extract finished: files=32, folders=4, links=4, unknowns=0. ########################################################################################## # Compare original ~ unzip without permissions ~ unzip with permissions (same as prior) ########################################################################################## ~/Desktop$ ls -l UNION/cgi total 328 -rw-r--r-- 1 blue staff 1219 Jun 13 2017 DIFFS-with-offline-june2017.txt lrwxr-xr-x 1 blue staff 12 Mar 21 13:37 DIRLINK1 -> LIVE-Aug2017 lrwxr-xr-x 1 blue staff 13 Mar 21 13:38 DIRLINK2 -> LIVE-Aug2017/ lrw------- 1 blue staff 11 Mar 21 13:36 FILELINK1 -> showcode.py lrwxr-xr-x 1 blue staff 25 Mar 21 13:37 FILELINK2 -> sitesearch-savedterms.txt -rw-r--r-- 1 blue staff 1768 Jun 29 2019 HOW-INSTALL-CGI-SCRIPTS.txt -rwxrwxrwx 1 blue staff 1042 Apr 14 2018 HOW.txt drwx------ 3 blue staff 102 Aug 6 2017 LIVE-Aug2017 drwxr-xr-x 12 blue staff 408 Jun 13 2017 LIVE-June2017 -rw-r--r-- 1 blue staff 6315 Feb 17 2018 __prior-sitesearch-savedterms.txt -rw-r--r-- 1 blue staff 5205 Jul 30 2017 _prior-sitesearch-savedterms.txt drwxrwxrwx 9 blue staff 306 Jun 13 2017 dev -rw-r--r-- 1 blue staff 2584 Feb 23 14:55 index.html -rwxr-xr-x 1 blue staff 20729 Feb 18 2014 pylotto-full.py -rwxr-xr-x 1 blue staff 151 Jun 13 2017 pylotto.py -rwxrwxrwx 1 blue staff 3035 Jul 19 2019 showcode-template.txt -rw-r--r-- 1 blue staff 72 Feb 23 2018 showcode-unicode-demo.txt -rw------- 1 blue staff 26250 Aug 19 2019 showcode.py -rw------- 1 blue staff 13948 Jun 30 2019 sitesearch-savedterms.txt -rwxr-xr-x 1 blue staff 14054 Jun 29 2019 sitesearch.py -rw-r--r-- 1 blue staff 15372 Feb 23 14:55 temp.html -rwxr-xr-x 1 blue staff 78 Apr 14 2018 test.py ~/Desktop$ ls -l testziptools/PERMS/UNION/cgi total 328 -rw-r--r-- 1 blue staff 1219 Jun 13 2017 DIFFS-with-offline-june2017.txt lrwxr-xr-x 1 blue staff 12 Mar 21 13:37 DIRLINK1 -> LIVE-Aug2017 lrwxr-xr-x 1 blue staff 13 Mar 21 13:38 DIRLINK2 -> LIVE-Aug2017/ lrw------- 1 blue staff 11 Mar 21 13:36 FILELINK1 -> showcode.py lrwxr-xr-x 1 blue staff 25 Mar 21 13:37 FILELINK2 -> sitesearch-savedterms.txt -rw-r--r-- 1 blue staff 1768 Jun 29 2019 HOW-INSTALL-CGI-SCRIPTS.txt -rwxrwxrwx 1 blue staff 1042 Apr 14 2018 HOW.txt drwx------ 3 blue staff 102 Aug 6 2017 LIVE-Aug2017 drwxr-xr-x 11 blue staff 374 Jun 13 2017 LIVE-June2017 -rw-r--r-- 1 blue staff 6315 Feb 17 2018 __prior-sitesearch-savedterms.txt -rw-r--r-- 1 blue staff 5205 Jul 30 2017 _prior-sitesearch-savedterms.txt drwxrwxrwx 8 blue staff 272 Jun 13 2017 dev -rw-r--r-- 1 blue staff 2584 Feb 23 14:55 index.html -rwxr-xr-x 1 blue staff 20729 Feb 18 2014 pylotto-full.py -rwxr-xr-x 1 blue staff 151 Jun 13 2017 pylotto.py -rwxrwxrwx 1 blue staff 3035 Jul 19 2019 showcode-template.txt -rw-r--r-- 1 blue staff 72 Feb 23 2018 showcode-unicode-demo.txt -rw------- 1 blue staff 26250 Aug 19 2019 showcode.py -rw------- 1 blue staff 13948 Jun 30 2019 sitesearch-savedterms.txt -rwxr-xr-x 1 blue staff 14054 Jun 29 2019 sitesearch.py -rw-r--r-- 1 blue staff 15372 Feb 23 14:55 temp.html -rwxr-xr-x 1 blue staff 78 Apr 14 2018 test.py ~/Desktop$ ls -l testziptools/NOPERMS/UNION/cgi total 328 -rw-r--r-- 1 blue staff 1219 Jun 13 2017 DIFFS-with-offline-june2017.txt lrwxr-xr-x 1 blue staff 12 Mar 21 13:37 DIRLINK1 -> LIVE-Aug2017 lrwxr-xr-x 1 blue staff 13 Mar 21 13:38 DIRLINK2 -> LIVE-Aug2017/ lrwxr-xr-x 1 blue staff 11 Mar 21 13:36 FILELINK1 -> showcode.py lrwxr-xr-x 1 blue staff 25 Mar 21 13:37 FILELINK2 -> sitesearch-savedterms.txt -rw-r--r-- 1 blue staff 1768 Jun 29 2019 HOW-INSTALL-CGI-SCRIPTS.txt -rw-r--r-- 1 blue staff 1042 Apr 14 2018 HOW.txt drwxr-xr-x 3 blue staff 102 Aug 6 2017 LIVE-Aug2017 drwxr-xr-x 11 blue staff 374 Jun 13 2017 LIVE-June2017 -rw-r--r-- 1 blue staff 6315 Feb 17 2018 __prior-sitesearch-savedterms.txt -rw-r--r-- 1 blue staff 5205 Jul 30 2017 _prior-sitesearch-savedterms.txt drwxr-xr-x 8 blue staff 272 Jun 13 2017 dev -rw-r--r-- 1 blue staff 2584 Feb 23 14:55 index.html -rw-r--r-- 1 blue staff 20729 Feb 18 2014 pylotto-full.py -rw-r--r-- 1 blue staff 151 Jun 13 2017 pylotto.py -rw-r--r-- 1 blue staff 3035 Jul 19 2019 showcode-template.txt -rw-r--r-- 1 blue staff 72 Feb 23 2018 showcode-unicode-demo.txt -rw-r--r-- 1 blue staff 26250 Aug 19 2019 showcode.py -rw-r--r-- 1 blue staff 13948 Jun 30 2019 sitesearch-savedterms.txt -rw-r--r-- 1 blue staff 14054 Jun 29 2019 sitesearch.py -rw-r--r-- 1 blue staff 15372 Feb 23 14:55 temp.html -rw-r--r-- 1 blue staff 78 Apr 14 2018 test.py ########################################################################################## # Verify content and modtimes propagated too ########################################################################################## ~/Desktop$ py3 $M/diffall.py UNION/cgi testziptools/PERMS/UNION/cgi -skipcruft | tail -n 6 ================================================================================ Runtime hrs:mins:secs = 0:0:0.02 Dirs checked 4, Files checked: 36, Files skipped: 0 System metadata (cruft) files were skipped No diffs found. End of report. ~/Desktop$ py3 $M/diffall.py UNION/cgi testziptools/NOPERMS/UNION/cgi -skipcruft | tail -n 6 ================================================================================ Runtime hrs:mins:secs = 0:0:0.01 Dirs checked 4, Files checked: 36, Files skipped: 0 System metadata (cruft) files were skipped No diffs found. End of report. ~/Desktop$ py3 $M/mergeall.py UNION/cgi testziptools/PERMS/UNION/cgi -report -skipcruft | tail -n 9 ------------------------------------------------------------------------------- *Summary Compared => files: 32, folders: 4 Differences => samefile: 0, uniqueto: 0, uniquefrom: 0, mixedmode: 0 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished. ~/Desktop$ py3 $M/mergeall.py UNION/cgi testziptools/NOPERMS/UNION/cgi -report -skipcruft | tail -n 9 ------------------------------------------------------------------------------- *Summary Compared => files: 32, folders: 4 Differences => samefile: 0, uniqueto: 0, uniquefrom: 0, mixedmode: 0 Changed: files => created: 0, deleted: 0, replaced: 0 folders => created: 0, deleted: 0, replaced: 0 ------------------------------------------------------------------------------- Finished.