출처 : 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 혈당 웹 사이트를 전달합니다. 이 오류가 발생하면 서비스가 실행될 때 즉시 오류가 발생합니다.
로그온 탭에서 서비스가 로그온되어 있는지 확인하십시오. 내 전자 메일 주소를 사용하기 위해 MSA (Microsoft Account)로 로그인합니다. 이것은 앱이 Windows에서 ~에 쓰면 c : \ users \ LOGGEDINUSER \에 설탕을 넣는 것입니다.
그런 다음 "sc start NSPrompt"또는 서비스 GUI에서 서비스를 실행하십시오.
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 |
아주 멋진 것들.
이 개념은 물론 심장 박동수, FitBit 단계 또는 원하는 건강 관련 측정 항목을 포함하도록 확장 될 수 있습니다! Windows에서이 기능을 사용하도록 요청한 Nate에게 감사드립니다.