当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PSProjectStatus 简介

作者:精品下载站 日期:2024-12-14 08:06:40 浏览:15 分类:玩电脑

PSProjectStatus 简介


我编写了很多 PowerShell 模块。可能和您一样,我一次从事多个项目。我发现很难跟踪我正在做什么以及我可能忽略了什么。因此,我转向 PowerShell 并创建了一个工具来管理我的项目。 PowerShell 模块称为 PSProjectStatus,您可以从 PowerShell 库安装它。你可以在 GitHub 上找到该项目,但我想我应该在这里提供一个介绍。

基于类

该模块围绕定义 PSProject 对象的 PowerShell 类构建。

Class PSProject {
    [string]$Name = (Split-Path (Get-Location).path -Leaf)
    [string]$Path = (Convert-Path (Get-Location).path)
    [datetime]$LastUpdate = (Get-Date)
    [string[]]$Tasks
    [PSProjectStatus]$Status = "Development"
    [string]$GitBranch
    [string]$UpdateUser = "$([system.environment]::UserDomainName)$([System.Environment]::Username)"

    [void]Save() {
        $json = Join-Path -Path $this.path -ChildPath psproject.json
        $this | Select-Object -Property * -exclude Age | ConvertTo-Json | Out-File $json
    }
}

创建类的数据存储在 JSON 文件 psproject.json 中,该文件存储在模块的根目录中。 PSProjectStatus 模块具有管理此对象和 JSON 文件的命令。

创建状态

要创建新状态,请更改为模块的根目录并运行 New-PSProjectStatus。

[玩转系统] PSProjectStatus 简介

Status 属性基于枚举。

enum PSProjectStatus {
    Development
    Updating
    Stable
    AlphaTesting
    BetaTesting
    ReleaseCandidate
    Patching
    UnitTesting
    AcceptanceTesting
    Other
}

默认为开发。我尝试添加足够的值来适应几乎任何情况。创建新的 PSProject 状态时,信息将写入 JSON 文件。

[玩转系统] PSProjectStatus 简介

如果检测到 git 分支,它将被包含在内。

更新状态

要更新状态,请使用 Set-PSProjectStatus 命令。

[玩转系统] PSProjectStatus 简介

您可以指定以逗号分隔的任务列表。我倾向于保持它们的高层次和广泛性。如果要添加任务,请使用 -Concatentate 参数。目前,除了手动编辑 JSON 文件之外,没有其他方法可以删除任务。如果您在 VSCode 中打开项目,那么这并不难。您始终可以手动编辑该文件。如果需要更新 LastUpdate 值,请运行 Get-Date -format o |设置剪贴板并将值粘贴到文件中。

Age 属性是通过扩展 PSProject 类型添加的 ScriptProperty。

获得状态

通常,您将从模块根运行 Get-PSProjectStatus。如果是格式化表,则默认输出。这是您在创建或设置状态时看到的输出。该模块包括一个列表视图。

[玩转系统] PSProjectStatus 简介

该列表使查看任务更加容易。

为了管理我的工作中的所有内容,我可以在 PowerShell 7 脚本文件中使用此模块。

#requires -version 7.2
#requires -module Microsoft.PowerShell.ConsoleGuiTools

#open a project using the PSProject status

Import-Module PSProjectStatus -Force

#get all projects
$all = Get-ChildItem -Path C:\Scripts -Directory | Get-PSProjectStatus -WarningAction SilentlyContinue

#display the projects in Out-ConsoleGridview and open the selected one in VS Code
$all | Sort-Object Status, LastUpdate |
Select-Object Path, Status, @{Name = "Tasks"; Expression = { $_.Tasks -join ',' } },
Gitbranch, LastUpdate |
Out-ConsoleGridView -Title "PSProject Management" -OutputMode Single |
ForEach-Object { code $_.path }

该脚本在 C:\Scripts 中搜索带有 psproject.json 的子文件夹,并使用 Out-ConsoleGridview 显示项目。从这里,我可以选择一个模块并在 VS Code 中打开它。

[玩转系统] PSProjectStatus 简介

尝试一下

我希望您能安装该模块并试用一下。我想知道您的想法以及它对您有何作用。什么会增加价值?我已经有了一些改进的想法,但我很想听听你的想法。邀请您使用存储库的讨论部分。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯