본문 바로가기

테크크런치기사

실시간 혈당 값을 시각화하고 Windows PowerShell 및 Linux Bash에서 힘내 프롬프트 표시

출처 : https://www.hanselman.com/blog/VisualizingYourRealtimeBloodSugarValuesANDAGitPromptOnWindowsPowerShellAndLinuxBash.aspx


내 친구 네이트 가 몇 주 전에 제 1 형 당뇨병 환자가되었습니다. 그것은 빤다 ... 나는 25 년 동안 하나였습니다. Nate는 저와 같은 기술자입니다. 당뇨병 환자가되는 모든 기술자들과 한결같은 상상력을 발휘하여, 우리는 그것을 해결할 수있는 방법을 고안하려고 노력합니다. ;) 저는 인슐린 펌프와 연속 포도당 시스템이 있는 오픈 소스 인공 췌장 시스템을 사용합니다 . 이 시스템의 핵심에는 Nightscout 이라는 서버 측 소프트웨어 가 있으며 현재 및 과거의 혈당 관리를위한 API가 있습니다. 그건 5 분마다, 하루 24 시간 업데이트 .

Nate에게 NightScout을 최대한 빨리 설정하고 API로 게임을 시작하라고 말했습니다. 어제 네이트는 그의 혈통을 터미널 프롬프트에 추가했습니다 !

나는 이것을 좋아한다. 그는 Linux를 사용하지만 Windows 10에서 Linux (Ubuntu)를 사용하기 때문에 Windows에서 그의 작은 노드를 실행할 수 있는지 알고 싶습니다 (Windows 서비스로 만들 것입니다).

예, Windows 10의 Ubuntu에서 cron 작업을 실행할 수 있지만 bash 실행 인스턴스 (사용하지 않을 때 Linux 하위 시스템이 종료 됨)가 있고 upstart가 아직 작동하지 않는 경우에만 cron 작업을 실행할 수 있습니다. 나는의 .bashrc에서 실행 또는 사용할 수있는 다양한 해킹 / 해결 방법을 WSL (리눅스 용 Windows 하위 시스템)을 계속 실행하는 것이 아니라 Windows 서비스로이를 실행의 장점은 내 혈당을 볼 수 있다는 것입니다 , Windows에서 모든 프롬프트에서 처럼 Powershell뿐!

Nate의 비 Windows 서비스 노드 앱 을 Windows 서비스 로 실행 하려면 " 비 흡착 서비스 관리자 (NSSM)"를 사용합니다 "nssm install nsprompt"를 실행하고이 GUI를 얻습니다. 그런 다음 - nightscout 매개 변수를 추가하고 Nightscout 혈당 웹 사이트를 전달합니다. 이 오류가 발생하면 서비스가 실행될 때 즉시 오류가 발생합니다.

NSSM 서비스 설치 프로그램

로그온 탭에서 서비스가 로그온되어 있는지 확인하십시오. 내 전자 메일 주소를 사용하기 위해 MSA (Microsoft Account)로 로그인합니다. 이것은 앱이 Windows에서 ~에 쓰면 c : \ users \ LOGGEDINUSER \에 설탕을 넣는 것입니다.

그런 다음 "sc start NSPrompt"또는 서비스 GUI에서 서비스를 실행하십시오.

내 설탕 업데이터는 Windows 서비스에서 실행됩니다.

Nate의 노드 앱은 Nightscout 에서 혈당을 가져 와서 ~ / .bgl-cache에 저장합니다. 그러나, 분명히하기 위해 나는 그것을 실행 해요 이후 윈도우 측에서 윈도우 프롬프트에 배쉬 / 우분투를 변경하는 동안 리눅스에서 ,이 창에서 점에 유의하는 것이 중요합니다 ~ / 정말 C : 사용자 \ \ loggedInUser에 \ 내가 배쉬를 변경 때문에 .profile 다음과 같이 Windows mnt 드라이브에서 값을로드하십시오.

eval "$ (cat /mnt/c/Users/scott/.bgl-cache)"

또한 콘솔에서 유니 코드 글꼴을 사용하고 있는지 확인해야합니다. 예를 들어 Fira Code Light를 사용하는 것이 좋지만 단일 문자 ↑ ​​이중 화살표 (U + 21C8)가 없으므로 두 개의 단일 문자로 교체했습니다. 당신은 아이디어를 얻습니다. 원하는 글자가있는 글꼴이 필요하고 .profile 텍스트 파일에 글자가 올바르게 표시되어야합니다.

유니 코드 글꼴이 필요합니다.

그리고 붐. 영광입니다. 내 현재 혈당과 내 프롬프트 경향. 감사 네이트!

내 설탕!

PowerShell도 마찬가지입니다. 나는 완전히 다른 프롬프트 / 세계 / 환경 / 행성을 서비스에 의해 업데이트 된 동일한 파일에서 업데이트하려고합니다. 또한 Keith Dahlby의 Posh-Git을 사용했기 때문에 힘내 정보가 담긴 커스텀 프롬프트가 이미 있습니다 .

"profile-current $ profile.CurrentUserAllHosts"로 $ profile.CurrentUserAllHosts를 편집하고 "import-module posh-git"전에 프롬프트 함수를 추가 할 수 있습니다.

다음은 PoshGit에 연결된 PowerShell prompt () 메서드로 번역 된 Nate의 동일한 프롬프트 파일입니다. 그래서 나는 나의 힘 상태와 나의 혈당을 볼 수있다. 내 두 가지 우선 순위!

참고 : posh-git을 사용하지 않는 경우 "WriteVcsStatus"행과 "Import-Module posh-git"을 제거하면 설정해야합니다!

function prompt {
    Get-Content $ENV:USERPROFILE\.bgl-cache | %{$bgh = @{}} {if ($_ -match "local (.*)=""(.*)""") {$bgh[$matches[1]]=$matches[2].Trim();}}
    $trend = "?"
    switch ($bgh.nightscout_trend)
    {
        "DoubleUp" {$trend="↑↑"}
        "SingleUp" {$trend="↑"}
        "FortyFiveUp" {$trend="↗"}
        "Flat" {$trend="→"}
        "FortyFiveDown" {$trend="↘"}
        "SingleDown" {$trend="↓"}
        "DoubleDown" {$trend="↓↓"}
    }
    $bgcolor = [Console]::ForegroundColor.ToString()
    if ([int]$bgh.nightscout_bgl -ge [int]$bgh.nightscout_target_top) {
        $bgcolor = "Yellow"
    } ElseIf ([int]$bgh.nightscout_bgl -le [int]$bgh.nightscout_target_bottom) {
        $bgcolor = "Red"
    } Else {
        $bgcolor = "Green"
    }
 
    Write-Host $bgh.nightscout_bgl -NoNewline -ForegroundColor $bgcolor
    Write-Host $trend" " -NoNewline -ForegroundColor $bgcolor
    [Console]::ResetColor()
 
    $origLastExitCode = $LASTEXITCODE
    Write-Host $ExecutionContext.SessionState.Path.CurrentLocation -NoNewline
    Write-VcsStatus
    $LASTEXITCODE = $origLastExitCode
    "$('>' * ($nestedPromptLevel + 1)) "
}
 
Import-Module posh-git

아주 멋진 것들.

Powershell의 Blood Sugar와 Git!

이 개념은 물론 심장 박동수, FitBit 단계 또는 원하는 건강 관련 측정 항목을 포함하도록 확장 될 수 있습니다! Windows에서이 기능을 사용하도록 요청한 Nate에게 감사드립니다.