You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@skywalking.apache.org by ke...@apache.org on 2021/04/03 13:24:43 UTC
[skywalking-eyes] branch main updated: feature: add reasonable
default config to allow running in a new repo without copying config file
(#28)
This is an automated email from the ASF dual-hosted git repository.
kezhenxu94 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-eyes.git
The following commit(s) were added to refs/heads/main by this push:
new 5c90c96 feature: add reasonable default config to allow running in a new repo without copying config file (#28)
5c90c96 is described below
commit 5c90c9698806040f50671a172a7cac17974ecebd
Author: Zhenxu Ke <ke...@apache.org>
AuthorDate: Sat Apr 3 21:24:38 2021 +0800
feature: add reasonable default config to allow running in a new repo without copying config file (#28)
---
assets.go => assets/assets.go | 2 +-
assets/default-config.yaml | 35 +++++++++++++++++++++++++++++++++++
pkg/comments/config.go | 6 +++---
pkg/config/config.go | 27 +++++++++++++++++++++------
pkg/deps/config.go | 4 ++++
pkg/header/config.go | 6 +++---
pkg/license/identifier.go | 4 ++--
7 files changed, 69 insertions(+), 15 deletions(-)
diff --git a/assets.go b/assets/assets.go
similarity index 98%
rename from assets.go
rename to assets/assets.go
index 549c0f8..7332988 100644
--- a/assets.go
+++ b/assets/assets.go
@@ -23,7 +23,7 @@ import (
"io/fs"
)
-//go:embed assets
+//go:embed *
var assets embed.FS
func Asset(file string) ([]byte, error) {
diff --git a/assets/default-config.yaml b/assets/default-config.yaml
new file mode 100644
index 0000000..7b7f3f0
--- /dev/null
+++ b/assets/default-config.yaml
@@ -0,0 +1,35 @@
+#
+# 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.
+#
+header:
+ license:
+ spdx-id: Apache-2.0
+ copyright-owner: Apache Software Foundation
+
+ paths-ignore:
+ - '**/*.md'
+ - '**/*.json'
+ - '**/*.txt'
+ - '.gitignore'
+ - '.gitmodules'
+ - 'LICENSE'
+ - 'NOTICE'
+ - 'go.mod'
+ - 'go.sum'
+
+ comment: on-failure
diff --git a/pkg/comments/config.go b/pkg/comments/config.go
index b8acda1..b323851 100644
--- a/pkg/comments/config.go
+++ b/pkg/comments/config.go
@@ -21,7 +21,7 @@ import (
"fmt"
"strings"
- assets "github.com/apache/skywalking-eyes/license-eye"
+ "github.com/apache/skywalking-eyes/license-eye/assets"
"gopkg.in/yaml.v3"
)
@@ -74,7 +74,7 @@ func init() {
}
func initLanguages() {
- content, err := assets.Asset("assets/languages.yaml")
+ content, err := assets.Asset("languages.yaml")
if err != nil {
panic(fmt.Errorf("should never happen: %w", err))
}
@@ -89,7 +89,7 @@ func initLanguages() {
}
func initCommentStyles() {
- content, err := assets.Asset("assets/styles.yaml")
+ content, err := assets.Asset("styles.yaml")
if err != nil {
panic(fmt.Errorf("should never happen: %w", err))
}
diff --git a/pkg/config/config.go b/pkg/config/config.go
index 6db18be..684f35a 100644
--- a/pkg/config/config.go
+++ b/pkg/config/config.go
@@ -18,8 +18,9 @@
package config
import (
- "io/ioutil"
+ "os"
+ "github.com/apache/skywalking-eyes/license-eye/assets"
"github.com/apache/skywalking-eyes/license-eye/internal/logger"
"github.com/apache/skywalking-eyes/license-eye/pkg/deps"
"github.com/apache/skywalking-eyes/license-eye/pkg/header"
@@ -33,12 +34,26 @@ type Config struct {
}
// Parse reads and parses the header check configurations in config file.
-func (config *Config) Parse(file string) error {
- logger.Log.Infoln("Loading configuration from file:", file)
+func (config *Config) Parse(file string) (err error) {
+ var bytes []byte
- if bytes, err := ioutil.ReadFile(file); err != nil {
- return err
- } else if err := yaml.Unmarshal(bytes, config); err != nil {
+ if file != "" {
+ logger.Log.Infoln("Loading configuration from file:", file)
+
+ if bytes, err = os.ReadFile(file); err != nil && !os.IsNotExist(err) {
+ return err
+ }
+ }
+
+ if os.IsNotExist(err) {
+ logger.Log.Infof("No config file is given, using the default config")
+
+ if bytes, err = assets.Asset("default-config.yaml"); err != nil {
+ return err
+ }
+ }
+
+ if err := yaml.Unmarshal(bytes, config); err != nil {
return err
}
diff --git a/pkg/deps/config.go b/pkg/deps/config.go
index b682aa4..a778512 100644
--- a/pkg/deps/config.go
+++ b/pkg/deps/config.go
@@ -18,6 +18,7 @@
package deps
import (
+ "os"
"path/filepath"
)
@@ -28,6 +29,9 @@ type ConfigDeps struct {
func (config *ConfigDeps) Finalize(configFile string) error {
configFileAbsPath, err := filepath.Abs(configFile)
if err != nil {
+ if os.IsNotExist(err) {
+ return nil
+ }
return err
}
diff --git a/pkg/header/config.go b/pkg/header/config.go
index 72035f3..b4f0700 100644
--- a/pkg/header/config.go
+++ b/pkg/header/config.go
@@ -26,7 +26,7 @@ import (
"strings"
"time"
- assets "github.com/apache/skywalking-eyes/license-eye"
+ "github.com/apache/skywalking-eyes/license-eye/assets"
"github.com/apache/skywalking-eyes/license-eye/internal/logger"
"github.com/apache/skywalking-eyes/license-eye/pkg/license"
@@ -137,12 +137,12 @@ func (config *ConfigHeader) GetLicenseContent() string {
func readLicenseFromSpdx(config *ConfigHeader) (string, error) {
spdxID, owner := config.License.SpdxID, config.License.CopyrightOwner
- filename := fmt.Sprintf("assets/header-templates/%v.txt", spdxID)
+ filename := fmt.Sprintf("header-templates/%v.txt", spdxID)
if spdxID == "Apache-2.0" && ASFNames.MatchString(owner) {
// Note that the Apache Software Foundation uses a different source header that is related to our use of a CLA.
// Our instructions for our project's source headers are here (https://www.apache.org/legal/src-headers.html#headers).
- filename = "assets/header-templates/Apache-2.0-ASF.txt"
+ filename = "header-templates/Apache-2.0-ASF.txt"
}
content, err := assets.Asset(filename)
diff --git a/pkg/license/identifier.go b/pkg/license/identifier.go
index 3b0946e..dd21112 100644
--- a/pkg/license/identifier.go
+++ b/pkg/license/identifier.go
@@ -23,10 +23,10 @@ import (
"regexp"
"strings"
- assets "github.com/apache/skywalking-eyes/license-eye"
+ "github.com/apache/skywalking-eyes/license-eye/assets"
)
-const templatesDir = "assets/lcs-templates"
+const templatesDir = "lcs-templates"
var dualLicensePatterns = []*regexp.Regexp{
regexp.MustCompile(`(?i)This project is covered by two different licenses: (?P<license>[^.]+)`),