|  | #!/bin/sh | 
|  | set -e | 
|  | #Plan 9 source can be converted for akaros via a set of scripts. | 
|  | #This is a WIP. | 
|  | # At this point, we take it just so far and do the rest | 
|  | # by hand. Cocci has its issues, and we're not here to debug | 
|  | # and fix them all. Also, we may create some post-conversion | 
|  | # scripts as well. We'll see. | 
|  | # | 
|  | #We preserve the waserror/poperror style, which adds complications | 
|  | #but leaves the source relatively clean. | 
|  | # | 
|  | #To convert plan 9 source, we have to do several things. | 
|  | #We use spatch, the semantic patch tool. BUT, that tool can be | 
|  | #painful for some stuff, so we also use sed. And in some cases | 
|  | #we clean up things that we do with spatch with a sed pass. | 
|  | #Ugly but effective. Some scripts are idempotent, so we mark | 
|  | #them as such. | 
|  | # | 
|  | # waserror/poperror fixing, via script/spatch/waserror.cocci | 
|  | # N.B. Need r18 or later. | 
|  | spatch --sp-file scripts/spatch/waserror.cocci --in-place $1 | 
|  | # General Plan 9 fixing, via script/spatch/waserror.cocci | 
|  | spatch --sp-file scripts/spatch/plan9.cocci --in-place $1 | 
|  | spatch --sp-file scripts/spatch/scalar.cocci --in-place $1 | 
|  | spatch --sp-file scripts/spatch/typedef.cocci --in-place $1 | 
|  | spatch --sp-file scripts/spatch/locks.cocci --in-place $1 | 
|  | spatch --sp-file scripts/spatch/rendez.cocci --in-place $1 | 
|  | spatch --sp-file scripts/spatch/kproc.cocci --in-place $1 | 
|  | # include fixing. Idempotent. | 
|  | sh scripts/fixincludes $1 | 
|  | # Scalars. Idempotent. | 
|  | sh scripts/scalar $1 | 
|  | # remove pragmas. Idempotent. | 
|  | sed -i '/^#pragma/d' $1 | 
|  | # Stuff we might want to think about later. Idempotent | 
|  | sh scripts/temporary_hack $1 | 
|  | # malloc. Idempotent. | 
|  | spatch --sp-file scripts/spatch/malloc.cocci --in-place $1 | 
|  | # type names, via scripts/plan9. NOT idempotent. | 
|  | # in fact, we almost certainly don't want it. | 
|  | sh scripts/plan9 $1 | 
|  | # kref. Idempotent. | 
|  | spatch --sp-file scripts/spatch/kref.cocci --in-place $1 | 
|  |  |