Rosetta Code:Village Pump/Automated Infrastructure

From Rosetta Code
Automated Infrastructure
This is a particular discussion thread among many which consider Rosetta Code.

Summary

A list of things that should be automated on Rosetta Code

Discussion

A list of things that should be automated on Rosetta Code, and some pseudocode for describing it. It's remarkable how similar most of these are. It makes me wonder if we couldn't create a scripting language to describe it, and have a bot (or, in the future, a MW extension) manage it by reading the script. --Michael Mol 19:22, 28 February 2010 (UTC)

Okay, I've got
<lang bash>while true; do perl underbot_infrastructure; sleep 86400; done;</lang>
running in a screen session on rosettacode.org. The only problem is that it'll need to be restarted whenever the server is. —Underscore (Talk) 13:05, 16 March 2010 (UTC)

Creation of language pages

  1. Watch the changelog for the User namespace
  2. Check user namespace pages for mylang template usage.
    1. For each mylang template item, check if the language page exists.
      1. For each mylang linked language page that doesn't exist, create it, with the content {{langauge}}{{stub}}, and note the user page it was observed from in the change description.

Creation of Language User pages

  1. Enumerate the contents of Category:Programming Languages and the contents of Category:Language users.
    1. For every member of the former that doesn't have a corresponding entry in the latter, create the entry for the latter with the name of "Category:$Language User", and content of {{langgroup|$Language}}

Creation of Unimpl Pages

  1. Enumerate the contents of Category:Programming Languages and Category:Unimplemented tasks by language.
    1. For every member of the former that doesn't have a corresponding entry in the latter, create the entry for the latter with the name of "$Reports:Reports:Tasks not implemented in $Language", and content of {{unimpl_Page|$Language}}.

Creation of ENA Pages

  1. Enumerate the contents of Category:Programming Languages and Category:Category:Examples needing attention.
    1. For every member of the former that doesn't have a corresponding entry in the latter, create the entry for the latter with the name of "Category:$Language examples needing attention" and content of {{enacat_body|$Language}}.

Creation of Language Implementation Pages

  1. Enumerate the contents of Category:Programming Languages and Category:Language Implementations.
    1. For every member of the former that doesn't have a corresponding entry in the latter, create the entry for the latter with the name of "Category:$Language Implementations", and content of {{implementation cat|$Language}}