Cobra 命令行

Cobra 命令行 因为之前写 Django,python manage.py这个命令非常好用,想看看能不能实现类似的效果。搜索之后发现了更强的cobra,看简介中使用的项目就知道非常不错。代码组织参考的frp的。 PATH/frp/cmd,frpc和fprs分别是客户端和服务端 ├───frpc │ │ main.go │ │ │ └───sub │ http.go │ https.go │ reload.go │ root.go │ status.go │ stcp.go │ sudp.go │ tcp.go │ tcpmux.go │ udp.go │ xtcp.go │ └───frps main.go root.go 添加 go get -u github.com/spf13/cobra/cobra 在项目目录中执行,appname mycli,其中cmd中 rootCmd 的名称是mycli,这里建议和appname一样,后面可以直接go install之后使用mycli即可。 mkdir cmd && cd cmd cobra init mycli --pkg-name mycli cmd └───mycli │ LICENSE │ main.go │ └───cmd root.go 模板代码 import错误,重新按照自己项目的组织方式重写 import即可。 package main import "mycli/cmd" func main() { cmd.Execute() } 测试使用: ...

July 24, 2020 · 2 min · Peter

Cheatsheet for pkg manager

Cheatsheet for package manager go mod pip apt ubuntu 20.04 pip pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package 升级 pip 到最新的版本 (>=10.0.0) 后进行配置: pip install pip -U pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U apt ubuntu 20.04 # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse # 预发布软件源,不建议启用 # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse go mod GOPROXY=https://goproxy.io,direct ...

July 24, 2020 · 1 min · Peter

Docker Private Registry

Docker Private Registry 简单使用,官方 官方提供的 https://hub.docker.com/_/registry Run a local registry: Quick Version $ docker run -d -p 5000:5000 --restart always --name registry registry:2 Now, use it from within Docker: $ docker pull ubuntu $ docker tag ubuntu localhost:5000/ubuntu $ docker push localhost:5000/ubuntu 更复杂的需求,harbor https://goharbor.io/ Our mission is to be the trusted cloud native repository for Kubernetes

July 22, 2020 · 1 min · Peter

etcd 尝试

etcd 尝试 vagrant # -*- mode: ruby -*- # vi: set ft=ruby : servers = { :etcd1 => '192.168.1.21', :etcd2 => '192.168.1.22', :etcd3 => '192.168.1.23' } Vagrant.configure("2") do |config| config.vm.box = "ubuntu/focal64" servers.each do |server_name, server_ip| config.vm.define server_name do |server_config| server_config.vm.hostname = "#{server_name.to_s}" server_config.vm.network :private_network, ip: server_ip server_config.vm.provider "virtualbox" do |vb| vb.name = server_name.to_s if vb.name == "etcd1" vb.memory = 1024 vb.cpus = 1 else vb.memory = 1024 vb.cpus = 1 end end end end end install install.sh ETCD_VER=v3.4.9 # choose either URL GOOGLE_URL=https://storage.googleapis.com/etcd GITHUB_URL=https://github.com/etcd-io/etcd/releases/download DOWNLOAD_URL=${GOOGLE_URL} rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1 rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz /tmp/etcd-download-test/etcd --version /tmp/etcd-download-test/etcdctl version cluster.sh ...

July 22, 2020 · 1 min · Peter

pdm

github, A modern Python package manager with PEP 582 support. 仅在__pypackages__/<major.minor>包含必要的依赖和bin文件,没有解释器相关文件 就算python解释器被删除了,但是只要有其他符合pyproject.yoml规定版本的解释器即可,项目目录下的__pypackages__不包含解释器相关的内容,venv则必须重新关联或者重新创建 $ tree -L 3 __pypackages__ __pypackages__ └── 3.10 ├── bin │ ├── django-admin │ └── sqlformat ├── include └── lib ├── Django-4.0.1.dist-info ├── anyio ├── anyio-3.5.0.dist-info ├── asgiref ├── asgiref-3.4.1.dist-info ├── django ... install brew install pdm demo mkdir pdm-demo cd pdm-demo pdm init Creating a pyproject.toml for PDM... Please enter the Python interpreter to use ... 12. /usr/local/Cellar/pdm/1.12.2/libexec/bin/python3.10 (3.10) Please select: [0]: 12 Using Python interpreter: /usr/local/Cellar/pdm/1.12.2/libexec/bin/python3.10 (3.10) Is the project a library that will be uploaded to PyPI? [y/N]: N License(SPDX name) [MIT]: Author name [26huitailang]: Author email [26huitailang@gmail.com]: Python requires('*' to allow any) [>=3.10]: Changes are written to pyproject.toml. PDM 1.12.2 is installed, while 1.12.6 is available. Please run $ brew upgrade pdm to upgrade. Run $ pdm config check_update false to disable the check. init files ...

July 22, 2020 · 2 min · Peter