You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by cc...@apache.org on 2018/01/15 00:40:07 UTC

[mynewt-mcumgr-cli] branch master created (now 89c1789)

This is an automated email from the ASF dual-hosted git repository.

ccollins pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-mcumgr-cli.git.


      at 89c1789  mcumgr CLI - Initial commit.

This branch includes the following new commits:

     new 89c1789  mcumgr CLI - Initial commit.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


-- 
To stop receiving notification emails like this one, please contact
['"commits@mynewt.apache.org" <co...@mynewt.apache.org>'].

[mynewt-mcumgr-cli] 01/01: mcumgr CLI - Initial commit.

Posted by cc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ccollins pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-mcumgr-cli.git

commit 89c1789a794e45facd1ebbd0d74e8ebf71a572bf
Author: Christopher Collins <cc...@apache.org>
AuthorDate: Sun Jan 14 16:38:11 2018 -0800

    mcumgr CLI - Initial commit.
---
 .gitignore       | 24 ++++++++++++++
 README           |  1 +
 mcumgr/mcumgr.go | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 120 insertions(+)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e82b498
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,24 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+*.swp
+*.swo
+*~
+tags
+mcumgr/mcumgr
diff --git a/README b/README
new file mode 100644
index 0000000..3bcb6a5
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+# mcumgr CLI
diff --git a/mcumgr/mcumgr.go b/mcumgr/mcumgr.go
new file mode 100644
index 0000000..52c990d
--- /dev/null
+++ b/mcumgr/mcumgr.go
@@ -0,0 +1,95 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package main
+
+import (
+	"fmt"
+	"os"
+	"os/signal"
+	"syscall"
+
+	"mynewt.apache.org/newt/util"
+	"mynewt.apache.org/newtmgr/newtmgr/cli"
+	"mynewt.apache.org/newtmgr/newtmgr/config"
+	"mynewt.apache.org/newtmgr/newtmgr/nmutil"
+	"mynewt.apache.org/newtmgr/nmxact/nmserial"
+)
+
+func stopXport() {
+	x, err := cli.GetXportIfOpen()
+	if err == nil {
+		// Don't attempt to close a serial transport.  Attempting to close
+		// the serial port while a read is in progress (in MacOS) just
+		// blocks until the read completes.  Instead, let the OS close the
+		// port on termination.
+		if _, ok := x.(*nmserial.SerialXport); !ok {
+			x.Stop()
+		}
+	}
+}
+
+func closeSesn() {
+	s, err := cli.GetSesnIfOpen()
+	if err == nil {
+		s.Close()
+	}
+}
+
+func cleanup() {
+	closeSesn()
+	stopXport()
+}
+
+func main() {
+	nmutil.ToolInfo = nmutil.ToolInfoType{
+		ExeName:       "mcumgr",
+		ShortName:     "mcumgr",
+		LongName:      "mcumgr",
+		VersionString: "0.0.0-dev",
+		CfgFilename:   ".mcumgr.cp.json",
+	}
+
+	if err := config.InitGlobalConnProfileMgr(); err != nil {
+		fmt.Fprintf(os.Stderr, "Error: %s\n", err.Error())
+		os.Exit(1)
+	}
+
+	defer cleanup()
+	cli.SetOnExit(cleanup)
+
+	sigChan := make(chan os.Signal, 1)
+	signal.Notify(sigChan)
+
+	go func() {
+		for {
+			s := <-sigChan
+			switch s {
+			case os.Interrupt, syscall.SIGTERM:
+				cli.SilenceErrors()
+				cli.NmExit(1)
+
+			case syscall.SIGQUIT:
+				util.PrintStacks()
+			}
+		}
+	}()
+
+	cli.Commands().Execute()
+}

-- 
To stop receiving notification emails like this one, please contact
"commits@mynewt.apache.org" <co...@mynewt.apache.org>.