190f5ba538bf40bcf4fd41049c7bf4296d3ffc9c7Benjamin Peterson#! /usr/bin/env python3
25378d5c485f8204630ac0e7db3276d3a852b4317Guido van Rossum
35378d5c485f8204630ac0e7db3276d3a852b4317Guido van Rossum# Copy one file's atime and mtime to another
45378d5c485f8204630ac0e7db3276d3a852b4317Guido van Rossum
55378d5c485f8204630ac0e7db3276d3a852b4317Guido van Rossumimport sys
69a6757dadeab6077f26f3bdfda17585780468121Guido van Rossumimport os
75378d5c485f8204630ac0e7db3276d3a852b4317Guido van Rossumfrom stat import ST_ATIME, ST_MTIME # Really constants 7 and 8
85378d5c485f8204630ac0e7db3276d3a852b4317Guido van Rossum
95378d5c485f8204630ac0e7db3276d3a852b4317Guido van Rossumdef main():
108efadf5d6613e76dfc5476f58adb9a2135173129Georg Brandl    if len(sys.argv) != 3:
1170c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7Tim Peters        sys.stderr.write('usage: copytime source destination\n')
1270c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7Tim Peters        sys.exit(2)
1370c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7Tim Peters    file1, file2 = sys.argv[1], sys.argv[2]
1470c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7Tim Peters    try:
1570c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7Tim Peters        stat1 = os.stat(file1)
168b33dd8e547790af86e9fc85ea6c315ead276b6eAndrew Svetlov    except OSError:
1770c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7Tim Peters        sys.stderr.write(file1 + ': cannot stat\n')
1870c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7Tim Peters        sys.exit(1)
1970c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7Tim Peters    try:
2070c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7Tim Peters        os.utime(file2, (stat1[ST_ATIME], stat1[ST_MTIME]))
218b33dd8e547790af86e9fc85ea6c315ead276b6eAndrew Svetlov    except OSError:
2270c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7Tim Peters        sys.stderr.write(file2 + ': cannot change time\n')
2370c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7Tim Peters        sys.exit(2)
245378d5c485f8204630ac0e7db3276d3a852b4317Guido van Rossum
25e236b38731823aeb87bb6d101062f54a72044954Andrew M. Kuchlingif __name__ == '__main__':
26e236b38731823aeb87bb6d101062f54a72044954Andrew M. Kuchling    main()
27