...
Let’s change one of these settings. Note that ‘revision‘release_date’ is wrong. It’s set to the date the scan was run, not the release date for the project. By looking at the timestamp on the source directory unpacked from the .tar.gz file we unpacked, we know that the release date was actually Nov 15, 2018.
...
Getting this right for each system will be useful later when we want to show trends across the project in the CodeMRI web interface. Note: If you are using the web interface, run the ‘export_web_data’ job after setting all the revisionrelease_date fields properly
...
Let’s make the change:
Code Block |
---|
system config set revisionrelease_date '2018-11-15 12:00:00' system config get revisionrelease_date |
...
We can also do this without ‘selecting’ a single system (or multiple systems) to operate on and instead use the --selection flag for the command to do so:
Code Block |
---|
system config get revisionrelease_date --selection Axis2/Axis2-1.7.8 |
...
Modifying settings in bulk -
...
‘release_date’ example
Let’s make the dates correct for all the Axis2 systems in the Data Vault. Note that the directories have UNIX timestamps indicating the release date for each version. In this example, we’ll parse these dates and use them for inputs into CodeMRI.
...
Let’s rerun the ‘ls’ command to get the exact style we entered into CodeMRI previously for the ‘revision‘release_date’ setting:
Code Block |
---|
ls -ld --time-style="+%Y-%m-%d %H:%M:%S" /home/dan/Documents/test_sourcecode/Axis2/* |
...
Code Block |
---|
PROJECT=Axis2 PROJECT_SRC_LOCATION="/home/dan/Documents/test_sourcecode/Axis2" BASENAME_START='axis-axis2-java-core-' PROJECT_SRC_DIRS=$(ls -d ${PROJECT_SRC_LOCATION}/${BASENAME_START}*) PROJECT=Apache_HTTPd PROJECT_SRC_LOCATION="/home/dan/Documents/test_sourcecode/Apache_HTTPd" BASENAME_START='apache_' PROJECT_SRC_DIRS=$(ls -d ${PROJECT_SRC_LOCATION}/${BASENAME_START}*) # To show and debug logic while read sourcedir; do echo ${PROJECT} ; basedir=$(basename ${sourcedir}) ; echo $basedir ; version=$(echo $basedir | sed "s/${BASENAME_START}//") ; echo $version ; ls_string=$(ls -ld --time-style="+%Y-%m-%d %H:%M:%S" $sourcedir) ; echo $ls_string ; date_string=$(echo ${ls_string} | tr -s ' ' | cut -d' ' -f6-7) ; echo $date_string ; done <<<"$PROJECT_SRC_DIRS" # To generate commands we want to run to set 'revisionrelease_date' for all of Axis2 while read sourcedir; do basedir=$(basename ${sourcedir}) ; version=$(echo $basedir | sed "s/${BASENAME_START}//") ; ls_string=$(ls -ld --time-style="+%Y-%m-%d %H:%M:%S" $sourcedir) ; date_string=$(echo ${ls_string} | tr -s ' ' | cut -d' ' -f6-7) ; system_name=${PROJECT}/${PROJECT}-${version} ; echo system config set revisionrelease_date \'${date_string}\' --selection ${system_name} ; done <<<"$PROJECT_SRC_DIRS" |
...
Code Block |
---|
system config get revisionrelease_date --selection Axis2/* |
...
Note that the same thing can be done to set revisionrelease_date for Apache_HTTPd because the .tar.gz files unzip with valid release dates for that project as well. For early versions of Linux, this doesn’t work. Instead you will have to get dates by looking at the download sites.
...
Code Block |
---|
PROJECT=Linux_Kernel PROJECT_SRC_LOCATION="/home/dan/Documents/test_sourcecode/Linux_Kernel" BASENAME_START='linux-' PROJECT_SRC_DIRS=$(ls -d ${PROJECT_SRC_LOCATION}/${BASENAME_START}*) # I manually created this file by copying linux-<ver>.tar.gz lines from the websites above. REV_DATE_FILE=${PROJECT_SRC_LOCATION}/Linux_download_site_releaes_dates while read rel_date_line; do version=$(echo $rel_date_line | sed s/linux-// | sed s/\.tar\.gz.*//) ; rev_date=$(echo $rel_date_line | tr -s ' ' | cut -d' ' -f2-3) ; system_name=${PROJECT}/${PROJECT}-${version} ; echo cmri system config set revisionrelease_date \'${rev_date}\' --selection ${system_name} ; done <"$REV_DATE_FILE" |
Here are some commands you could use to set revisionrelease_date for the Linux systems without going through the process above
Code Block |
---|
cmri system config set revisionrelease_date '06-Apr-1998 05:10' --selection Linux_Kernel/Linux_Kernel-0.99.11 cmri system config set revisionrelease_date '06-Apr-1998 05:11' --selection Linux_Kernel/Linux_Kernel-0.99.12 cmri system config set revisionrelease_date '06-Apr-1998 05:11' --selection Linux_Kernel/Linux_Kernel-0.99.13 cmri system config set revisionrelease_date '06-Apr-1998 05:11' --selection Linux_Kernel/Linux_Kernel-0.99.15 cmri system config set revisionrelease_date '04-Dec-1994 00:00' --selection Linux_Kernel/Linux_Kernel-0.11 cmri system config set revisionrelease_date '04-Dec-1994 00:00' --selection Linux_Kernel/Linux_Kernel-0.12 cmri system config set revisionrelease_date '08-Mar-1992 00:00' --selection Linux_Kernel/Linux_Kernel-0.95 cmri system config set revisionrelease_date '24-Mar-1992 00:00' --selection Linux_Kernel/Linux_Kernel-0.95a cmri system config set revisionrelease_date '15-Jan-1993 00:00' --selection Linux_Kernel/Linux_Kernel-0.96a cmri system config set revisionrelease_date '15-Jul-1992 00:00' --selection Linux_Kernel/Linux_Kernel-0.96b cmri system config set revisionrelease_date '19-Jul-1992 00:00' --selection Linux_Kernel/Linux_Kernel-0.96c cmri system config set revisionrelease_date '23-May-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.13 cmri system config set revisionrelease_date '27-Jun-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.23 cmri system config set revisionrelease_date '14-Jul-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.29 cmri system config set revisionrelease_date '21-Jul-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.33 cmri system config set revisionrelease_date '24-Jul-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.35 cmri system config set revisionrelease_date '15-Aug-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.45 cmri system config set revisionrelease_date '06-Oct-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.52 cmri system config set revisionrelease_date '28-Oct-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.59 cmri system config set revisionrelease_date '14-Nov-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.63 cmri system config set revisionrelease_date '15-Nov-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.64 cmri system config set revisionrelease_date '28-Nov-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.67 cmri system config set revisionrelease_date '02-Dec-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.70 cmri system config set revisionrelease_date '05-Dec-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.71 cmri system config set revisionrelease_date '15-Dec-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.73 cmri system config set revisionrelease_date '23-Dec-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.74 cmri system config set revisionrelease_date '29-Dec-1994 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.75 cmri system config set revisionrelease_date '02-Jan-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.76 cmri system config set revisionrelease_date '09-Jan-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.78 cmri system config set revisionrelease_date '11-Jan-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.79 cmri system config set revisionrelease_date '12-Jan-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.80 cmri system config set revisionrelease_date '13-Jan-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.81 cmri system config set revisionrelease_date '16-Jan-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.82 cmri system config set revisionrelease_date '18-Jan-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.83 cmri system config set revisionrelease_date '22-Jan-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.84 cmri system config set revisionrelease_date '23-Jan-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.85 cmri system config set revisionrelease_date '27-Jan-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.86 cmri system config set revisionrelease_date '30-Jan-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.87 cmri system config set revisionrelease_date '31-Jan-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.88 cmri system config set revisionrelease_date '05-Feb-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.89 cmri system config set revisionrelease_date '08-Feb-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.90 cmri system config set revisionrelease_date '12-Feb-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.91 cmri system config set revisionrelease_date '15-Feb-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.92 cmri system config set revisionrelease_date '20-Feb-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.93 cmri system config set revisionrelease_date '22-Feb-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.94 cmri system config set revisionrelease_date '02-Mar-1995 00:00' --selection Linux_Kernel/Linux_Kernel-1.1.95 |
...
Note: If you are using the CodeMRI web server, run the ‘export_web_data’ job after setting all the revisionrelease_date fields properly to update the views