mirror of https://github.com/rusefi/KiCad-Diff.git
121 lines
2.7 KiB
Plaintext
121 lines
2.7 KiB
Plaintext
|
# -*-tcl-*-
|
||
|
|
||
|
# -- Aliases:
|
||
|
|
||
|
alias . changes
|
||
|
alias d diff
|
||
|
alias , ui
|
||
|
alias log timeline
|
||
|
alias heads leaves; # for hg refugees
|
||
|
alias log timeline
|
||
|
alias history {timeline -n 100}
|
||
|
alias live {set autosync on}
|
||
|
alias local {set autosync off}
|
||
|
|
||
|
|
||
|
# -- Filters:
|
||
|
|
||
|
filter status {changes status timeline add rm addremove} {
|
||
|
lassign [split [string trim $line]] status
|
||
|
switch $status {
|
||
|
MERGED_WITH { coloured purple $line }
|
||
|
ADDED { coloured green $line }
|
||
|
EDITED { coloured cyan $line }
|
||
|
DELETED { coloured red $line }
|
||
|
default { set line }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
filter log_entry {leaves tim:timeline} {
|
||
|
if {[regexp "^=== .* ===" $line]} {
|
||
|
coloured blue $line
|
||
|
} else {
|
||
|
regsub -all {\[[A-Fa-f0-9]+\]} $line [coloured yellow &]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
# Filter on alias `d' instead of `diff' so that output can be
|
||
|
# redirected to create patch files.
|
||
|
filter diff {d} {
|
||
|
switch -regexp $line {
|
||
|
{^-} { coloured red $line }
|
||
|
{^\+} { coloured green $line }
|
||
|
{^@@} { coloured yellow $line }
|
||
|
default { set line }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
filter branch {br:branch} {
|
||
|
switch -regexp $line {
|
||
|
{^\*} { coloured yellow $line }
|
||
|
default { set line }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# fsl purge
|
||
|
# Purge all files flagged as "MISSING".
|
||
|
alias capture_changes changes
|
||
|
|
||
|
filter captured_changes {capture_changes} {
|
||
|
variable captured
|
||
|
lappend captured $line
|
||
|
return {}
|
||
|
}
|
||
|
|
||
|
interceptor cr:create {
|
||
|
global tcl_platform
|
||
|
|
||
|
set repodir [file join [file normalize ~] Repositories]
|
||
|
set reponame [file join $repodir [file tail [pwd].fossil]]
|
||
|
set skeleton [file join $repodir skeleton.fossil]
|
||
|
|
||
|
set user $tcl_platform(user)
|
||
|
set password [lindex $params 1]
|
||
|
|
||
|
fossil new $reponame --template $skeleton
|
||
|
fossil open $reponame
|
||
|
|
||
|
if {$password != ""} {
|
||
|
fossil user password $user $password
|
||
|
}
|
||
|
|
||
|
fossil branch new development trunk
|
||
|
fossil update development
|
||
|
|
||
|
return {}
|
||
|
}
|
||
|
|
||
|
interceptor purge {
|
||
|
variable captured {}
|
||
|
fossil capture_changes
|
||
|
foreach line $captured {
|
||
|
if [string match MISSING* $line] {
|
||
|
regsub ^MISSING $line {} file
|
||
|
fossil rm [string trim $file]
|
||
|
}
|
||
|
}
|
||
|
return {}
|
||
|
}
|
||
|
proc fixKicadDates {} {
|
||
|
set fix_pro_cmd [string trim {
|
||
|
sh -c {find . -name "*.pro" -print0 | xargs -0 gsed -E -i.bkp 's/update=.*/update=Date/'}
|
||
|
}]
|
||
|
set fix_sch_cmd [string trim {
|
||
|
sh -c {find . -name "*.sch" -print0 | xargs -0 gsed -E -i 's/#(PWR|FLG)[0-9]+/#\1?/'}
|
||
|
}]
|
||
|
|
||
|
exec {*}$fix_pro_cmd
|
||
|
exec {*}$fix_sch_cmd
|
||
|
}
|
||
|
|
||
|
interceptor kici {
|
||
|
switch [catch fixKicadDates err] {
|
||
|
0 { fossil commit {*}[lrange $params 1 end] }
|
||
|
1 { puts stderr $err }
|
||
|
}
|
||
|
return {}
|
||
|
}
|