package main import ( "errors" "flag" "fmt" "io/ioutil" "log" "os" "runtime" "strconv" "strings" "time" "github.com/miekg/coredns/core" "github.com/miekg/coredns/core/https" "github.com/xenolf/lego/acme" "gopkg.in/natefinch/lumberjack.v2" ) func init() { core.TrapSignals() setVersion() flag.BoolVar(&https.Agreed, "agree", false, "Agree to Let's Encrypt Subscriber Agreement") flag.StringVar(&https.CAUrl, "ca", "https://acme-v01.api.letsencrypt.org/directory", "Certificate authority ACME server") flag.StringVar(&conf, "conf", "", "Configuration file to use (default="+core.DefaultConfigFile+")") flag.StringVar(&cpu, "cpu", "100%", "CPU cap") flag.StringVar(&https.DefaultEmail, "email", "", "Default Let's Encrypt account email address") flag.DurationVar(&core.GracefulTimeout, "grace", 5*time.Second, "Maximum duration of graceful shutdown") flag.StringVar(&core.Host, "host", core.DefaultHost, "Default host") flag.StringVar(&logfile, "log", "", "Process log file") flag.StringVar(&core.PidFile, "pidfile", "", "Path to write pid file") flag.StringVar(&core.Port, "port", core.DefaultPort, "Default port") flag.BoolVar(&core.Quiet, "quiet", false, "Quiet mode (no initialization output)") flag.StringVar(&revoke, "revoke", "", "Hostname for which to revoke the certificate") flag.StringVar(&core.Root, "root", core.DefaultRoot, "Root path to default zone files") flag.BoolVar(&version, "version", false, "Show version") } func main() { flag.Parse() // called here in main() to allow other packages to set flags in their inits core.AppName = appName core.AppVersion = appVersion acme.UserAgent = appName + "/" + appVersion // set up process log before anything bad happens switch logfile { case "stdout": log.SetOutput(os.Stdout) case "stderr": log.SetOutput(os.Stderr) case "": log.SetOutput(ioutil.Discard) default: log.SetOutput(&lumberjack.Logger{ Filename: logfile, MaxSize: 100, MaxAge: 14, MaxBackups: 10, }) } if revoke != "" { err := https.Revoke(revoke) if err != nil { log.Fatal(err) } fmt.Printf("Revoked certificate for %s\n", revoke) os.Exit(0) } if version { fmt.Printf("%s %s\n", appName, appVersion) if devBuild && gitShortStat != "" { fmt.Printf("%s\n%s\n", gitShortStat, gitFilesModified) } os.Exit(0) } // Set CPU cap err := setCPU(cpu) if err != nil { mustLogFatal(err) } // Get Corefile input caddyfile, err := core.LoadCaddyfile(loadCaddyfile) if err != nil { mustLogFatal(err) } // Start your engines err = core.Start(caddyfile) if err != nil { mustLogFatal(err) } // Twiddle your thumbs core.Wait() } // mustLogFatal just wraps log.Fatal() in a way that ensures the // output is always printed to stderr so the user can see it // if the user is still there, even if the process log was not // enabled. If this process is a restart, however, and the user // might not be there anymore, this just logs to the process log // and exits. func mustLogFatal(args ...interface{}) { if !core.IsRestart() { log.SetOutput(os.Stderr) } log.Fatal(args...) } func loadCaddyfile() (core.Input, error) { // Try -conf flag if conf != "" { if conf == "stdin" { return core.CaddyfileFromPipe(os.Stdin) } contents, err := ioutil.ReadFile(conf) if err != nil { return nil, err } return core.CaddyfileInput{ Contents: contents, Filepath: conf, RealFile: true, }, nil } // command line args if flag.NArg() > 0 { confBody := core.Host + ":" + core.Port + "\n" + strings.Join(flag.Args(), "\n") return core.CaddyfileInput{ Contents: []byte(confBody), Filepath: "args", }, nil } // Caddyfile in cwd contents, err := ioutil.ReadFile(core.DefaultConfigFile) if err != nil { if os.IsNotExist(err) { return core.DefaultInput(), nil } return nil, err } return core.CaddyfileInput{ Contents: contents, Filepath: core.DefaultConfigFile, RealFile: true, }, nil } // setCPU parses string cpu and sets GOMAXPROCS // according to its value. It accepts either // a number (e.g. 3) or a percent (e.g. 50%). func setCPU(cpu string) error { var numCPU int availCPU := runtime.NumCPU() if strings.HasSuffix(cpu, "%") { // Percent var percent float32 pctStr := cpu[:len(cpu)-1] pctInt, err := strconv.Atoi(pctStr) if err != nil || pctInt < 1 || pctInt > 100 { return errors.New("invalid CPU value: percentage must be between 1-100") } percent = float32(pctInt) / 100 numCPU = int(float32(availCPU) * percent) } else { // Number num, err := strconv.Atoi(cpu) if err != nil || num < 1 { return errors.New("invalid CPU value: provide a number or percent greater than 0") } numCPU = num } if numCPU > availCPU { numCPU = availCPU } runtime.GOMAXPROCS(numCPU) return nil } // setVersion figures out the version information based on // variables set by -ldflags. func setVersion() { // A development build is one that's not at a tag or has uncommitted changes devBuild = gitTag == "" || gitShortStat != "" // Only set the appVersion if -ldflags was used if gitNearestTag != "" || gitTag != "" { if devBuild && gitNearestTag != "" { appVersion = fmt.Sprintf("%s (+%s %s)", strings.TrimPrefix(gitNearestTag, "v"), gitCommit, buildDate) } else if gitTag != "" { appVersion = strings.TrimPrefix(gitTag, "v") } } } const appName = "Caddy" // Flags that control program flow or startup var ( conf string cpu string logfile string revoke string version bool ) // Build information obtained with the help of -ldflags var ( appVersion = "(untracked dev build)" // inferred at startup devBuild = true // inferred at startup buildDate string // date -u gitTag string // git describe --exact-match HEAD 2> /dev/null gitNearestTag string // git describe --abbrev=0 --tags HEAD gitCommit string // git rev-parse HEAD gitShortStat string // git diff-index --shortstat gitFilesModified string // git diff-index --name-only HEAD ) odule-graph Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/packages/integrations/svelte (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2023-11-27[ci] release (beta) (#9114)create-astro@4.5.2-beta.0astro@4.0.0-beta.0@astrojs/vue@4.0.0-beta.0@astrojs/vercel@6.0.0-beta.0@astrojs/tailwind@6.0.0-beta.0@astrojs/svelte@5.0.0-beta.0@astrojs/rss@4.0.0-beta.0@astrojs/react@3.0.7-beta.0@astrojs/node@7.0.0-beta.0@astrojs/mdx@2.0.0-beta.0@astrojs/markdown-remark@4.0.0-beta.0Gravatar Houston (Bot) 2-2/+15
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-27Remove support for simple objects in endpoints (#9181)Gravatar Bjorn Lu 56-529/+206
* Deprecate simple object from endpoints * Update changeset * Add missing Response return Co-authored-by: Happydev <81974850+MoustaphaDev@users.noreply.github.com> * Update .changeset/clever-beds-notice.md Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> --------- Co-authored-by: Happydev <81974850+MoustaphaDev@users.noreply.github.com> Co-authored-by: Matthew Phillips <matthew@skypack.dev> Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2023-11-28Remove shiki lang path property support (#9196)Gravatar Bjorn Lu 7-427/+22
2023-11-28Remove deprecated features from Astro 3.0 (#9168)Gravatar Bjorn Lu 47-398/+95
2023-11-28Remove deprecated markdown-remark APIs (#9182)Gravatar Bjorn Lu 4-59/+7
2023-11-27[ci] release (#9180)astro@3.6.1Gravatar Houston (Bot) 32-65/+63
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-24Remove vercel deprecated analytics option (#9184)Gravatar Bjorn Lu 3-30/+12
2023-11-24[ci] formatGravatar Guspan Tanadi 1-2/+1
2023-11-24style: highlight markdown Tip Note section CONTRIBUTING (#9123)Gravatar Guspan Tanadi 1-5/+7
2023-11-23fix scroll restoration issue on webKit browsers (#9186)Gravatar Martin Trapp 2-1/+7
* fix scroll restoration issue on webKit browsers * add changeset * Update .changeset/shaggy-socks-glow.md * Update .changeset/shaggy-socks-glow.md Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> --------- Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2023-11-23fix(middleware): rename internal middleware id (#9173)Gravatar Arsh 2-1/+6
* rename internal middleware id * add changeset
2023-11-23fix: Changelog formatting for 3.6.0 View Transition events (#9176)Gravatar Martin Trapp 1-3/+3
Co-authored-by: Eva Decker <itsevadecker@gmail.com>
2023-11-22[ci] formatGravatar Eva Decker 1-3/+3
2023-11-22Fix View Transitions code block formatting (#9174)Gravatar Eva Decker 1-3/+3
2023-11-22Rename entryPoint to entrypoint (#9161)Gravatar Bjorn Lu 14-26/+38
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2023-11-22Fix esbuild warning for local dev (#9160)Gravatar Bjorn Lu 1-1/+1
2023-11-22[ci] release (#9165)astro@3.6.0Gravatar Houston (Bot) 34-90/+83
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>