Activity co-op

From OLPC
Jump to navigation Jump to search

Developers -- When you use an activity and there's something you don't like... what do you do?

  1. Ignore it
  2. Tell the activity's dev about it
  3. File a proper bug report for it
  4. Fix it locally
  5. Make a patch for it
  6. git push

The activity co-op is for developers who, when they find something they don't like about their own system, want to immediately fix and upstream their changes.

The current incarnation of this idea is "Brian's Script", which is a structured list of some activity repositories on dev.laptop.org, and a script for making symlinks so the git repositories show up as usable activities in sugar.

This assumes a clean install with no activities.

It also assumes the activities in the repository are using relative file locations for stuff in their own/other activities and absolute file locations for things outside of their activity (not other activities).

Brian's Script: STEPS FOR SUCCESS: 1

sudo yum install git
cd ~
wget http://dev.laptop.org/~bjordan/briansscript/gitlist
wget http://dev.laptop.org/~bjordan/briansscript/briansscript.py

Brian's Script: STEPS FOR SUCESS: 2

vi briansscript.py

again, insert into this file:

#!/usr/local/bin/python
import os

siminput = open("gitlist")
infoline = siminput.readlines()
i = 0
git = []
activity = []
for record in infoline:
    if not i % 2 and not record.startswith("#"):
         git.append(record.strip("\n")) # git command
    if i % 2 and not record.startswith("#"):
         activity.append(record.strip("\n")) # activity folder path
    i += 1
print activity

for g in git:
    os.system(g)

for v in activity:
    print v
    activityinfo = open(v + "/activity/activity.info")
    infoline = activityinfo.readlines()
    for line in infoline:
        if line.startswith("name"):
            print line[7:].strip("\n") + "test"   
            os.system("ln -s ../" + v + " Activities/" + line[7:].strip("\n") + ".activity")

STEPS FOR SUCCESS: 3

mkdir Activities

Cross your fingers. This will take but two minutes.

python briansscript.py

Keep your fingers crossed. Yell at Brian. Fix it.