1. Programming problem.
Without using the system() function to call any bash commands, prepare a python program that will implement a simple version of the diff command. This command will look at the contents of two directories and report on the differences between them. This includes those files that are only in one directory or the other, as well as files that have the same name, but have different characteristics as defined below. The format of this command will be: diff [-R] [-c value] directory1 directory2
The options are as follows:
• -c value, determines what level of difference should be reported between two files. If not specified, the default is to say that two files are the same if they have the same name and are not different types (file vs. directory). If the option is specified with a value of 1, then two files are only considered the same if they also have the same size. If the option is specified with a value of 2, then two files are only considered the same if they have the same size and the same exact contents.
• -R, when present the contents of subdirectories with common names in each directory should also be analysed in a recursive manner.
The report generated by the program should include three lists of files for every pair of directories (or subdirectories in the recursive case). The first list contains those files only in directory1. The second list contains those files only in directory2. The third list contains those files that have the same name in each directory, but are considered different based on the -c option value. These lists should be sorted alphabetically.
If a bad option is given to the command an error message should be displayed (including a bad value to the -c option). If anything other than two directories are specified on the command line, an error message should be displayed.