psioniq File Header 配置生成脚本
这是一个用于生成源代码文件头配置文件的脚本。
主要用于向源代码文件的头部插入 LICENSE 信息。
该脚本所生成的配置文件适用于 (Visual Studio Code) psioniq File Header 插件。
- 确保你已在你的 Visual Studio Code 工作环境中安装了 psioniq File Header 插件。
- 确保你的工作环境可以运行 python 脚本。
- ./licenses/
所有可供使用的 LICENSE 文件头模板 文本文件(.txt) 都应存放在此目录下。
该目录下默认提供了一些常用的 LICENSE 文本。 - ./psi-config.ini
主要配置文件。 - ./psi-config.py
主要脚本文件。 - ./psi-config.sh
自定义脚本文件。
此脚本的配置文件为 INI 格式。
如果对 INI 格式 有疑问请查阅网上的资料。
配置文件的基本结构如下:
[default]
license = mulanpsl-2-0
year = 2024
holder0 = Kumonda 221 <kumonda@kucro3.org>
[danny-and-jake-love-mit]
license = mit
year = 2024
holder0 = Danny
holder1 = Jake
year1 = 2023
你可以在配置文件的某一节中,使用 license
键来指定使用的 LICENSE 文本。
该文本必须存在于 licenses/
目录中,并且文件名必须为为 <license>.txt
。
你可以在配置文件的某一节中,使用 year
键来指定版权信息的年份。
如果 year
在配置文件中没有指定,则默认为当前的年份,格式为 yyyy
。
例如当前日期如果为 2023-12-31
,则在未指定时的默认值为 2023
。
该键的值类型总是为字符串,也就是说你不需要保证它遵循任何的格式(从使用脚本的层面来说)。例如你想要在 year
中指定一个年份的范围,按照你自己的格式尽情填写就好了。
你可以在配置文件的某一节中,使用 holder0
(0~7) 键来添加版权所有者信息。
该键后的编号不总是需要从0
开始的,但不可以大于7
,数字只是为了区分不同的版权所有者,并确定他们之间出现的顺序。
注意: 如果你在文件中编写了两个或多个 holder0
(或其他数字相同的)键,脚本可能不会报错,此时的输出行为是不确定的。
如果你编写了某个 holder<n>
键,且它对应的值为空,例如:
holder0 = Colton
holder1 =
holder2 = David
那么他将不会在最终的输出中产生单独的一行。此例中其输入如下:
/**
* Copyright (c) 2024 Colton
* Copyright (c) 2024 David
*
...
你可以在配置文件的某一节中,使用 year0
(0~7) 键来单独指定某个版权所有者的时间信息。
该键后的编号不总是需要从0
开始的,但不可以大于7
,并且应当存在对应的 holder<n>
键,否则将不会生效。
注意: 如果你在文件中编写了两个或多个 year0
(或其他数字相同的)键,脚本可能不会报错,此时的输出行为是不确定的。
如果未指定 year<n>
,则对应的年份信息则会使用默认或全局指定的。即在 year
键存在时,默认使用 year
键对应的值;若 year
也不存在,则默认使用当前的年份,见 2.2 节。
如果你编写了某个 holder<n>
键,且它对应的值为空,则不会生效。
例如:
year = 2024
holder0 = Lumos Maxima
holder1 = Avada Kedavra
year1 = 2017-2019
对应的输出为:
/**
* Copyright (c) 2024 Lumos Maxima
* Copyright (c) 2017-2019 Avada Kedavra
*
...
注意:在脚本中对于不同长度的年份信息自动进行了对齐,并总是对齐为最长的年份信息。
在运行脚本时,可以通过 -c
或 --config
参数来指定其他的配置文件路径。
默认情况下脚本会使用当前目录下的 psi-config.ini
文件。
你可以在配置文件中同时保留多个不同的小节,以此来通过脚本灵活地配置各自的文件头。
在运行脚本时,可以通过 -s
或 --section
参数来指定启用的配置小节。
在默认情况下,即没有指定 -s
或 --section
参数时,则会默认使用 [default] 小节中的配置信息。
例如,对于 2.1 节中列出的配置,用参数 -s danny-and-jake-love-mit
启动脚本后,你在 VSCode 中可以得到类似如下的文件头:
/**
* Copyright (c) 2024 Danny
* Copyright (c) 2023 Jake
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the “Software”), to deal in
* the Software without restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
* Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
...
在运行脚本时,可以通过 -l
或 --license
参数来额外指定默认的 LICENSE 文本。
如果配置文件的某节中没有指定 license
键,那么该节就会使用默认的 LICENSE 文本。
默认情况下为 default
文本。
在运行脚本时,可以通过 -o
或 --output
参数来指定配置的输出目标。
默认情况下输出到 ./psi-config-out.json
。
注意:
- 如果指定的 JSON 文件 不存在,则会创建一个。
- 如果指定的 JSON 文件 已经存在,那么会保留其中原有的其他项,并在其基础上额外添加、覆盖脚本输出的配置项。
- 如果指定的文件不是合法的 JSON 格式,那么脚本可能出错。
脚本支持直接将输出重定向到已经存在的合法 JSON 文件,所以你可以直接将输出目标参数写为 -o YOUR_VS_CODE_PROJECT_ROOT/.vscode/settings.json
,而不用担心丢失你原有的 VSCode 设置。