2201-环境变量编辑器

设计思想

最近遇到了这么一个问题:我们在编辑环境变量的时候,往往会有一些定制化的需求,如何方便的编辑环境变量是一个比较难的问题。

变量类别: 1. 路径变量 2. 路径组变量 3. IP地址变量 4. 字符串变量

分类别进行“检测分类”和“编辑”

检测:字符串检测 编辑:整合操作序列,软件退出并且确认保存之后才会被执行一系列的export指令

需要解决的问题: - [ ] 操作流程 - [ ] cli用户界面设计 - [ ] ranger读取器(todo?) - [ ] env的编辑逻辑

开发笔记

实现变量类型的识别

首先 ipv4 和 ipv6 的形式非常简单,有特定的识别方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def check_ipv6(address: str) -> bool:  
try:
socket.inet_pton(socket.AF_INET6, address)
return True
except socket.error:
return False


def check_ipv4(address):
try:
socket.inet_aton(address)
return True
except socket.error:
return False

下一步思考路径。路径有两种可能: 1. 合法路径 2. 不合法路径(可能因为某种原因被删除了)

那么如何设计合法的路径名呢?

这里我考虑了一些情况: 1. 路径名中可能包含其他环境变量,但是根据规范 环境变量名只能是大小写字母、数字、下划线构成 2. 路径名可能会有多个/重复,但是这个不影响他作为一个合法路径

这样就构成了一个简单的路径名称合法判断正则(顺便得到了一个可以用来检测环境变量名称是否合法的正则)

01/29/2022 21:35 我想骂人 问题的性质已经变了。对于环境变量的解读其实工作应该是shell处理的,而不是我自己去复现一个parse工具 因为Linux的文件命名过于随意,文件名可以有:$ 所以路径名没法很好的解析出来 不过我也受够了,不管别的了,直接开搞吧,姑且认为这个美好的世界上还是人类居多吧

01/31/2022 20:43 好吧,莫名其妙就做完了

github.com/Chivier/enview

功能不做过多赘述啦,我们直接在github里面看效果啦


2201-环境变量编辑器
http://blog.chivier.site/2022-01-31/2022/2201-环境变量编辑器/
Author
Chivier Humber
Posted on
January 31, 2022
Licensed under