GNU Guileで.envを読み込む

#!/usr/bin/env guile -s !# (use-modules (ice-9 rdelim)) (define (dotenv-apply-from-file filename) (map (lambda (env-val) (apply setenv env-val)) (map (lambda (line) (let ((env-val (string-split line #\=))) `(,(car env-val) ,(car (cdr env-val))))) (call-with-input-file filename (lambda (dotenv-file) (let loop ((ls1 '()) (line (read-line dotenv-file))) (if (eof-object? line) (begin (close-input-port dotenv-file) (reverse ls1)) (loop (cons line ls1) (read-line dotenv-file))))))))) (dotenv-apply-from-file "/ng/symdon/public/.env")...

 · 1 min · しむどん三度無視

GNU Guileでファイル及びディレクトリ操作

ファイルシステムに関連するファイル及びディレクトリの操作はftwモジュールに実装されている。 ftwモジュールをインポートしておく。 (use-modules (ice-9 match) (ice-9 ftw)) ディレクトリ作成 mk...

 · 1 min · しむどん三度無視

GNU Guileでカレントワーキングディレクトリを変更する

カレントワーキングディレクトリの変更 chdir関数でカレントワーキングディレクトリを変更する。 [email protected](guile-user) [2]> (chdir "/ng/symdon/pages/posts/1610659681") カレントワーキングディレクトリの取得 現在のカレントワーキン...

 · 1 min · しむどん三度無視

GNU Guileでファイルを読み書きする

SchemeではファイルへのIOをファイル記述子を直接扱うのではなくポートというもので扱う。 ポートは入力や出力を行うためのもの。 https://www.gnu.org/software/guile/manual/html_node/Ports.html ファイルに書き込み ファイルを作...

 · 1 min · しむどん三度無視

macOSにslibをインストールしてGNU Guileから利用できるようにする

cvsがなかったのでcvsをインストールした。 $ brew install cvs cvsを一番最後に使ったのはいつだったろうか…。もはや覚えていない。 https://savannah.gnu.org/cvs/?group=slib ソースコードをチェックアウトする。 も...

 · 1 min · しむどん三度無視

GNU Guileで環境変数を取得/設定する

取得 環境変数を取得するにはgetenv関数を用いる。 [email protected](guile-user) [1]> (getenv "LANG") $2 = "ja_JP.UTF-8" 設定 環境変数を取得するにはsetenv関数を用いる。 [email protected](guile-user) [1]> (setenv "FOO" "BAR") [email protected](guile-user) [1]> (getenv "FOO") $3 = "BAR"...

 · 1 min · しむどん三度無視

Schemeの学習計画

インストール 学習目的 :: インストール方法の習得 Install https://symdon.ga/1610496693 CLIでHello world! 学習目的 :: Hello world!の作成を通してCLIの作り方の習得 Hello world 文字列を表示させるにはdisp...

 · 3 min · しむどん三度無視