Browse Source

main: detects coreos

Xiang Li 11 years ago
parent
commit
fce80136e3
2 changed files with 30 additions and 0 deletions
  1. 3 0
      main.go
  2. 27 0
      pkg/coreos/coreos.go

+ 3 - 0
main.go

@@ -30,6 +30,7 @@ import (
 
 	"github.com/coreos/etcd/etcdmain"
 	"github.com/coreos/etcd/migrate/starter"
+	"github.com/coreos/etcd/pkg/coreos"
 )
 
 func main() {
@@ -41,6 +42,8 @@ func main() {
 		if v {
 			starter.StartDesiredVersion(os.Args[1:])
 		}
+	} else if coreos.IsCoreOS() {
+		starter.StartDesiredVersion(os.Args[1:])
 	}
 	etcdmain.Main()
 }

+ 27 - 0
pkg/coreos/coreos.go

@@ -0,0 +1,27 @@
+// Copyright 2015 CoreOS, Inc.
+//
+// Licensed 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 coreos
+
+import (
+	"io/ioutil"
+	"strings"
+)
+
+func IsCoreOS() bool {
+	b, err := ioutil.ReadFile("/usr/lib/os-release")
+	if err != nil {
+		return false
+	}
+	return strings.Contains(string(b), "ID=coreos")
+}