Agenda

服务计算——Agenda命令设计 1. cobra安装 首先需要安装git,如已经安装则可忽略这步。只需打开终端,输入下面命令即可。(ubuntu系统) apt-get install git使用命令 go get -v github.com/spf13/cobra/cobra下载过程中,会出提示如下错误(估计是和墙有关) Fetching https://golang.org/x/sys/unix?go-get=1 https 阅读详情

Agenda

文章目录

概述

安装Cobra

cobra既是一个用来创建强大的现代CLI命令行的golang库,也是一个生成程序应用和命令行文件的程序。因为本次项目是一个命令行程序,所以涉及到读写参数问题,之前是使用pflag来实现参数的读入。但是cobra的使用可以快速生成命令行文件程序,构建一个命令行程序的框架。

首先安装被墙的依赖包。

在$GOPATH/src/golang.org/x目录下,若没有则自行创建,用git clone下载sys和text项目:

git clone https://github.com/golang/sys
git clone https://github.com/golang/text

然后执行:

go get -v github.com/spf13/cobra/cobra

若成功安装则在 $GOBIN 即 $GOPATH/bin 下出现cobra可执行程序。
然后在命令行中输入cobra:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cWEKKvcf-1571931179495)(image\cobra安装.jpg)]

出现图中提示信息则安装成功。

创建程序

使用cobra init命令初始化程序框架,但是发现提示错误:

Error: required flag(s) "pkg-name" not set

在查看[官方文档][cobragithub]后发现Cobra版本更新后需要增加一个必须参数--pkg-name,就是main函数默认import的包。

Updates to the Cobra generator have now decoupled it from the GOPATH. As such --pkg-name is required.

于是我们使用如下命令初始化:

  1. 先创建目录进入再初始化,此时不需要[name]参数,即目录
mkdir -p newApp
cd newApp
cobra init --pkg-name github.com/github-user/newApp
  1. 直接创建目录新目录
cobra init --pkg-name github.com/github-user/newApp newApp

初始化成功后出现如下提示信息:

Your Cobra applicaton is ready at <path>

此时项目结构应如下:

agenda/
    cmd/
    main.go
    LICENSE

main.go长这个样子:

package main

import "github.com/github-user/agenda/cmd" //pkg-name

func main() {
  cmd.Execute()
}

cmd文件夹里放的就是我们接下来要添加的命令。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lTspuo4l-1571931179497)(image\cobra初始化.jpg)]

添加命令

cobra添加命令的指令如下:

cobra add <conmand_name>

于是我们进入刚创建的目录下,执行:

cobra add register
cobra add login

cmd中会自动添加两个go文件:

agenda/
    cmd/
    	register.go
    	login.go
    main.go
    LICENSE

总结

本次作业在难度上比前两次要大很多。本质上来说是实现了一个“翻译”的任务,实现了golang版的selpg。大二操作系统也有写过C语言的命令行程序,所以对CLI也不是一窍不通,不过这一次对管道,重定向有了更深的了解,也简单使用了golang的命令行参数处理包flag和pflag,执行外部指令的exec,还有os和io的一些操作。过程还是比较坎坷,虽然网上参考的博客很多,但是鱼龙混杂,其中很多都有错的或者理解不到位的地方,自己真正会了才可能完整地做出来,否则即使正确的结果也只是简单的摆拍而已。

github地址 -> ?

项目中附测试截图

参考资料

go语言子进程

go语言创建读取写入文件

某博客

某另一博客

开发Linux命令行实用程序

selpg源代码

/home/go-online/go-online-dep/bin/cobra

/home/go-online/go/src/git.go-online.org.cn/tifinity/project7/agenda

/home/go-online/go

[cobragithub][https://github.com/spf13/cobra/tree/master/cobra]
U a t t ( d ) = 1 2 ξ ρ 2 U_{att}(d) = \frac{1}{2}\xi \rho ^2 Uatt​(d)=21​ξρ2

F a d d ( d ) = − ξ ρ F_{add}(d) = -\xi\rho Fadd​(d)=−ξρ

U r e p ( d ) = 1 2 η ( 1 ρ − 1 ρ 0 ) 2 U_{rep}(d) = \frac{1}{2}\eta(\frac{1}{\rho} - \frac{1}{\rho_0})^2 Urep​(d)=21​η(ρ1​−ρ0​1​)2

F r e p ( d ) = η ( 1 ρ − 1 ρ 0 ) F_{rep}(d) = \eta(\frac{1}{\rho} - \frac{1}{\rho_0}) Frep​(d)=η(ρ1​−ρ0​1​)

drool 7.x 属性 : agenda-group Agenda Group 是用来在Agenda 的基础之上,对现在的规则进行再次分组,具体的分组方法可以采用为规则添加agenda-group 属性来实现。 agenda-group 属性的值也是一个字符串,通过这个字符串,可以将规则分为若干个Agenda Group,默认情况下,引擎在调用这些设置了agenda-group 属性的规则的时候需要显示的指定某个Agenda Group 得到Focu... 阅读详情

相关推荐

Windows 必看!OpenClaw 一键安装教程|告别报错,一次成功不踩坑

OpenClaw 完整安装与配置的全流程教程

m0_70389289的博客 1085

Kubeadm搭建高可用Kubernetes集群 3个matser

1. 节点规划信息 2. 基础环境配置 2.1 环境信息 2.2 环境初始化 (1)、配置主机名,以k8s-master01为例 hostnamectl set-hostname k8s-master01 (2)、配置主机hosts映射 10.1.10.100 k8s-master01 10.1.10.101 k8s-master02 10.1.10.102 k8s-master03 10.1.10.103 k8s-node01 10.1.10.200 k8s-lb 配置完后

二哈欢乐多的博客 1079

Visual MODFLOW Flex 6.1新手入门:从数据导入到3D建模的完整工作流解析

本文为Visual MODFLOW Flex 6.1新手提供了从零开始构建地下水数值模型的完整工作流指南。详细解析了从项目规划、数据准备与导入,到构建三维概念模型、生成并运行数值模型,直至结果可视化与校准的核心步骤。帮助水文地质与环工领域初学者快速掌握这一专业软件,高效完成从数据到三维建模的全过程。

a1b2c的博客 800

go cobra Error: required flag(s) "pkg-name" not set

Cobra 是一个 Golang 包,它提供了简单的接口来创建命令行程序。同时,Cobra 也是一个应用程序,用来生成应用框架,从而开发以 Cobra 为基础的应用。 使用 cobra init 命令初始化程序框架,但是发现提示错误: Error: required flag(s) "pkg-name" not set 在查看官方文档后发现Cobra版本更新后需要增加一个必须参数--pkg-...

牛奔的博客 1340

告别迷茫!手把手教你用Altova XMLSpy编写EtherCAT从站ESI文件(附避坑指南)

本文详细介绍了如何使用Altova XMLSpy高效编写EtherCAT从站ESI文件,涵盖核心架构、通信通道配置、过程数据映射等关键步骤,并提供了常见问题排查与性能优化建议。通过实战案例和避坑指南,帮助工程师快速掌握EtherCAT从站开发技巧,提升工作效率。

weixin_42570484的博客 395

微信小程序-如何根据缩放屏幕大小自适应icon图标更改marker

微信小程序如何根据用户的缩放屏幕来改变marker图标icon的大小,实现icon自适应屏幕缩放的效果

Bartender_VA11的博客 3980

Cobra 一个快速建立命令行应用程序的工具

概述cobra库是golang的一个开源第三方库,能够快速便捷的建立命令行应用程序。优势:cobra可以快速建立CLI程序,使我们更专注于命令需要处理的具体的业务逻辑。举两个例子:hugo server --port=1313git clone URL --bare都是命令行程序。基本概念cobra由三部分构成:commands,arguments 和 flagscommands:表示要执行的动作...

为你撑伞的专栏 3326

【论文笔记】LIME: low-light image enhancement via illumination map estimation

【论文笔记】LIME: low-light image enhancement via illumination map estimation 一篇低光图像增强,引用超1000次的经典论文

weixin_45565519的博客 1793

理论+实操:kubectl命令管理

文章目录一:查看kubectl信息二:创建资源2.1 创建一个nginx,副本集为32.2解决node节点掉线问题2.3 删掉之前创建的pod资源,重新执行2.4 测试,删掉刚才创建的其中一个pod三:expose发布nginx,创建service服务3.1 expose发布3.2 在查看资源时,可以将资源名称简写3.3 查看服务关联后端的节点3.4 查看网络状态详细信息3.5 service将node节点的49003负载均衡,可以到node节点上查看3.6 在master操作,查看三个pod的访问日志四:

Lfwthotpt的博客 3136

鸿蒙系统开发工程师:核心技术解析与深度面试指南

摘要: 鸿蒙系统开发工程师需具备底层驱动开发、系统移植优化及分布式架构能力。核心职责包括硬件适配(Bootloader、内核移植、HDF驱动开发)、性能调优(启动加速、功耗管理)及稳定性保障。技术要求涵盖C/C++编程、Linux内核机制、鸿蒙架构(HDF、分布式服务)及ArkTS/ArkUI基础。面试重点考察系统移植流程(如ARM板适配)、驱动开发(I2C/Display)、性能优化手段及内存/同步机制的应用。

郑伟强dev的专栏 429

DeepLabv3+改进专栏

🔥【DeepLabv3+改进专栏!探索语义分割新高度】🌟 你是否在为图像分割的精度与效率发愁?📢 本专栏重磅推出:✅ 独家改进策略:融合注意力机制、轻量化设计与多尺度优化✅ 即插即用模块:ASPP+升级、解码器。

AIcurator的博客 2575

Emacs中org-mode的Agenda功能

Emacs中org-mode的Agenda功能Org-mode中的Agenda ViewsAgenda view主要指将分布在一个或者多个文件中的收集起来,以特定的视图展示。 TODO items time-stamped items tagged headlines

skuldjf的专栏 3703

华为OD机试 - 最佳对手(Python/JS/C/C++ 2025 A卷 200分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。游戏里面,队伍通过匹配实力相近的对手进行对战。但是如果匹配的队伍实力相差太大,对于双方游戏体验都不会太好。给定n个队伍的实力值,对其进行两两实力匹配,两支队伍实例差距在允许的最大差距d内,则可以匹配。要求在匹配队伍最多的情况下,匹配出的各组实力差

学Java,找哪吒 1379

org-agenda的好帮手:org-agenda-skip-function

原文地址:https://raw.githubusercontent.com/lujun9972/lujun9972.github.com/source/Emacs之怒/org-agenda的好帮手:org-agenda-skip-function.org 之前一直想自定义一个angeda视图,用来显示所有 state 为 NEXT 且 scheduled time不超过今天的事项。 刷选...

暗日 404

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Emacs 的org-mode [agenda view]

假设你已经有了一个或多个带有TODO项目的org文件了,里面不少TODO项目还打上了DEADLINE或SCHEDULED时间戳。你打算怎么观赏它?怎么从一大堆项目中找到今天要处理的事情?打开所有的节点搜索?还是创建时按时间顺序排列? 都不需要,用agenda view就够了。这是一种视图,所谓视图,在我看来就是展示数据的方式。 agenda view就是要把你的数据,按时间来排列分割,然后展示

轻风淡云追似远 3227

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

简单的Agenda项目

本次实验的代码在go-online上 1.实验内容 使用cobra完成一个简单的agenda,只需选择CLI 命令行实用程序开发实战 - Agenda的第四部分agenda 开发项目中业务需求的两项完成便可,我选择实现agenda register和login。 2.实验经过 1.配置环境 本次实验要使用cobra,使用首先要安装cobra,一般使用指令go get -v github.com/s...

astart11的博客 844

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Agendash完全指南:一站式管理Agenda任务的终极仪表盘

Agendash是Agenda任务调度系统的可视化管理仪表盘,提供直观的界面帮助开发者轻松监控、管理和调度任务。作为Agenda生态系统的重要组成部分,Agendash让复杂的任务管理变得简单直观,即使是新手也能快速上手。 ## 为什么选择Agendash? Agendash作为Agenda的官方管理界面,提供了丰富的功能来简化任务调度流程。无论是监控任务状态、创建新任务,还是搜索和筛选特定任

gitblog_00409的博客 1107

org-batch-agenda:让你在命令行中输出org-agenda

原文地址:https://raw.githubusercontent.com/lujun9972/lujun9972.github.com/source/Emacs之怒/org-batch-agenda:让你在命令行中输出org-agenda.org 今天才知道 org-mode 居然还提供了一个 org-batch-agenda 命令可以让我们在命令行中输出org-agenda的内容, 这样我...

暗日 300

Org Super Agenda 使用教程

Org Super Agenda 是一个基于 Org-mode 的 Emacs 插件,它可以让你的日常或每周议程更加高效。这个插件的主要功能是将议程条目分组,而不是将所有条目列在一个长列表中。通过这种方式,你可以根据特定的标签、习惯、待办事项关键词或优先级来组织你的议程,使得重要的任务不会在众多待办事项中丢失。 ## 2. 项目快速启动 快速启动 Org Super Agenda 非常简单,以...

gitblog_00400的博客 847

logseq-plugin-agenda订阅日历功能:同步Google日历与Apple日历

logseq-plugin-agenda是一款功能强大的Logseq日历、任务管理和每日规划插件,能够帮助用户高效整合各类日程信息。其中订阅日历功能尤为实用,支持同步Google日历、Apple日历等多种第三方日历服务,让你在Logseq中一站式管理所有日程安排。 ## 什么是订阅日历功能? 订阅日历是logseq-plugin-agenda提供的高级功能,它允许用户将外部日历服务(如Goog

gitblog_00738的博客 1130

drools规则引擎agenda-group关键字特别需要注意的一点,agenda-group关键字详解

drools使用的版本是:7.2.0.Final 1. 我的需求场景:根据每次请求的规则分组id,运行不同的规则 2. 技术:使用agenda-group关键字区分规则,使用下面这条代码来focus到不同的规则分组 kieSession.getAgenda().getAgendaGroup(id).setFocus(); 3. 发现的问题:其他没有被focus的规则分组也运行,特别时规则...

Pierce3的博客 1922

使用 Raycast Script Commands 快速操作 Agenda:On the Agenda 概览、今日视图与快速建笔记实战

本文以 [commands/apps/agenda](https://link.gitcode.com/i/161cb7368112a45b42985ae5a4f9b39a) 目录下的三支脚本命令为完整示例,讲解如何通过 Raycast Script Commands 与 Agenda 的 x-callback-url 机制实现「On the Agenda 概览」「今日笔记概览」「创建并加入 On

gitblog_01042的博客 114

Logseq-plugin-agenda 使用教程

Logseq-plugin-agenda 是一个为 Logseq 设计的日历插件,它不仅支持日历视图,还具备任务管理和日程规划的功能。用户可以通过该插件查看和安排日常任务,支持看板(Kanban)视图,并且可以分享日程。该插件可以作为网页或者 Logseq 的插件使用,提供了灵活的应用方式。 ## 2. 项目快速启动 首先,确保你已经安装了 Node.js 和 npm。以下是快速启动 Logs

gitblog_00976的博客 684

Nodejs-Agenda简单的例子

Nodejs-Agenda简单的例子

SolitudeAlma的博客 813

logseq-plugin-agenda仪表板配置:个性化工作空间定制指南

想要提升你的Logseq生产力吗?logseq-plugin-agenda仪表板配置正是你需要的个性化工作空间解决方案。这款强大的日历、任务管理和日常计划插件,通过智能仪表板将你的项目、任务和日程安排完美整合,为你打造专属的高效工作环境。💪 ## 📊 仪表板核心功能概览 logseq-plugin-agenda仪表板是一个功能丰富的个人工作空间中心,它不仅仅是一个简单的任务列表,而是集成了

gitblog_00346的博客 777
上一篇: Unity3D项目七:简单打靶
下一篇: Unity3d项目七:简单巡逻兵
Tifinity
博客等级 码龄9年 18粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值