mirror of
https://github.com/sbrow/ps.git
synced 2025-12-29 18:47:38 -05:00
Minor Improvements
* Made Refresh() more robust - when an error is encountered, the layer(set) is reloaded automatically. * JS errors are now output to console instead of alerts.
This commit is contained in:
20
ps.go
20
ps.go
@@ -73,10 +73,10 @@ func SaveAs(path string) error {
|
||||
func DoJs(path string, args ...string) (out []byte, err error) {
|
||||
// Temp file for js to output to.
|
||||
outpath := filepath.Join(os.Getenv("TEMP"), "js_out.txt")
|
||||
defer os.Remove(outpath)
|
||||
if !strings.HasSuffix(path, ".jsx") {
|
||||
path += ".jsx"
|
||||
}
|
||||
defer os.Remove(outpath)
|
||||
|
||||
args = append([]string{outpath}, args...)
|
||||
|
||||
@@ -87,14 +87,12 @@ func DoJs(path string, args ...string) (out []byte, err error) {
|
||||
|
||||
args = append([]string{path}, args...)
|
||||
cmd, err := run("dojs", args...)
|
||||
if err != nil {
|
||||
return []byte{}, err
|
||||
if err == nil {
|
||||
file, err := ioutil.ReadFile(outpath)
|
||||
if err == nil {
|
||||
cmd = append(cmd, file...)
|
||||
}
|
||||
}
|
||||
file, err := ioutil.ReadFile(outpath)
|
||||
if err != nil {
|
||||
return cmd, err
|
||||
}
|
||||
cmd = append(cmd, file...)
|
||||
return cmd, err
|
||||
}
|
||||
|
||||
@@ -138,11 +136,7 @@ func run(name string, args ...string) ([]byte, error) {
|
||||
cmd.Stdout = &out
|
||||
cmd.Stderr = &errs
|
||||
err := cmd.Run()
|
||||
if err != nil {
|
||||
return out.Bytes(), err
|
||||
// return append(out.Bytes(), errs.Bytes()...), err
|
||||
}
|
||||
if len(errs.Bytes()) != 0 {
|
||||
if err != nil || len(errs.Bytes()) != 0 {
|
||||
return out.Bytes(), errors.New(string(errs.Bytes()))
|
||||
}
|
||||
return out.Bytes(), nil
|
||||
|
||||
12
scripts/PsIsOpen.vbs
Normal file
12
scripts/PsIsOpen.vbs
Normal file
@@ -0,0 +1,12 @@
|
||||
Function IsProcessRunning( strComputer, strProcess )
|
||||
Dim Process, strObject
|
||||
IsProcessRunning = False
|
||||
strObject = "winmgmts://" & strComputer
|
||||
For Each Process in GetObject( strObject ).InstancesOf( "win32_process" )
|
||||
If UCase( Process.name ) = UCase( strProcess ) Then
|
||||
IsProcessRunning = True
|
||||
Exit Function
|
||||
End If
|
||||
Next
|
||||
End Function
|
||||
wScript.Echo IsProcessRunning(".", "Photoshop.exe")
|
||||
@@ -6,5 +6,8 @@ if wScript.Arguments.Count = 0 then
|
||||
else
|
||||
path = wScript.Arguments(0)
|
||||
args = wScript.Arguments(1)
|
||||
appRef.DoJavaScriptFile path, Split(args, ",")
|
||||
error = appRef.DoJavaScriptFile(path, Split(args, ","))
|
||||
if Not error = "true" Then
|
||||
Err.raise 1, "dojs.vbs", error
|
||||
end if
|
||||
end if
|
||||
@@ -1,5 +1,5 @@
|
||||
#include lib.js
|
||||
|
||||
app.displayDialogs=DialogModes.NO
|
||||
var stdout = newFile(arguments[0]);
|
||||
var lyr = eval(arguments[1]);
|
||||
stdout.write(('{"Name":"' + lyr.name + '","Bounds":[[' + lyr.bounds[0] + ',' +
|
||||
|
||||
39
structs.go
39
structs.go
@@ -411,10 +411,10 @@ func (a *ArtLayer) SetPos(x, y int, bound string) {
|
||||
a.bounds = lyr.bounds
|
||||
}
|
||||
|
||||
func (a *ArtLayer) Refresh() {
|
||||
func (a *ArtLayer) Refresh() error {
|
||||
tmp, err := Layer(a.Path())
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
return err
|
||||
}
|
||||
tmp.SetParent(a.Parent())
|
||||
a.name = tmp.name
|
||||
@@ -423,6 +423,7 @@ func (a *ArtLayer) Refresh() {
|
||||
a.parent = tmp.Parent()
|
||||
a.visible = tmp.visible
|
||||
a.current = true
|
||||
return nil
|
||||
}
|
||||
|
||||
type LayerSet struct {
|
||||
@@ -487,28 +488,20 @@ func (l *LayerSet) ArtLayer(name string) *ArtLayer {
|
||||
for _, lyr := range l.artLayers {
|
||||
if lyr.name == name {
|
||||
if Mode == 0 && !lyr.current {
|
||||
lyr.Refresh()
|
||||
/*
|
||||
byt, err := DoJs("getLayer.jsx", JSLayer(lyr.Path()))
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
var lyr2 *ArtLayer
|
||||
err = json.Unmarshal(byt, &lyr2)
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
lyr.name = lyr2.name
|
||||
lyr.bounds = lyr2.bounds
|
||||
lyr.visible = lyr2.visible
|
||||
lyr.current = true
|
||||
lyr.Text = lyr2.Text
|
||||
*/
|
||||
err := lyr.Refresh()
|
||||
if err != nil {
|
||||
l.Refresh()
|
||||
}
|
||||
}
|
||||
return lyr
|
||||
}
|
||||
}
|
||||
return nil
|
||||
l.Refresh()
|
||||
for _, lyr := range l.artLayers {
|
||||
fmt.Println(lyr)
|
||||
}
|
||||
lyr := l.ArtLayer(name)
|
||||
return lyr
|
||||
}
|
||||
|
||||
func (l *LayerSet) LayerSets() []*LayerSet {
|
||||
@@ -589,7 +582,11 @@ func (l *LayerSet) Refresh() {
|
||||
}
|
||||
tmp.SetParent(l.Parent())
|
||||
for _, lyr := range l.artLayers {
|
||||
lyr.Refresh()
|
||||
err := lyr.Refresh()
|
||||
if err != nil {
|
||||
l.artLayers = tmp.artLayers
|
||||
break
|
||||
}
|
||||
}
|
||||
for _, set := range l.layerSets {
|
||||
set.Refresh()
|
||||
|
||||
Reference in New Issue
Block a user