Atari 1200XL에서 Github로 라이브 코딩을 동기화하는 방법

3001 단어
지난 몇 주 동안 AtariBasic에서 Snake 게임을 프로그래밍하면서 Atari 1200XL에서 라이브 코딩 세션streaming을 했습니다. 지난주에 저는 다른 사람들이 따라할 수 있도록 스트리밍하는 동안 실시간으로 코드를 공유할 수 있다면 어떨까 하는 생각을 했습니다. 나는 그것을하는 방법을 알아 냈습니다.

전제 조건



이것이 작동하려면 다음이 필요합니다.
  • Atari 8비트 컴퓨터. 800 및 1200XL은 최고의 키보드를 가지고 있지만 800XL이 가장 일반적이며 따라서 저렴합니다. 800의 경우 AtariBasic 카트리지
  • 가 필요합니다.
  • 후지넷. 이것은 Atari 8비트에 모든 종류의 멋진 네트워킹 기능을 추가하는 Wi-Fi 지원 장치입니다. 디스크 에뮬레이션에만 사용하고 있습니다.
  • 로컬 Linux 호스트. Linux 호스트가 실행되어tnfsd 디스크 이미지를 Atari에 공유합니다. 또한 디스크 이미지에서 파일을 추출하고 .LST 로 끝나는 파일의 줄 끝을 변환하고 이를 Github에 커밋하는 스크립트를 실행합니다.
  • 공용 Github 저장소 및 SSH 로그인이 설정되었습니다. Linux 호스트는 변경 사항을 커밋하고 리포지토리로 푸시합니다. 이 작업을 자동으로 수행하려면 ssh 키를 설정해야 합니다.

  • Linux 호스트에서 다음을 설치해야 합니다.
  • tnfsd - Download the binary under TNFS server .
  • 자식

  • atrcopy - 디스크 이미지에서 파일을 추출하는 스크립트.
  • tmux - 필수는 아니지만 TNSF 서버와 스크립트를 동시에 실행하기 쉽게 해줍니다.

  • entr - 파일의 변경 사항을 모니터링한 다음 스크립트를 실행합니다
  • .

    a8syncdev.sh



    다음은 디스크 이미지에서 git repo로 파일을 동기화하는 스크립트입니다.

    #!/bin/bash
    
    diskimage="${HOME}/atari8/GozSnake.atr"
    
    cp "${diskimage}" .
    
    cd src
    ~/.local/bin/atrcopy "${diskimage}" extract --all -f
    
    for file in *.LST
    do
    .
    .
    tr '\233\177' '\12\11' <"${file}" > /tmp/temp.lst
    .
    .
    cp /tmp/temp.lst "${file}"
    done
    
    cd ..
    git add *
    git commit -am "Automated commit `date`..."
    git push
    
    


    TNFS 서버는 ~/atari8 디렉토리를 공유하고 있으며 이 경우 Atari에 마운트된 디스크 이미지 GozSnake.atr이 포함되어 있습니다. 스크립트는 로컬 repo 폴더에서 실행됩니다. 이 스크립트가 실행되면 다음이 수행됩니다.
  • 현재 디스크 이미지를 저장소
  • 에 복사합니다.
  • 디스크의 내용을 src 디렉토리에 추출합니다.
  • .LST로 끝나는 모든 파일의 줄 끝을 변환합니다
  • .
  • git에 모든 항목 추가
  • 자동화된 메시지로 모든 것을 커밋합니다
  • .
  • Github에 푸시

  • 이제 어떻게 자동으로 실행합니까? 10초마다 실행되도록 설정할 수 있지만 특히 entr가 있는 경우에는 낭비인 것 같습니다.

    엔터


    entr는 파일이나 폴더를 감시하고 파일이나 폴더가 변경될 때 다른 명령을 실행할 수 있는 명령입니다. 우리의 경우 GozSnake.atr 디스크 이미지 파일을 감시하고 변경될 때 실행a8syncdev.sh하기를 원합니다. 다음과 같이 할 수 있습니다.

    ls ~/atari8/GozSnake.atr | entr ../a8syncdev.sh
    
    


    경로가 정확하도록 내 repo 디렉토리에서 실행합니다. a8syncdev.sh 스크립트는 한 단계 위입니다. 디스크 이미지 파일이 변경될 때마다 스크립트가 실행되고 git repo가 ​​업데이트됩니다.

    직접 확인하세요.



    나를 팔로우 , Mastodon 및/또는 Twitch 내가 언제 스트리밍하는지 알 수 있습니다. 개선 사항이 있으면 알려주세요!

    좋은 웹페이지 즐겨찾기