Document GradleRIO predeploy task for running commands before robot program deploy and start
The following gradle-fu I learned from @ThadHouse is very useful for running commands as admin on the roboRIO before the robot program deploys and starts. We should document it. (Note that the robot program is deleted at this point.)
deploy {
...
artifacts {
frcNativeArtifact('frcCpp') {
...
predeploy << {
// Give RT capability
it.execute('setcap cap_sys_nice+eip /home/lvuser/frcUserProgram')
// Disable crond because it uses 50% CPU and there's no cronjobs to run
it.execute('/etc/init.d/crond stop')
// Disable NI web server because it leaks memory badly
it.execute('/usr/local/natinst/etc/init.d/systemWebServer stop')
// Compress old log files
it.execute('find . -type f | grep \\.csv$ | xargs -d \\n gzip -q')
}
}
Not sure where to put this and #1151. Maybe in an "Advanced Gradle Configuration" section under something.
I'm thinking of an "Advanced Gradle Configuration" section in the GradleRIO docs, not frc-docs. A few examples came into discussion on Discord yesterday. However, I didn't get @ThadHouse's thoughts about it.
There was debate in the slack chat, but it seemed that @PeterJohnson and Tyler agreed that it was user- facing. Setting C++ compiler args is common for C++ users.
The API will be changing for 2022.