Google GO (Programmiersprache): Build Github Projekt in Debian 9?

Hallo zusammen,

ich habe auf Github folgendes "Projekt" gefunden, geschrieben in Go, welches ich gerne benutzen würde:

https://github.com/jeremmfr/iptables-api

nach dem ich das Projekt mit git clone auf meinen Server heruntergeladen habe, habe ich die "Compile" schritte befolgt:

(das Paket "golang" ist installiert)

root@routing:~# git clone https://github.com/jeremmfr/iptables-api.git
Cloning into 'iptables-api'...
remote: Enumerating objects: 98, done.
remote: Counting objects: 100% (98/98), done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 98 (delta 56), reused 94 (delta 52), pack-reused 0
Unpacking objects: 100% (98/98), done.

root@routing:~# cd iptables-api/

root@routing:~/iptables-api# export GO111MODULE=on

root@routing:~/iptables-api#  go build -o iptables-api
chain.go:7:2: cannot find package "github.com/abbot/go-http-auth" in any of:
        /usr/lib/go-1.7/src/github.com/abbot/go-http-auth (from $GOROOT)
        ($GOPATH not set)
main.go:10:2: cannot find package "github.com/gorilla/handlers" in any of:
        /usr/lib/go-1.7/src/github.com/gorilla/handlers (from $GOROOT)
        ($GOPATH not set)
chain.go:8:2: cannot find package "github.com/gorilla/mux" in any of:
        /usr/lib/go-1.7/src/github.com/gorilla/mux (from $GOROOT)
        ($GOPATH not set)
chain.go:9:2: cannot find package "github.com/jeremmfr/go-iptables/iptables" in any of:
        /usr/lib/go-1.7/src/github.com/jeremmfr/go-iptables/iptables (from $GOROOT)
        ($GOPATH not set)

Beim Compilen fehlen ihm aber Ressourcen. Ich habe schon einiges Probiert auch mit "go get", bis jetzt aber erfolglos. Ich habe auch gelesen, dass man für das Compilen einen kompletten Projektpfad aufsetzen muss, mit allen Abhängikeiten um das ganze Builden zu können... ob das stimmt?

Ich habe noch nie etwas mit Go gemacht und möchte auch nicht durch das Probieren meinen Server zerschießen.

Also meine Frage: Wie Compile ich das Projekt und lasse es unter Linux Debian 9 laufen?

Vielen Dank :)

Computer, Linux, Programmieren, Informatik, Programmiersprache
2 Antworten
JS: Threex-EventHandler mit Parameterübergabe?

Hallöchen

Ich habe in einem Threejs mit dem ThreexDomEventhandler-projekt folgendes Objekt:

var stage = {
  beamer: {
        shadow: true,
        visible: true,
        geometry: {
            type: "CubeGeometry",
            parm: [0.5, 0.2, 0.4],
        },
        material: {
            type: "MeshPhongMaterial",
            parm: {color: 0xffffff, map: texture.beamer.obj},
        },
        dom: {
            mouseover: function() {
                console.log("Mouseover!");
            },
            mouseout: function() {
                console.log("Mouseout!");
            }
        }
    },
}

Folgender Code liest die Config und macht daraus Objekte: (geometry, material, mesh)

Die Objekte werden dann in das bestehende Stage Objekt geschrieben.

//Parsing Obj Config
for (var key in stage) {
    stage[key].obj = {}; //Create new Element in stage
    stage[key].obj.geometry = new THREE[stage[key].geometry.type](...stage[key].geometry.parm); //Put obj geometry
    stage[key].obj.material = new THREE[stage[key].material.type](stage[key].material.parm); //Put obj material
    stage[key].obj.material.needsUpdate = true;
    stage[key].obj.mesh = new THREE.Mesh(stage[key].obj.geometry, stage[key].obj.material); //Create and Put a Mesh from given geometry and material
    stage[key].obj.mesh.castShadow = stage[key].shadow; //Apply shadow-visibility
    stage[key].obj.mesh.visible = stage[key].visible; //Apply overall visibility

    //Adding Eventlisteners     if(typeof stage[key].dom !== undefined) {         for (var type in stage[key].dom) {             eventhandler.addEventListener(stage[key].obj.mesh, type, event => {                 stage[key].dom[type]();             });         }     }

    scene.add(stage[key].obj.mesh); //Adding mesh to scene
}

Es geht hierbei eigentlich nur um den "dom" Bereich, und beim Parsen um den addEventListener Bereich.

die Variable "eventhandler" wurde vorher mit folgendem Befehl erstellt:

var eventhandler = new THREEx.DomEvents(cam, renderer.domElement);

Das Problem

beim Ausführen klappt alles soweit, die Objekte werden alle angezeigt und die Eventlistener funktionieren auch.

Nur beim triggern des Listeners erscheint folgender Fehler in der Konsole:

stage[key].dom is undefined

Wie bekomm ich die Variable in den Eventlistener, sodass die "Callback" Funktion im Stage Objekt ausgeführt werden kann?

Also sobald das Event getriggert ist, soll die gegebene Funktion im Stage Objekt unter "dom: ..." aufgerufen werden.

Sollte der Codeviewer von GF Formatierungsprobleme machen hier der Code auf Pastebin: https://pastebin.com/EA8vb86k

Bitte auch beachten, das das Stage-Objekt natürlich mehrere Elemente enthält weshalb die Schleifen alle sinnvoll sind. Es funktioniert alles bis auf den genannten Fehler beim Aufruf des Listeners.

Vielen Dank an alle die sich die Zeit für mich nehmen! :)

Lg Elias

Computer, Website, HTML, Programmieren, JavaScript, JS
2 Antworten