Skip to content

Instantly share code, notes, and snippets.

@smoser
smoser / README.md
Created August 27, 2020 16:13
golang (go) cmd.ExtraFiles example

This is an example of using cmd.ExtraFiles in golang with a os.Pipe()

There are 2 things that might be a bit tricky:

  • the order of closing the read and write side of the pipe. I got this right by reading the implementation of cmd.StderrPipe.
  • the number of the file descriptor for the child. I'm not sure of a good way to cleanly determine what that is. Golang cmd processes do not inherit all open filehandles, so you can't just use pipeWrite.Fd().

Ultimately, we did this because we were working with tssnvread which is possibly the worst user interface I've ever seen. We wanted to read the contents without writing to a file on the filesystem. To do so, we were able to tell it to write to /proc/self/fd/.

@smoser
smoser / README.md
Last active July 23, 2020 14:47
proxy setup using tiny proxy

proxy setup using tiny proxy and proxy command

set up tinyproxy and /etc/environment for system wide proxy.

By default, this only reports how you can set this up. No changes to the system will be made unless the first argument is 'update' or UPDATE=1 is found in the environment.

No root access is required for dry-run.

The values configured at the top of the script are for an internal

@smoser
smoser / README.md
Last active July 9, 2020 19:37
bootstrap (bs) run (vcs-run)

Docker ubuntu containers are pretty useless by themselves. The expectation is that the user will create a DockerFile and build their own image and push that image somewhere and maintain it.

In 2013 I authored vcs-run as part of cloud-utils. It is installed by default in ubuntu server images, but not in the docker images. :-(. The idea of vcs-run is that you can just invoke something like:

vcs-run https://your.git.server/repo.git bootstrap your-args-here

vcs-run would handle:

  • installing git
  • cloning repo
  • change dir to repo
@smoser
smoser / README.md
Last active July 22, 2020 20:39
codimd-index create an index for codimd

codimd-index: maintain a global index for codimd pages.

We have a team codimd and it is wonderful. We have CMD_ALLOW_FREEURL=true so that users can create alias'd (named) pages.

Users can't see each others pages though, unless they know to look for them (codimd/#975).

This is just a "manually updated" script to generate a simple index page. It'd be wonderful if codimd/#103 was fixed, then we could generate a table and let user sort.

To run it, you need pyscopg2 (apt install python3-psycopg2).

Then:

@smoser
smoser / README.md
Created June 12, 2020 15:50
demo of yaml anchors and yaml-dump script.

yaml anchors demo

yaml anchors are:

  • useful
  • confusing
  • hard to google for

yaml can be quite hard to read and see if it is valid.

I use 'yaml-dump' script here to just load a file and dump it as json to more easily see what it loads as.

@smoser
smoser / README.md
Last active July 17, 2020 15:05
build-upstream-pkg build a package from upstream source

build-upstream-pkg

Usage: build-upstream-pkg [ options ] <<ARGUMENTS>>

   build-upstream-pkg <upstream-commitish> <packaging-commitish>

   options:
      --version  VERSION    make the upstream version VERSION
                            default is to use git-describe

--output DIR put created files in DIR

@smoser
smoser / README.md
Last active June 3, 2020 13:32
bash version of lxc-usernsexec

bash version of lxc-usernsexec

I was in need of something like lxc-usernsexec but ran into some issues lxc/#3420 using it (possibly user error). I put together a test case testing what I thought were valid invocations of lxc-usernsexec. That is here as test-usernsexec.

I looked at the implementation and came up with the bash version here ias 'usernsexec'. My version passes the test case.

My version doesn't get tty's for the executed command.

@smoser
smoser / README.md
Created May 18, 2020 15:19
ubuntu email setup through dreamhost relay with msmtp

usage of msmtp for email relay through dreamhost

I just needed the sendmail cli interface to work for things like bts or the occasional sending of an email.

msmtp seems like a good solution.

Heres what I did to get it functional

  • install mtsmtp-mta
@smoser
smoser / README.md
Last active December 1, 2020 21:59
rpm build in lxd
@smoser
smoser / README.md
Last active February 28, 2020 16:54
ssh-import-id Upstream and Ubuntu release process

ssh-import-id Release Process

Development

  • Bugs on launchpad: Bugs are done on launchpad. upstream, ubuntu package.
  • Version Control: Using Git on launchpad. ssh-import-id
  • Pull Requests / Merge Proposals: Use launchpad merge proposals to master first. Then release to ubuntu.
  • CI: I'm not sure what C-i is in place.

Upstream Release Process

To make a new ssh-import-id upstream release.