summary refs log tree commit diff stats
path: root/tests/vm/tfile_rw.nim
blob: 439886e497bd70cd53bd215081ee9af64e37eabc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# test file read write in vm

import os, strutils

const filename  = splitFile(currentSourcePath).dir / "tfile_rw.txt"

const mytext = "line1\nline2\nline3"
static:
  writeFile(filename, mytext)
const myfile_str = staticRead(filename)
const myfile_str2 = readFile(filename)
const myfile_str_seq = readLines(filename, 3)

static:
  doAssert myfile_str == mytext
  doAssert myfile_str2 == mytext
  doAssert myfile_str_seq[0] == "line1"
  doAssert myfile_str_seq[1] == "line2"
  doAssert myfile_str_seq.join("\n") == mytext


removeFile(filename)
="o">:= os.OpenFile(lockpath, os.O_CREATE|os.O_EXCL, 0600) if err != nil { // TODO: Consider connecting to main process over IPC socket locked = false } else { locked = true lockfile.Close() } keypath := path.Join(xdg.DataHome(), "aerc", "keyring.asc") keyfile, err := os.Open(keypath) if os.IsNotExist(err) { return } else if err != nil { panic(err) } defer keyfile.Close() Keyring, err = openpgp.ReadKeyRing(keyfile) if err != nil { panic(err) } } func UnlockKeyring() { if !locked { return } lockpath := path.Join(xdg.DataHome(), "aerc", "keyring.lock") os.Remove(lockpath) } func ImportKeys(r io.Reader) error { keys, err := openpgp.ReadKeyRing(r) if err != nil { return err } Keyring = append(Keyring, keys...) if locked { keypath := path.Join(xdg.DataHome(), "aerc", "keyring.asc") keyfile, err := os.OpenFile(keypath, os.O_CREATE|os.O_APPEND, 0600) if err != nil { return err } defer keyfile.Close() for _, key := range keys { if key.PrivateKey != nil { err = key.SerializePrivate(keyfile, &packet.Config{}) } else { err = key.Serialize(keyfile) } if err != nil { return err } } } return nil }