Feb 3, 2020 • Graham Higgins • projectdoc
Rather than go through the extended process of raising a PR, here’s a direct way of updating the CSV data file used by the website GUI’s conversion pages.
Locally clone the prime-gap-list-project repository, get the latest allgaps.sql file from the prime-gap-list repository and copy it into the prime-gap-list-project repository’s _data folder. Navigate to the prime-gap-list-project repository’s _data folder and copy’n’paste the appropriate one-liner to generate an updated allgaps.csv from the downloaded latest allgaps.sql. Tidy up by removing the processing detritus, commit and push the changed allgaps.csv file, then finish up by deleting the prime-gap-list-project repository.
In a suitable temporary working area, locally clone the primegap list project website repository into primegap-list-project:
git clone https://github.com/primegap-list-project/primegap-list-project.github.io.git primegap-list-project
Get the latest prime gaps list in SQL format - allgaps.sql
Either by locally cloning the prime gap list with:
git clone https://github.com/prime-gap-list
Or just download the latest allgaps.sql from:
https://github.com/primegap-list-project/prime-gap-list/raw/master/allgaps.sql
Copy allgaps.sql to primegap-list-project/_data
Being aware that sqlite3 has to have a database file to work with even though we won’t be using it, so we will label it as such (junk.db) …
Navigate to primegap-list-project/_data and copy and paste the following one-liners or the (in full) line-by-line commands:
> as prompt character):One-liner:
> sqlite3 junk.db ".read allgaps.sql" ".mode csv" ".output allgaps.csv" "select * from gaps;" ".quit"
In full:
> sqlite3 junk.db
sqlite> .read allgaps.sql
sqlite> .mode csv
sqlite> .output allgaps.csv
sqlite> select * from gaps;
sqlite> .quit
Lastly, tidy up by removing the junk.db temporary database created by sqlite3 and the no-longer-needed allgaps.sql data file:
> del junk.db allgaps.sql
$ as prompt character):One-liner:
$ sqlite3 junk.db <<<$'.read allgaps.sql\n.mode csv\n.output allgaps.csv\nselect * from gaps;\n.quit\n'
In full:
$ sqlite3 junk.db
sqlite> .read allgaps.sql
sqlite> .mode csv
sqlite> .output allgaps.csv
sqlite> select * from gaps;
sqlite> .quit
Lastly, tidy up by removing the junk.db temporary database created by sqlite3 and the no-longer-needed allgaps.sql data file:
$ rm junk.db allgaps.sql
primegap-list-project (i.e. cd .. from the above _data location)git status .Commit the changed CSV file:
git commit -m "Updated allgaps CSV file" _data/allgaps.csv
Then push the changes up to Github so that the Github repository is updated and the prime gap list project website will be automatically refreshed by Github’s own scripts:
git push
Finish up by deleting the locally cloned repository primegap-list-project and, if it was cloned, the prime-gap-list repository.
Deleting the locally cloned repositories ensures that next time you follow this process, a fresh local clone of the project repository will include any subsequent changes made and committed to the repository by other members of the group.
cd /tmp;
git clone https://github.com/primegap-list-project/primegap-list-project.github.io.git primegap-list-project
cd primegap-list-project/_data
curl -O https://github.com/primegap-list-project/prime-gap-list/raw/master/allgaps.sql
sqlite3 junk.db <<<$'.read allgaps.sql\n.mode csv\n.output allgaps.csv\nselect * from gaps;\n.quit\n'
rm junk.db allgaps.sql
cd ..
git commit -m "Updated allgaps CSV file" _data/allgaps.csv
git push
# If not using git credential helper, enter username and password at the prompt
cd ..
rm -rf primegap-list-project
To avoid having always to enter the username and password, use the git credential helper as described on Push to GitHub without entering username and password every time (Git Bash on Windows)
On Windows, (using Git SCM for Windows)
git config --global credential.helper wincred
On Linux and MacOS
git config --global credential.helper cache